From 50c958ff52e156ed559c4bf9f85ef72c85f5d6bb Mon Sep 17 00:00:00 2001 From: Eli Gibbs Date: Wed, 20 May 2026 20:05:50 -0400 Subject: [PATCH] Fixed Fabric screen initialization Removes mixin log entries from framework Fixes fossil grinder not having a weighted output with fossils Also adds item save logic to the tank block Fixes seat registration --- .../net/cmr/jurassicrevived/CommonClass.java | 11 +++--- .../jurassicrevived/CommonClientClass.java | 2 +- .../block/entity/custom/TankBlockEntity.java | 34 +++++++++++++++++-- .../custom/FossilGrindingRecipeBuilder.java | 2 +- .../jurassicrevived/entity/ModEntities.java | 2 +- .../java/net/cmr/jurassicrevived/JRMod.java | 1 - .../mixin/MixinTitleScreen.java | 3 -- .../java/net/cmr/jurassicrevived/JRMod.java | 1 - .../mixin/MixinTitleScreen.java | 3 -- .../java/net/cmr/jurassicrevived/JRMod.java | 1 - .../mixin/MixinTitleScreen.java | 3 -- 11 files changed, 39 insertions(+), 24 deletions(-) diff --git a/common/src/main/java/net/cmr/jurassicrevived/CommonClass.java b/common/src/main/java/net/cmr/jurassicrevived/CommonClass.java index ce1a712..2d582d6 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/CommonClass.java +++ b/common/src/main/java/net/cmr/jurassicrevived/CommonClass.java @@ -29,18 +29,15 @@ public class CommonClass // code that gets invoked by the entry point of the loader specific projects. public static void init() { - Constants.LOG.info("Hello from Common init on {}! we are currently in a {} environment!", Services.PLATFORM.getPlatformName(), Services.PLATFORM.getEnvironmentName()); - Constants.LOG.info("The ID for diamonds is {}", BuiltInRegistries.ITEM.getKey(Items.DIAMOND)); - // It is common for all supported loaders to provide a similar feature that can not be used directly in the // common code. A popular way to get around this is using Java's built-in service loader feature to create // your own abstraction layer. You can learn more about this in our provided services class. In this example // we have an interface in the common code and use a loader specific implementation to delegate our call to // the platform specific approach. - if (Services.PLATFORM.isModLoaded("examplemod")) { - - Constants.LOG.info("Hello to examplemod"); - } + //if (Services.PLATFORM.isModLoaded("examplemod")) { + // + // Constants.LOG.info("Hello to examplemod"); + //} // Load config from the loader-specific config dir JRConfigManager.load(Services.PLATFORM.getConfigDir()); diff --git a/common/src/main/java/net/cmr/jurassicrevived/CommonClientClass.java b/common/src/main/java/net/cmr/jurassicrevived/CommonClientClass.java index 7ad231a..176dfa4 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/CommonClientClass.java +++ b/common/src/main/java/net/cmr/jurassicrevived/CommonClientClass.java @@ -112,7 +112,7 @@ public class CommonClientClass { EntityRendererRegistry.register(ModEntities.UTAHRAPTOR, UtahraptorRenderer::new); //? if <=1.20.1 { - LifecycleEvent.SETUP.register(() -> { + ClientLifecycleEvent.CLIENT_SETUP.register(minecraft -> { MenuRegistry.registerScreenFactory(ModMenuTypes.GENERATOR_MENU.get(), GeneratorScreen::new); MenuRegistry.registerScreenFactory(ModMenuTypes.DNA_EXTRACTOR_MENU.get(), DNAExtractorScreen::new); MenuRegistry.registerScreenFactory(ModMenuTypes.DNA_ANALYZER_MENU.get(), DNAAnalyzerScreen::new); diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/TankBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/TankBlockEntity.java index 852aa95..cee7682 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/TankBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/TankBlockEntity.java @@ -12,6 +12,7 @@ import net.cmr.jurassicrevived.platform.services.IItemFluidHelper; import net.minecraft.core.BlockPos; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; import net.minecraft.nbt.NbtOps; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; @@ -294,7 +295,7 @@ public class TankBlockEntity extends BlockEntity implements ExtendedMenuProvider @Override protected void saveAdditional(CompoundTag pTag) { super.saveAdditional(pTag); - pTag.put("Inventory", itemHandler.createTag()); + pTag.put("Inventory", saveInventory()); if (!fluidStack.isEmpty()) { CompoundTag fluidTag = new CompoundTag(); fluidStack.write(fluidTag); @@ -305,7 +306,7 @@ public class TankBlockEntity extends BlockEntity implements ExtendedMenuProvider @Override public void load(CompoundTag pTag) { super.load(pTag); - itemHandler.fromTag(pTag.getList("Inventory", 10)); + loadInventory(pTag.getList("Inventory", 10)); if (pTag.contains("Fluid")) { this.fluidStack = FluidStack.read(pTag.getCompound("Fluid")); } else { @@ -314,6 +315,35 @@ public class TankBlockEntity extends BlockEntity implements ExtendedMenuProvider } //?} + private ListTag saveInventory() { + ListTag listTag = new ListTag(); + + for (int slot = 0; slot < itemHandler.getContainerSize(); slot++) { + ItemStack stack = itemHandler.getItem(slot); + if (!stack.isEmpty()) { + CompoundTag stackTag = new CompoundTag(); + stackTag.putByte("Slot", (byte) slot); + stack.save(stackTag); + listTag.add(stackTag); + } + } + + return listTag; + } + + private void loadInventory(ListTag listTag) { + itemHandler.clearContent(); + + for (int i = 0; i < listTag.size(); i++) { + CompoundTag stackTag = listTag.getCompound(i); + int slot = stackTag.getByte("Slot") & 255; + + if (slot >= 0 && slot < itemHandler.getContainerSize()) { + itemHandler.setItem(slot, ItemStack.of(stackTag)); + } + } + } + @Nullable @Override public Packet getUpdatePacket() { diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/custom/FossilGrindingRecipeBuilder.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/custom/FossilGrindingRecipeBuilder.java index 104f558..467dfe6 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/custom/FossilGrindingRecipeBuilder.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/custom/FossilGrindingRecipeBuilder.java @@ -180,7 +180,7 @@ public class FossilGrindingRecipeBuilder { if (!weights.isEmpty()) { JsonObject weightsObj = new JsonObject(); weights.forEach((k, v) -> weightsObj.addProperty(k.toString(), v)); - json.add("weights", weightsObj); + json.add("weighted_outputs", weightsObj); } } diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/ModEntities.java b/common/src/main/java/net/cmr/jurassicrevived/entity/ModEntities.java index 2df9fb5..b82398f 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/ModEntities.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/ModEntities.java @@ -28,7 +28,7 @@ public class ModEntities { .sized(0.001f, 0.001f) .clientTrackingRange(16) .updateInterval(1) - .build("jurassicrevived:seat") + .build("seat") ); public static final RegistrySupplier> ALBERTOSAURUS = diff --git a/fabricmc/src/main/java/net/cmr/jurassicrevived/JRMod.java b/fabricmc/src/main/java/net/cmr/jurassicrevived/JRMod.java index b0bee71..a981321 100755 --- a/fabricmc/src/main/java/net/cmr/jurassicrevived/JRMod.java +++ b/fabricmc/src/main/java/net/cmr/jurassicrevived/JRMod.java @@ -21,7 +21,6 @@ public class JRMod implements ModInitializer // project. // Use Fabric to bootstrap the Common mod. - Constants.LOG.info("Hello Fabric world!"); CommonClass.init(); FluidStorage.SIDED.registerForBlockEntities((be, side) -> diff --git a/fabricmc/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java b/fabricmc/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java index 4effc30..bfbf248 100755 --- a/fabricmc/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java +++ b/fabricmc/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java @@ -14,8 +14,5 @@ public class MixinTitleScreen @Inject(at = @At("HEAD"), method = "init()V") private void init(CallbackInfo info) { - - Constants.LOG.info("This line is printed by an example mod mixin from Fabric!"); - Constants.LOG.info("MC Version: {}", Minecraft.getInstance().getVersionType()); } } \ No newline at end of file diff --git a/minecraftforge/src/main/java/net/cmr/jurassicrevived/JRMod.java b/minecraftforge/src/main/java/net/cmr/jurassicrevived/JRMod.java index 1014063..8b21606 100755 --- a/minecraftforge/src/main/java/net/cmr/jurassicrevived/JRMod.java +++ b/minecraftforge/src/main/java/net/cmr/jurassicrevived/JRMod.java @@ -22,7 +22,6 @@ public class JRMod { EventBuses.registerModEventBus(Constants.MOD_ID, FMLJavaModLoadingContext.get().getModEventBus()); // Use Forge to bootstrap the Common mod. - Constants.LOG.info("Hello Forge world!"); CommonClass.init(); DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> CommonClientClass::init); diff --git a/minecraftforge/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java b/minecraftforge/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java index bc4f0f5..8920046 100755 --- a/minecraftforge/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java +++ b/minecraftforge/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java @@ -13,8 +13,5 @@ public class MixinTitleScreen { @Inject(at = @At("HEAD"), method = "init()V") private void init(CallbackInfo info) { - - Constants.LOG.info("This line is printed by an example mod mixin from Forge!"); - Constants.LOG.info("MC Version: {}", Minecraft.getInstance().getVersionType()); } } \ No newline at end of file diff --git a/neoforge/src/main/java/net/cmr/jurassicrevived/JRMod.java b/neoforge/src/main/java/net/cmr/jurassicrevived/JRMod.java index b588116..371cde4 100755 --- a/neoforge/src/main/java/net/cmr/jurassicrevived/JRMod.java +++ b/neoforge/src/main/java/net/cmr/jurassicrevived/JRMod.java @@ -13,7 +13,6 @@ import java.util.function.Supplier; public class JRMod { public JRMod(IEventBus eventBus) { - Constants.LOG.info("Hello NeoForge world!"); CommonClass.init(); ModLoadingContext.get().getActiveContainer().registerExtensionPoint( diff --git a/neoforge/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java b/neoforge/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java index 9d092d9..bfbf248 100755 --- a/neoforge/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java +++ b/neoforge/src/main/java/net/cmr/jurassicrevived/mixin/MixinTitleScreen.java @@ -14,8 +14,5 @@ public class MixinTitleScreen @Inject(at = @At("HEAD"), method = "init()V") private void init(CallbackInfo info) { - - Constants.LOG.info("This line is printed by an example mod mixin from NeoForge!"); - Constants.LOG.info("MC Version: {}", Minecraft.getInstance().getVersionType()); } } \ No newline at end of file