diff --git a/src/main/java/techreborn/Core.java b/src/main/java/techreborn/Core.java index 00b61f2d9..65f6e2f6d 100644 --- a/src/main/java/techreborn/Core.java +++ b/src/main/java/techreborn/Core.java @@ -1,11 +1,15 @@ package techreborn; +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; +import erogenousbeef.coreTR.multiblock.MultiblockEventHandler; +import erogenousbeef.coreTR.multiblock.MultiblockServerTickHandler; +import net.minecraftforge.common.MinecraftForge; import techreborn.achievement.TRAchievements; import techreborn.client.GuiHandler; import techreborn.compat.CompatManager; @@ -57,6 +61,9 @@ public class Core { PacketHandler.setChannels(NetworkRegistry.INSTANCE.newChannel(ModInfo.MOD_ID + "_packets", new PacketHandler())); //Achievements TRAchievements.init(); + //Multiblock events + MinecraftForge.EVENT_BUS.register(new MultiblockEventHandler()); + FMLCommonHandler.instance().bus().register(new MultiblockServerTickHandler()); LogHelper.info("Initialization Compleate"); } diff --git a/src/main/java/techreborn/blocks/BlockMachineCasing.java b/src/main/java/techreborn/blocks/BlockMachineCasing.java index 76fc5bd9f..e8f0537eb 100644 --- a/src/main/java/techreborn/blocks/BlockMachineCasing.java +++ b/src/main/java/techreborn/blocks/BlockMachineCasing.java @@ -2,7 +2,7 @@ package techreborn.blocks; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; +import erogenousbeef.coreTR.multiblock.BlockMultiblockBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -19,7 +19,7 @@ import techreborn.tiles.TileMachineCasing; import java.util.List; import java.util.Random; -public class BlockMachineCasing extends BlockContainer { +public class BlockMachineCasing extends BlockMultiblockBase { public static final String[] types = new String[] {"Standard", "Reinforced", "Advanced"}; private IIcon[] textures; diff --git a/src/main/java/techreborn/multiblocks/MultiBlockCasing.java b/src/main/java/techreborn/multiblocks/MultiBlockCasing.java new file mode 100644 index 000000000..42a9c5751 --- /dev/null +++ b/src/main/java/techreborn/multiblocks/MultiBlockCasing.java @@ -0,0 +1,123 @@ +package techreborn.multiblocks; + +import erogenousbeef.coreTR.multiblock.IMultiblockPart; +import erogenousbeef.coreTR.multiblock.MultiblockControllerBase; +import erogenousbeef.coreTR.multiblock.rectangular.RectangularMultiblockControllerBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import techreborn.util.LogHelper; + +public class MultiBlockCasing extends RectangularMultiblockControllerBase { + public MultiBlockCasing(World world) { + super(world); + } + + @Override + public void onAttachedPartWithMultiblockData(IMultiblockPart part, NBTTagCompound data) { + + } + + @Override + protected void onBlockAdded(IMultiblockPart newPart) { + } + + @Override + protected void onBlockRemoved(IMultiblockPart oldPart) { + + } + + @Override + protected void onMachineAssembled() { + LogHelper.all("New multiblock created!"); + } + + @Override + protected void onMachineRestored() { + + } + + @Override + protected void onMachinePaused() { + + } + + @Override + protected void onMachineDisassembled() { + + } + + @Override + protected int getMinimumNumberOfBlocksForAssembledMachine() { + return 1; + } + + @Override + protected int getMaximumXSize() { + return 3; + } + + @Override + protected int getMaximumZSize() { + return 3; + } + + @Override + protected int getMaximumYSize() { + return 4; + } + + @Override + protected int getMinimumXSize() { + return 3; + } + + @Override + protected int getMinimumYSize() { + return 4; + } + + @Override + protected int getMinimumZSize() { + return 3; + } + + @Override + protected void onAssimilate(MultiblockControllerBase assimilated) { + + } + + @Override + protected void onAssimilated(MultiblockControllerBase assimilator) { + + } + + @Override + protected boolean updateServer() { + return true; + } + + @Override + protected void updateClient() { + + } + + @Override + public void writeToNBT(NBTTagCompound data) { + + } + + @Override + public void readFromNBT(NBTTagCompound data) { + + } + + @Override + public void formatDescriptionPacket(NBTTagCompound data) { + + } + + @Override + public void decodeDescriptionPacket(NBTTagCompound data) { + + } +} diff --git a/src/main/java/techreborn/tiles/TileMachineCasing.java b/src/main/java/techreborn/tiles/TileMachineCasing.java index 41e3b8686..2a58ccb5b 100644 --- a/src/main/java/techreborn/tiles/TileMachineCasing.java +++ b/src/main/java/techreborn/tiles/TileMachineCasing.java @@ -1,8 +1,11 @@ package techreborn.tiles; -import net.minecraft.tileentity.TileEntity; +import erogenousbeef.coreTR.multiblock.MultiblockControllerBase; +import erogenousbeef.coreTR.multiblock.MultiblockValidationException; +import erogenousbeef.coreTR.multiblock.rectangular.RectangularMultiblockTileEntityBase; +import techreborn.multiblocks.MultiBlockCasing; -public class TileMachineCasing extends TileEntity { +public class TileMachineCasing extends RectangularMultiblockTileEntityBase { @Override public boolean canUpdate() { @@ -10,4 +13,48 @@ public class TileMachineCasing extends TileEntity { return false; } + @Override + public void onMachineActivated() { + + } + + @Override + public void onMachineDeactivated() { + + } + + @Override + public MultiblockControllerBase createNewMultiblock() { + return new MultiBlockCasing(worldObj); + } + + @Override + public Class<? extends MultiblockControllerBase> getMultiblockControllerType() { + return MultiBlockCasing.class; + } + + @Override + public void isGoodForFrame() throws MultiblockValidationException { + + } + + @Override + public void isGoodForSides() throws MultiblockValidationException { + + } + + @Override + public void isGoodForTop() throws MultiblockValidationException { + + } + + @Override + public void isGoodForBottom() throws MultiblockValidationException { + + } + + @Override + public void isGoodForInterior() throws MultiblockValidationException { + + } }