filename:
common/src/main/java/rearth/oritech/client/ui/DroneScreen.java
branch:
1.21
back to repo
package rearth.oritech.client.ui;
import io.wispforest.owo.ui.component.Components;
import io.wispforest.owo.ui.container.Containers;
import io.wispforest.owo.ui.container.FlowLayout;
import io.wispforest.owo.ui.core.*;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import rearth.oritech.Oritech;
import rearth.oritech.block.entity.interaction.DronePortEntity;
public class DroneScreen extends UpgradableMachineScreen<DroneScreenHandler> {
public static final Identifier CARD_SLOT = Oritech.id("textures/gui/modular/designator_arrow.png");
private final DronePortEntity dronePort;
public DroneScreen(DroneScreenHandler handler, PlayerInventory inventory, Text title) {
super(handler, inventory, title);
dronePort = (DronePortEntity) handler.blockEntity;
}
@Override
protected void handledScreenTick() {
super.handledScreenTick();
if (dronePort.getStatusMessage() != null) {
var message = dronePort.getStatusMessage();
dronePort.setStatusMessage(null);
var label = Components.label(Text.translatable(message).formatted(Formatting.BLACK));
label.horizontalTextAlignment(HorizontalAlignment.CENTER);
label.verticalTextAlignment(VerticalAlignment.CENTER);
label.margins(Insets.of(8));
var container = Containers.verticalFlow(Sizing.content(10), Sizing.content(10));
container.child(label);
container.sizing(Sizing.content(10));
container.surface(ORITECH_PANEL);
container.positioning(Positioning.relative(50, 30));
container.zIndex(7000);
var messagePanel = Containers.overlay(container);
root.child(messagePanel);
}
}
@Override
public void fillOverlay(FlowLayout overlay) {
super.fillOverlay(overlay);
overlay.child(BasicMachineScreen.getItemFrame(129, 26));
overlay.child(BasicMachineScreen.getItemFrame(129, 62));
overlay.child(Components.texture(CARD_SLOT, 0, 0, 18, 40, 18, 40).positioning(Positioning.absolute(128, 25)));
}
}