Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.rk.thingamajigs.screen;
- import com.mojang.blaze3d.systems.RenderSystem;
- import net.minecraft.ChatFormatting;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.gui.GuiGraphics;
- import net.minecraft.client.gui.components.Button;
- import net.minecraft.client.gui.components.EditBox;
- import net.minecraft.client.gui.components.Tooltip;
- import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
- import net.minecraft.client.resources.sounds.SimpleSoundInstance;
- import net.minecraft.core.BlockPos;
- import net.minecraft.network.chat.Component;
- import net.minecraft.resources.ResourceLocation;
- import net.minecraft.sounds.SoundEvents;
- import net.minecraft.util.FastColor;
- import net.minecraft.world.entity.player.Inventory;
- import net.minecraft.world.entity.player.Player;
- import net.minecraft.world.level.Level;
- import net.neoforged.neoforge.client.gui.widget.ExtendedButton;
- import net.neoforged.neoforge.network.PacketDistributor;
- import net.rk.thingamajigs.Thingamajigs;
- import net.rk.thingamajigs.blockentity.custom.DJLaserLightBE;
- import net.rk.thingamajigs.menu.DJLaserLightMenu;
- import net.rk.thingamajigs.network.record.DJLaserLightUpdatePayload;
- import net.rk.thingamajigs.screen.widget.CustomRSLocationEditBox;
- import net.rk.thingamajigs.xtras.TColors;
- import org.jetbrains.annotations.Nullable;
- import java.util.HashMap;
- public class DJLaserLightScreen extends AbstractContainerScreen<DJLaserLightMenu> {
- private final static HashMap<String, Object> guistate = DJLaserLightMenu.guistate;
- private final Level world;
- private final int x, y, z;
- private final Player entity;
- private DJLaserLightBE djllbe;
- private static final ResourceLocation BG_TEXTURE = ResourceLocation.parse("thingamajigs:textures/gui/laser_light_menu.png");
- // buttons
- public Button decreaseHeightButton;
- public Button increaseHeightButton;
- public Button closeThisScreenButton;
- public Button whiteButton;
- public Button blueButton;
- public EditBox colorHexBox;
- public Button updateHexColorButton;
- public Button incHorzOscButton;
- public Button decHorzOscButton;
- public Button incVertOscButton;
- public Button decVertOscButton;
- public DJLaserLightScreen(DJLaserLightMenu container, Inventory inventory, Component text) {
- super(container, inventory, text);
- this.world = container.world;
- this.x = container.x;
- this.y = container.y;
- this.z = container.z;
- this.entity = container.entity;
- this.imageWidth = 320;
- this.imageHeight = 240;
- this.minecraft = Minecraft.getInstance();
- this.font = this.minecraft.font;
- int widthx = (this.width - this.imageWidth) / 2;
- int heighty = (this.height - this.imageHeight) / 2;
- this.djllbe = (DJLaserLightBE)world.getBlockEntity(new BlockPos(x,y,z)); // access the BE at the current pos that the screen is opened at
- }
- @Override
- protected void init() {
- super.init();
- setupExtras();
- addRenderableWidget(decreaseHeightButton);
- addRenderableWidget(increaseHeightButton);
- addRenderableWidget(closeThisScreenButton);
- addRenderableWidget(whiteButton);
- addRenderableWidget(blueButton);
- addRenderableWidget(colorHexBox);
- addRenderableWidget(updateHexColorButton);
- addRenderableWidget(incHorzOscButton);
- addRenderableWidget(decHorzOscButton);
- }
- @Override
- public void render(GuiGraphics pGuiGraphics, int pMouseX, int pMouseY, float pPartialTick) {
- this.renderBackground(pGuiGraphics,pMouseX,pMouseY,pPartialTick);
- this.renderBg(pGuiGraphics,pPartialTick,pMouseX,pMouseY);
- super.render(pGuiGraphics,pMouseX,pMouseY,pPartialTick);
- }
- @Override
- protected void renderLabels(GuiGraphics pGuiGraphics, int pMouseX, int pMouseY) {
- Component modelabel = Component.translatable("container.thingamajigs.laser_light.mode_title")
- .withStyle(ChatFormatting.WHITE);
- Component extraInfolabel = Component.translatable("container.thingamajigs.laser_light.mode_unused");
- pGuiGraphics.drawString(this.font, this.title, this.titleLabelX, this.titleLabelY,
- TColors.getWhite(), false);
- if(djllbe.lightMode == 0){
- extraInfolabel = Component.translatable("container.thingamajigs.laser_light.mode_zero_label");
- }
- }
- @Override
- public void renderBackground(GuiGraphics pGuiGraphics, int pMouseX, int pMouseY, float pPartialTick) {
- this.renderCustomBg(pGuiGraphics);
- if (this.minecraft.level != null) {
- net.neoforged.neoforge.common.NeoForge.EVENT_BUS.post(new net.neoforged.neoforge.client.event.ScreenEvent.BackgroundRendered(this, pGuiGraphics));
- }
- }
- public void renderCustomBg(GuiGraphics guigraph) {
- ResourceLocation BG_LOC = ResourceLocation.fromNamespaceAndPath(Thingamajigs.MODID,"textures/block/sidewalk_new.png");
- guigraph.blit(BG_LOC, this.leftPos - 18, this.topPos + 107, 0, 0.0F, 0.0F,
- 16, 16, 16, 16);
- guigraph.setColor(FastColor.ARGB32.red(djllbe.color),
- FastColor.ARGB32.green(djllbe.color),
- FastColor.ARGB32.blue(djllbe.color),
- 1.0f);
- net.neoforged.neoforge.common.NeoForge.EVENT_BUS.post(
- new net.neoforged.neoforge.client.event.ScreenEvent.BackgroundRendered(this, guigraph));
- }
- @Override
- protected void renderBg(GuiGraphics ggraph, float ptick, int mousx, int mousy) {
- RenderSystem.setShaderColor(1, 1, 1, 1);
- RenderSystem.enableBlend();
- RenderSystem.defaultBlendFunc();
- RenderSystem.setShaderTexture(0, BG_TEXTURE);
- ggraph.blit(BG_TEXTURE,
- this.leftPos,this.topPos,0,0,
- this.imageWidth,this.imageHeight,this.imageWidth,this.imageHeight);
- RenderSystem.disableBlend();
- }
- @Override
- public void containerTick() {
- super.containerTick();
- }
- @Override
- public void onClose() {
- super.onClose();
- }
- @Override
- public boolean keyPressed(int key, int b, int c) {
- if(key == 256){
- this.getMinecraft().player.closeContainer();
- return true;
- }
- return false;
- }
- private void setupExtras(){
- int smallSliderwidth = 72;
- int sliderheight = 16;
- int mediumSliderwidth = 102;
- int incHButxPos = this.leftPos + 8;
- int incHButyPos = this.topPos + 18;
- int rightPos = this.leftPos + 320;
- int bottomPos = this.topPos + 240;
- closeThisScreenButton = new ExtendedButton(rightPos - 16,this.topPos,16,16,
- Component.literal("X"),(h) -> {
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_CARTOGRAPHY_TABLE_TAKE_RESULT,1.0f));
- this.getMinecraft().player.closeContainer();
- }){
- @Nullable
- @Override
- public Tooltip getTooltip() {
- return Tooltip.create(Component.literal("Close The UI"));
- }
- };
- increaseHeightButton = new ExtendedButton(incHButxPos + 66,incHButyPos,64,16,
- Component.translatable("button.thingamajigs.laser_light.height_inc"),(handler) -> {
- PacketDistributor.sendToServer(new DJLaserLightUpdatePayload(
- new BlockPos(x,y,z),
- djllbe.height + 1,
- djllbe.colorstr,
- djllbe.laserSize,
- djllbe.laserCount,
- djllbe.angleOffset,
- djllbe.vAngleOffset,
- djllbe.lightMode,
- djllbe.hOsc,
- djllbe.vOsc,
- djllbe.hMulti,
- djllbe.vMulti,
- djllbe.lightModeData,
- djllbe.laserTextureLoc
- ));
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.ITEM_PICKUP,1.0f));
- }){};
- decreaseHeightButton = new ExtendedButton(incHButxPos,incHButyPos,64,16,
- Component.translatable("button.thingamajigs.laser_light.height_dec"),(handler) -> {
- PacketDistributor.sendToServer(new DJLaserLightUpdatePayload(
- new BlockPos(x,y,z),djllbe.height - 1,djllbe.colorstr,
- djllbe.laserSize,
- djllbe.laserCount,
- djllbe.angleOffset,
- djllbe.vAngleOffset,
- djllbe.lightMode,
- djllbe.hOsc,
- djllbe.vOsc,
- djllbe.hMulti,
- djllbe.vMulti,
- djllbe.lightModeData,
- djllbe.laserTextureLoc
- ));
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.ITEM_PICKUP,0.75f));
- }){};
- incHorzOscButton = new ExtendedButton(increaseHeightButton.getX(),increaseHeightButton.getY() + increaseHeightButton.getHeight() + 2,
- 64,16,
- Component.translatable("button.thingamajigs.laser_light.horzoscinc"),(handler) -> {
- PacketDistributor.sendToServer(new DJLaserLightUpdatePayload(
- new BlockPos(x,y,z),djllbe.height,djllbe.colorstr,
- djllbe.laserSize,
- djllbe.laserCount,
- djllbe.angleOffset,
- djllbe.vAngleOffset,
- djllbe.lightMode,
- djllbe.hOsc,
- djllbe.vOsc,
- djllbe.hMulti,
- djllbe.vMulti,
- djllbe.lightModeData,
- djllbe.laserTextureLoc
- ));
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.ITEM_PICKUP,1.0f));
- }){};
- decHorzOscButton = new ExtendedButton(decreaseHeightButton.getX(),incHorzOscButton.getY(),64,16,
- Component.translatable("button.thingamajigs.laser_light.horzoscdec"),(handler) -> {
- PacketDistributor.sendToServer(new DJLaserLightUpdatePayload(
- new BlockPos(x,y,z),djllbe.height,djllbe.colorstr,
- djllbe.laserSize,
- djllbe.laserCount,
- djllbe.angleOffset,
- djllbe.vAngleOffset,
- djllbe.lightMode,
- djllbe.hOsc,
- djllbe.vOsc,
- djllbe.hMulti,
- djllbe.vMulti,
- djllbe.lightModeData,
- djllbe.laserTextureLoc
- ));
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.ITEM_PICKUP,0.75f));
- }){};
- incVertOscButton = new ExtendedButton(incHorzOscButton.getX(),incHorzOscButton.getY() + 2,64,16,
- Component.translatable("button.thingamajigs.laser_light.vertoscinc"),(handler) -> {
- PacketDistributor.sendToServer(new DJLaserLightUpdatePayload(
- new BlockPos(x,y,z),djllbe.height,djllbe.colorstr,
- djllbe.laserSize,
- djllbe.laserCount,
- djllbe.angleOffset,
- djllbe.vAngleOffset,
- djllbe.lightMode,
- djllbe.hOsc,
- djllbe.vOsc,
- djllbe.hMulti,
- djllbe.vMulti,
- djllbe.lightModeData,
- djllbe.laserTextureLoc
- ));
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.ITEM_PICKUP,1.0f));
- }){};
- decVertOscButton = new ExtendedButton(incHorzOscButton.getX(),incVertOscButton.getY(),64,16,
- Component.translatable("button.thingamajigs.laser_light.vertoscdec"),(handler) -> {
- PacketDistributor.sendToServer(new DJLaserLightUpdatePayload(
- new BlockPos(x,y,z),djllbe.height,djllbe.colorstr,
- djllbe.laserSize,
- djllbe.laserCount,
- djllbe.angleOffset,
- djllbe.vAngleOffset,
- djllbe.lightMode,
- djllbe.hOsc,
- djllbe.vOsc,
- djllbe.hMulti,
- djllbe.vMulti,
- djllbe.lightModeData,
- djllbe.laserTextureLoc
- ));
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.ITEM_PICKUP,0.75f));
- }){};
- colorHexBox = new CustomRSLocationEditBox(this.getMinecraft().font,incHButxPos,incHButyPos + 120,
- 72,16,Component.literal("colorHexEditbox"),djllbe.colorstr){
- @Override
- public void setTextColor(int decColor) {
- super.setTextColor(djllbe.color);
- }
- @Override
- public void setCanLoseFocus(boolean loseFocus) {
- super.setCanLoseFocus(true);
- }
- };
- updateHexColorButton = new ExtendedButton(colorHexBox.getX() + colorHexBox.getWidth() + 2,colorHexBox.getY(),24,16,
- Component.translatable("button.thingamajigs.laser_light.send_color_update"),(handler) -> {
- PacketDistributor.sendToServer(new DJLaserLightUpdatePayload(
- new BlockPos(x,y,z),djllbe.height,colorHexBox.getValue(),
- djllbe.laserSize,
- djllbe.laserCount,
- djllbe.angleOffset,
- djllbe.vAngleOffset,
- djllbe.lightMode,
- djllbe.hOsc,
- djllbe.vOsc,
- djllbe.hMulti,
- djllbe.vMulti,
- djllbe.lightModeData,
- djllbe.laserTextureLoc
- ));
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.BUCKET_EMPTY,1.0f));
- }){};
- whiteButton = new ExtendedButton(colorHexBox.getX(),colorHexBox.getY() + 2,64,16,
- Component.translatable("button.thingamajigs.laser_light.reset"),(handler) -> {
- PacketDistributor.sendToServer(new DJLaserLightUpdatePayload(
- new BlockPos(x,y,z),djllbe.height,"FFFFFF",
- djllbe.laserSize,
- djllbe.laserCount,
- djllbe.angleOffset,
- djllbe.vAngleOffset,
- djllbe.lightMode,
- djllbe.hOsc,
- djllbe.vOsc,
- djllbe.hMulti,
- djllbe.vMulti,
- djllbe.lightModeData,
- djllbe.laserTextureLoc
- ));
- Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.ITEM_PICKUP,1.0f));
- }){};
- }
- }
Add Comment
Please, Sign In to add comment