diff --git a/build.gradle b/build.gradle index 34029f4..47da508 100644 --- a/build.gradle +++ b/build.gradle @@ -89,7 +89,7 @@ dependencies { // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. // The userdev artifact is a special name and will get all sorts of transformations applied to it. - minecraft 'net.minecraftforge:forge:1.19-41.0.63' + minecraft 'net.minecraftforge:forge:1.19-41.0.99' // Real mod deobf dependency examples - these get remapped to your current mappings // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency diff --git a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java index 5601622..4331413 100644 --- a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java +++ b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java @@ -43,7 +43,7 @@ public class EffortlessBuilding { //Registration private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); - private static final DeferredRegister> CONTAINERS = DeferredRegister.create(ForgeRegistries.CONTAINERS, EffortlessBuilding.MODID); + private static final DeferredRegister> CONTAINERS = DeferredRegister.create(ForgeRegistries.MENU_TYPES, EffortlessBuilding.MODID); public static final RegistryObject RANDOMIZER_BAG_ITEM = ITEMS.register("randomizer_bag", RandomizerBagItem::new); public static final RegistryObject GOLDEN_RANDOMIZER_BAG_ITEM = ITEMS.register("golden_randomizer_bag", GoldenRandomizerBagItem::new); diff --git a/src/main/java/nl/requios/effortlessbuilding/EventHandler.java b/src/main/java/nl/requios/effortlessbuilding/EventHandler.java index 84c65ca..0085774 100644 --- a/src/main/java/nl/requios/effortlessbuilding/EventHandler.java +++ b/src/main/java/nl/requios/effortlessbuilding/EventHandler.java @@ -9,7 +9,7 @@ import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.event.level.BlockEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.network.PacketDistributor; @@ -39,7 +39,7 @@ public class EventHandler { @SubscribeEvent public static void onBlockPlaced(BlockEvent.EntityPlaceEvent event) { - if (event.getWorld().isClientSide()) return; + if (event.getLevel().isClientSide()) return; if (!(event.getEntity() instanceof Player)) return; @@ -74,7 +74,7 @@ public class EventHandler { @SubscribeEvent public static void onBlockBroken(BlockEvent.BreakEvent event) { - if (event.getWorld().isClientSide()) return; + if (event.getLevel().isClientSide()) return; if (event.getPlayer() instanceof FakePlayer) return; @@ -100,16 +100,16 @@ public class EventHandler { @SubscribeEvent public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) { - if (event.getPlayer() instanceof FakePlayer) return; - Player player = event.getPlayer(); + if (event.getEntity() instanceof FakePlayer) return; + Player player = event.getEntity(); ModifierSettingsManager.handleNewPlayer(player); ModeSettingsManager.handleNewPlayer(player); } @SubscribeEvent public static void onPlayerLoggedOut(PlayerEvent.PlayerLoggedOutEvent event) { - if (event.getPlayer() instanceof FakePlayer) return; - Player player = event.getPlayer(); + if (event.getEntity() instanceof FakePlayer) return; + Player player = event.getEntity(); if (player.getCommandSenderWorld().isClientSide) return; UndoRedo.clear(player); @@ -118,16 +118,16 @@ public class EventHandler { @SubscribeEvent public static void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) { - if (event.getPlayer() instanceof FakePlayer) return; - Player player = event.getPlayer(); + if (event.getEntity() instanceof FakePlayer) return; + Player player = event.getEntity(); ModifierSettingsManager.handleNewPlayer(player); ModeSettingsManager.handleNewPlayer(player); } @SubscribeEvent public static void onPlayerChangedDimension(PlayerEvent.PlayerChangedDimensionEvent event) { - if (event.getPlayer() instanceof FakePlayer) return; - Player player = event.getPlayer(); + if (event.getEntity() instanceof FakePlayer) return; + Player player = event.getEntity(); if (player.getCommandSenderWorld().isClientSide) return; //Set build mode to normal @@ -151,12 +151,12 @@ public class EventHandler { @SubscribeEvent public static void onPlayerClone(PlayerEvent.Clone event) { - if (event.getPlayer() instanceof FakePlayer) return; + if (event.getEntity() instanceof FakePlayer) return; //Attach capabilities on death, otherwise crash Player oldPlayer = event.getOriginal(); oldPlayer.revive(); - Player newPlayer = event.getPlayer(); + Player newPlayer = event.getEntity(); ModifierSettingsManager.setModifierSettings(newPlayer, ModifierSettingsManager.getModifierSettings(oldPlayer)); ModeSettingsManager.setModeSettings(newPlayer, ModeSettingsManager.getModeSettings(oldPlayer)); } diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCheckBoxFixed.java b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCheckBoxFixed.java index 6f014bd..917b58d 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCheckBoxFixed.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/elements/GuiCheckBoxFixed.java @@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.Button; import net.minecraft.network.chat.Component; -import net.minecraftforge.client.gui.GuiUtils; +import net.minecraftforge.client.gui.ScreenUtils; import javax.annotation.ParametersAreNonnullByDefault; @@ -30,7 +30,7 @@ public class GuiCheckBoxFixed extends Button { if (this.visible) { Minecraft mc = Minecraft.getInstance(); this.isHovered = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.boxWidth && mouseY < this.y + this.height; - GuiUtils.drawContinuousTexturedBox(ms, WIDGETS_LOCATION, this.x, this.y, 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, this.getBlitOffset()); + ScreenUtils.blitWithBorder(ms, WIDGETS_LOCATION, this.x, this.y, 0, 46, this.boxWidth, this.height, 200, 20, 2, 3, 2, 2, this.getBlitOffset()); this.renderBg(ms, mc, mouseX, mouseY); int color = 14737632; diff --git a/src/main/java/nl/requios/effortlessbuilding/item/AbstractRandomizerBagItem.java b/src/main/java/nl/requios/effortlessbuilding/item/AbstractRandomizerBagItem.java index 9945fe6..aa9eb22 100644 --- a/src/main/java/nl/requios/effortlessbuilding/item/AbstractRandomizerBagItem.java +++ b/src/main/java/nl/requios/effortlessbuilding/item/AbstractRandomizerBagItem.java @@ -129,7 +129,7 @@ public abstract class AbstractRandomizerBagItem extends Item { if (ctx.getPlayer() != null && ctx.getPlayer().isShiftKeyDown()) { //ctx.isPlacerSneaking() if (world.isClientSide) return InteractionResult.SUCCESS; //Open inventory - NetworkHooks.openGui((ServerPlayer) player, getContainerProvider(item)); + NetworkHooks.openScreen((ServerPlayer) player, getContainerProvider(item)); } else { if (world.isClientSide) return InteractionResult.SUCCESS; @@ -182,7 +182,7 @@ public abstract class AbstractRandomizerBagItem extends Item { if (player.isShiftKeyDown()) { if (world.isClientSide) return new InteractionResultHolder<>(InteractionResult.SUCCESS, bag); //Open inventory - NetworkHooks.openGui((ServerPlayer) player, getContainerProvider(bag)); + NetworkHooks.openScreen((ServerPlayer) player, getContainerProvider(bag)); } else { //Use item //Get bag inventory diff --git a/src/main/java/nl/requios/effortlessbuilding/proxy/ClientProxy.java b/src/main/java/nl/requios/effortlessbuilding/proxy/ClientProxy.java index 43a2f87..6d4d062 100644 --- a/src/main/java/nl/requios/effortlessbuilding/proxy/ClientProxy.java +++ b/src/main/java/nl/requios/effortlessbuilding/proxy/ClientProxy.java @@ -23,9 +23,8 @@ import net.minecraft.world.phys.Vec3; import net.minecraft.ChatFormatting; import net.minecraft.world.level.Level; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.ClientRegistry; -import net.minecraftforge.client.event.ScreenOpenEvent; import net.minecraftforge.client.event.InputEvent; +import net.minecraftforge.client.event.ScreenEvent; import net.minecraftforge.client.settings.KeyConflictContext; import net.minecraftforge.client.settings.KeyModifier; import net.minecraftforge.event.TickEvent; @@ -82,11 +81,6 @@ public class ClientProxy implements IProxy { keyBindings[4] = new KeyMapping("key.effortlessbuilding.redo.desc", KeyConflictContext.IN_GAME, KeyModifier.CONTROL, InputConstants.getKey(GLFW.GLFW_KEY_Y, 0), "key.effortlessbuilding.category"); keyBindings[5] = new KeyMapping("key.effortlessbuilding.altplacement.desc", KeyConflictContext.IN_GAME, InputConstants.getKey(GLFW.GLFW_KEY_LEFT_CONTROL, 0), "key.effortlessbuilding.category"); - // register all the key bindings - for (KeyMapping keyBinding : keyBindings) { - ClientRegistry.registerKeyBinding(keyBinding); - } - MenuScreens.register(EffortlessBuilding.RANDOMIZER_BAG_CONTAINER.get(), RandomizerBagScreen::new); MenuScreens.register(EffortlessBuilding.GOLDEN_RANDOMIZER_BAG_CONTAINER.get(), GoldenRandomizerBagScreen::new); MenuScreens.register(EffortlessBuilding.DIAMOND_RANDOMIZER_BAG_CONTAINER.get(), DiamondRandomizerBagScreen::new); @@ -226,7 +220,7 @@ public class ClientProxy implements IProxy { } @SubscribeEvent(receiveCanceled = true) - public static void onKeyPress(InputEvent.KeyInputEvent event) { + public static void onKeyPress(InputEvent.Key event) { LocalPlayer player = Minecraft.getInstance().player; if (player == null) return; @@ -310,7 +304,7 @@ public class ClientProxy implements IProxy { } @SubscribeEvent - public static void onGuiOpen(ScreenOpenEvent event) { + public static void onGuiOpen(ScreenEvent event) { Player player = Minecraft.getInstance().player; if (player != null) { BuildModes.initializeMode(player); diff --git a/src/main/java/nl/requios/effortlessbuilding/render/BuildRenderTypes.java b/src/main/java/nl/requios/effortlessbuilding/render/BuildRenderTypes.java index 5789902..f7f72e1 100644 --- a/src/main/java/nl/requios/effortlessbuilding/render/BuildRenderTypes.java +++ b/src/main/java/nl/requios/effortlessbuilding/render/BuildRenderTypes.java @@ -2,24 +2,18 @@ package nl.requios.effortlessbuilding.render; import com.mojang.blaze3d.shaders.Uniform; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.VertexFormat; -import net.minecraft.Util; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderStateShard; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.ShaderInstance; -import net.minecraft.client.renderer.texture.TextureAtlas; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.phys.Vec3; -import nl.requios.effortlessbuilding.BuildConfig; import nl.requios.effortlessbuilding.EffortlessBuilding; -import org.lwjgl.opengl.*; import java.util.OptionalDouble; -import java.util.function.Consumer; -import java.util.function.Function; + public class BuildRenderTypes extends RenderType { public static ResourceLocation shaderMaskTextureLocation = new ResourceLocation(EffortlessBuilding.MODID, "textures/shader_mask.png"); diff --git a/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java b/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java index df6d141..4bbcd7b 100644 --- a/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java +++ b/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java @@ -19,8 +19,8 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.RenderLevelLastEvent; -import net.minecraftforge.client.model.data.EmptyModelData; +import net.minecraftforge.client.event.RenderLevelStageEvent; +import net.minecraftforge.client.model.data.ModelData; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @@ -28,6 +28,8 @@ import nl.requios.effortlessbuilding.EffortlessBuilding; import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager; import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager; +import static net.minecraftforge.client.event.RenderLevelStageEvent.Stage.AFTER_PARTICLES; + /*** * Main render class for Effortless Building */ @@ -35,8 +37,8 @@ import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager; public class RenderHandler { @SubscribeEvent - public static void onRender(RenderLevelLastEvent event) { - if (event.getPhase() != EventPriority.NORMAL) + public static void onRender(RenderLevelStageEvent event) { + if (event.getPhase() != EventPriority.NORMAL || event.getStage() != AFTER_PARTICLES) return; PoseStack matrixStack = event.getPoseStack(); @@ -91,15 +93,10 @@ public class RenderHandler { RenderType blockPreviewRenderType = BuildRenderTypes.getBlockPreviewRenderType(dissolve, blockPos, firstPos, secondPos, red); VertexConsumer buffer = renderTypeBuffer.getBuffer(blockPreviewRenderType); -// MinecraftServer server = Minecraft.getInstance().getIntegratedServer(); -// World world = DimensionManager.getWorld(server, DimensionType.OVERWORLD, false, true); - try { BakedModel model = dispatcher.getBlockModel(blockState); dispatcher.getModelRenderer().renderModel(matrixStack.last(), buffer, blockState, model, - 1f, 1f, 1f, 0, OverlayTexture.NO_OVERLAY, EmptyModelData.INSTANCE); -// blockRendererDispatcher.getBlockModelRenderer().renderModel(world, blockRendererDispatcher.getModelForState(blockState), -// blockState, logicPos, matrixStack, renderTypeBuffer.getBuffer(renderType), true, new Random(), blockState.getPositionRandom(logicPos), i); + 1f, 1f, 1f, 0, OverlayTexture.NO_OVERLAY, ModelData.EMPTY, blockPreviewRenderType); } catch (NullPointerException e) { EffortlessBuilding.logger.warn("RenderHandler::renderBlockPreview cannot render " + blockState.getBlock().toString());