From d062956186c80b68be427c3fb3649f120af0ed61 Mon Sep 17 00:00:00 2001 From: GTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com> Date: Sat, 28 Oct 2023 20:00:18 +0100 Subject: [PATCH] Save --- dependencies.gradle | 2 +- src/main/java/com/colen/postea/Postea.java | 30 ++++------- .../postea/mixins/IGameDataAccessor.java | 10 ++++ .../postea/mixins/PosteaLoadingPlugin.java | 3 +- .../postea/mixins/early/MixinTileEntity.java | 3 +- .../postea/mixins/late/MixinGameData.java | 54 +++++++++++++++++++ src/main/resources/mixins.postea.late.json | 13 +++++ 7 files changed, 92 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/colen/postea/mixins/IGameDataAccessor.java create mode 100644 src/main/java/com/colen/postea/mixins/late/MixinGameData.java create mode 100644 src/main/resources/mixins.postea.late.json diff --git a/dependencies.gradle b/dependencies.gradle index 3ebc8cc..fca978f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -35,5 +35,5 @@ */ dependencies { api('com.github.GTNewHorizons:SpongePoweredMixin:0.8.5-GTNH-2:dev') - api('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.30:dev') + //api('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.30:dev') } diff --git a/src/main/java/com/colen/postea/Postea.java b/src/main/java/com/colen/postea/Postea.java index 6348080..23459a7 100644 --- a/src/main/java/com/colen/postea/Postea.java +++ b/src/main/java/com/colen/postea/Postea.java @@ -1,18 +1,9 @@ package com.colen.postea; -import appeng.block.networking.BlockController; -import appeng.core.Api; -import com.colen.postea.API.BlockReplacementManager; -import com.colen.postea.API.TileEntityReplacementManager; -import com.colen.postea.API.TileTransformer; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import gregtech.api.GregTech_API; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntityChest; import java.util.function.Function; @@ -23,21 +14,20 @@ public class Postea { @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { //ItemStackReplacementManager.addItemReplacement(Item.getItemFromBlock(Blocks.grass), 0, Item.getItemFromBlock(Blocks.coal_ore), 10); - BlockReplacementManager.addBlockReplacement(GregTech_API.sBlockOres1, 6, Blocks.emerald_ore, 0); - BlockReplacementManager.addBlockReplacement(GregTech_API.sBlockOres1, 16022, Blocks.nether_brick, 0); - BlockReplacementManager.addBlockReplacement(GregTech_API.sBlockOres1, 1018, Blocks.end_stone, 0); - - // Define the transformation function - Function myTransformer = (tag) -> { - return tag; - }; - - TileEntityReplacementManager.tileEntityReplacement("GT_TileEntity_Ores", new TileTransformer(TileEntityChest.class, myTransformer)); +// BlockReplacementManager.addBlockReplacement(GregTech_API.sBlockOres1, 6, Blocks.emerald_ore, 0); +// BlockReplacementManager.addBlockReplacement(GregTech_API.sBlockOres1, 16022, Blocks.nether_brick, 0); +// BlockReplacementManager.addBlockReplacement(GregTech_API.sBlockOres1, 1018, Blocks.end_stone, 0); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { - BlockReplacementManager.addBlockReplacement(GregTech_API.sBlockOres1, 0, Blocks.chest, 0); + // Define the transformation function + Function myTransformer = (tag) -> { + return tag; + }; + +// TileEntityReplacementManager.tileEntityReplacement("GT_TileEntity_Ores", new TileTransformer(TileEntityChest.class, myTransformer)); +// BlockReplacementManager.addBlockReplacement(GregTech_API.sBlockOres1, 0, Blocks.chest, 0); } } diff --git a/src/main/java/com/colen/postea/mixins/IGameDataAccessor.java b/src/main/java/com/colen/postea/mixins/IGameDataAccessor.java new file mode 100644 index 0000000..bf8996a --- /dev/null +++ b/src/main/java/com/colen/postea/mixins/IGameDataAccessor.java @@ -0,0 +1,10 @@ +package com.colen.postea.mixins; + +import cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry; +import net.minecraft.block.Block; +import net.minecraft.item.Item; + +public interface IGameDataAccessor { + FMLControlledNamespacedRegistry getIBlockRegistry(); + FMLControlledNamespacedRegistry getIItemRegistry(); +} diff --git a/src/main/java/com/colen/postea/mixins/PosteaLoadingPlugin.java b/src/main/java/com/colen/postea/mixins/PosteaLoadingPlugin.java index 36d36dd..06bc1fa 100644 --- a/src/main/java/com/colen/postea/mixins/PosteaLoadingPlugin.java +++ b/src/main/java/com/colen/postea/mixins/PosteaLoadingPlugin.java @@ -37,7 +37,7 @@ public final class PosteaLoadingPlugin implements IEarlyMixinLoader, IFMLLoading @Override public String getMixinConfig() { - return "mixins.postea.early.json"; + return "mixins.postea.json"; } @Override @@ -47,6 +47,7 @@ public final class PosteaLoadingPlugin implements IEarlyMixinLoader, IFMLLoading mixins.add("MixinChunkProviderServer"); mixins.add("MixinAnvilChunkLoader"); mixins.add("MixinTileEntity"); + mixins.add("MixinGameData"); return mixins; } diff --git a/src/main/java/com/colen/postea/mixins/early/MixinTileEntity.java b/src/main/java/com/colen/postea/mixins/early/MixinTileEntity.java index df274a3..bb9819b 100644 --- a/src/main/java/com/colen/postea/mixins/early/MixinTileEntity.java +++ b/src/main/java/com/colen/postea/mixins/early/MixinTileEntity.java @@ -29,7 +29,8 @@ public class MixinTileEntity { /** - * Creates a new entity and loads its data from the specified NBT. + * @author Colen + * @reason Stuff */ @Overwrite @SuppressWarnings("unused") diff --git a/src/main/java/com/colen/postea/mixins/late/MixinGameData.java b/src/main/java/com/colen/postea/mixins/late/MixinGameData.java new file mode 100644 index 0000000..cc5dc3e --- /dev/null +++ b/src/main/java/com/colen/postea/mixins/late/MixinGameData.java @@ -0,0 +1,54 @@ +package com.colen.postea.mixins.late; + +import com.colen.postea.mixins.IGameDataAccessor; +import cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry; +import cpw.mods.fml.common.registry.GameData; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; + +@Mixin(GameData.class) +public class MixinGameData implements IGameDataAccessor { + + @Unique + protected native static GameData getMain(); + @Shadow(remap = false) + private static FMLControlledNamespacedRegistry iBlockRegistry; + @Shadow(remap = false) + private static FMLControlledNamespacedRegistry iItemRegistry; + + @Override + public FMLControlledNamespacedRegistry getIBlockRegistry() { + return iBlockRegistry; + } + + @Override + public FMLControlledNamespacedRegistry getIItemRegistry() { + return iItemRegistry; + } + + /** + * @author Colen + * @reason Stuff + */ + @Overwrite(remap = false) + static Item findItem(String modId, String name) { + IGameDataAccessor accessor = (IGameDataAccessor) getMain(); + return accessor.getIItemRegistry().getObject(modId + ":" + name); + } + + /** + * @author Colen + * @reason Stuff + */ + @Overwrite(remap = false) + static Block findBlock(String modId, String name) { + String key = "minecraft:bedrock"; + IGameDataAccessor accessor = (IGameDataAccessor) getMain(); + return accessor.getIBlockRegistry().containsKey(key) ? accessor.getIBlockRegistry().getObject(key) : null; + } + +} diff --git a/src/main/resources/mixins.postea.late.json b/src/main/resources/mixins.postea.late.json new file mode 100644 index 0000000..5794c6f --- /dev/null +++ b/src/main/resources/mixins.postea.late.json @@ -0,0 +1,13 @@ +{ + "required": true, + "minVersion": "0.8.5-GTNH", + "package": "com.colen.postea.mixins.late", + "refmap": "mixins.postea.refmap.json", + "target": "@env(DEFAULT)", + "compatibilityLevel": "JAVA_8", + "mixins": [ + "MixinGameData" + ], + "client": [], + "server": [] +}