diff --git a/src/main/java/github/alecsio/mmceaddons/CommonProxy.java b/src/main/java/github/alecsio/mmceaddons/CommonProxy.java index 8ca707c..890627c 100644 --- a/src/main/java/github/alecsio/mmceaddons/CommonProxy.java +++ b/src/main/java/github/alecsio/mmceaddons/CommonProxy.java @@ -1,18 +1,29 @@ package github.alecsio.mmceaddons; +import github.alecsio.mmceaddons.common.gui.ContainerSingularityItemBus; import github.alecsio.mmceaddons.common.lib.ModularMachineryAddonsBlocks; import github.alecsio.mmceaddons.common.registry.internal.EventHandler; +import github.alecsio.mmceaddons.common.tile.TileSingularityItemBus; +import hellfirepvp.modularmachinery.common.tiles.base.TileItemBus; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.network.IGuiHandler; +import net.minecraftforge.fml.common.network.NetworkRegistry; import javax.annotation.Nonnull; +import javax.annotation.Nullable; /** * CommonProxy handles shared mod-side logic for the server and client. */ -public class CommonProxy { +public class CommonProxy implements IGuiHandler { public static CreativeTabs creativeTabModularMachineryAddons; private static boolean preInitCalled = false; @@ -34,6 +45,9 @@ public ItemStack createIcon() { MinecraftForge.EVENT_BUS.register(new EventHandler()); + NetworkRegistry.INSTANCE.registerGuiHandler(ModularMachineryAddons.MODID, this); + + ModularMachineryAddonsBlocks.initialise(); } @@ -43,4 +57,44 @@ public void init() {} public void registerItemModel(net.minecraft.item.Item item) {} public void registerBlockModel(net.minecraft.block.Block block) {} + + @Nullable + @Override + public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + GuiType type = CommonProxy.GuiType.values()[MathHelper.clamp(ID, 0, CommonProxy.GuiType.values().length - 1)]; + Class required = type.requiredTileEntity; + TileEntity present = null; + if (required != null) { + TileEntity te = world.getTileEntity(new BlockPos(x, y, z)); + if (te == null || !required.isAssignableFrom(te.getClass())) { + return null; + } + + present = te; + } + + switch (type) { + case VACUUM_INVENTORY: + return new ContainerSingularityItemBus((TileItemBus) present, player); + } + return null; + } + + @Nullable + @Override + public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + + + public enum GuiType { + + VACUUM_INVENTORY(TileSingularityItemBus.class); + + public final Class requiredTileEntity; + + GuiType(@Nullable Class requiredTileEntity) { + this.requiredTileEntity = requiredTileEntity; + } + } } \ No newline at end of file diff --git a/src/main/java/github/alecsio/mmceaddons/client/ClientProxy.java b/src/main/java/github/alecsio/mmceaddons/client/ClientProxy.java index 40a170f..cc1726a 100644 --- a/src/main/java/github/alecsio/mmceaddons/client/ClientProxy.java +++ b/src/main/java/github/alecsio/mmceaddons/client/ClientProxy.java @@ -5,15 +5,25 @@ import github.alecsio.mmceaddons.client.render.entity.MeteorRenderFactory; import github.alecsio.mmceaddons.common.base.Mods; import github.alecsio.mmceaddons.common.entity.EntityImprovedMeteor; +import github.alecsio.mmceaddons.common.gui.GuiContainerSingularityItemBus; import hellfirepvp.modularmachinery.common.block.BlockDynamicColor; +import hellfirepvp.modularmachinery.common.block.BlockVariants; import hellfirepvp.modularmachinery.common.item.ItemDynamicColor; +import hellfirepvp.modularmachinery.common.tiles.base.TileItemBus; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelBakery; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.color.BlockColors; import net.minecraft.client.renderer.color.ItemColors; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.World; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.common.MinecraftForge; @@ -23,6 +33,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; @@ -88,8 +99,22 @@ private void registerBlockModels() { BLOCK_MODELS_TO_REGISTER.forEach(block -> { ModularMachineryAddons.logger.info("Registering block model for " + block.getRegistryName()); Item item = Item.getItemFromBlock(block); - ModelBakery.registerItemVariants(item, block.getRegistryName()); - ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(block.getRegistryName(), "inventory")); + if (block instanceof BlockVariants variantsBlock) { + for (IBlockState state : variantsBlock.getValidStates()) { + String unlocName = block.getRegistryName().getPath(); + String name = unlocName + "_" + variantsBlock.getBlockStateName(state); + ModelBakery.registerItemVariants(item, new ResourceLocation(ModularMachineryAddons.MODID, name)); + ModelLoader.setCustomModelResourceLocation(item, block.getMetaFromState(state), + new ModelResourceLocation(ModularMachineryAddons.MODID + ":" + name, "inventory")); + } + } else { + ModelBakery.registerItemVariants(item, block.getRegistryName()); + ModelLoader.setCustomModelResourceLocation( + item, + 0, + new ModelResourceLocation(block.getRegistryName(), "inventory") + ); + } }); } @@ -102,4 +127,25 @@ private void registerItemModels() { } + @Nullable + @Override + public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + GuiType type = CommonProxy.GuiType.values()[MathHelper.clamp(ID, 0, CommonProxy.GuiType.values().length - 1)]; + Class required = type.requiredTileEntity; + TileEntity present = null; + if (required != null) { + TileEntity te = world.getTileEntity(new BlockPos(x, y, z)); + if (te == null || !required.isAssignableFrom(te.getClass())) { + return null; + } + + present = te; + } + + switch (type) { + case VACUUM_INVENTORY: + return new GuiContainerSingularityItemBus((TileItemBus) present, player); + } + return null; + } } diff --git a/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemBus.java b/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemBus.java new file mode 100644 index 0000000..18954e4 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemBus.java @@ -0,0 +1,26 @@ +package github.alecsio.mmceaddons.common.block; + +import github.alecsio.mmceaddons.CommonProxy; +import github.alecsio.mmceaddons.ModularMachineryAddons; +import hellfirepvp.modularmachinery.common.block.BlockBus; +import hellfirepvp.modularmachinery.common.tiles.base.TileItemBus; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +abstract public class BlockSingularityItemBus extends BlockBus { + public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + if (!worldIn.isRemote) { + TileEntity te = worldIn.getTileEntity(pos); + if (te instanceof TileItemBus) { + playerIn.openGui(ModularMachineryAddons.MODID, CommonProxy.GuiType.VACUUM_INVENTORY.ordinal(), worldIn, pos.getX(), pos.getY(), pos.getZ()); + } + } + + return true; + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemInputBus.java b/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemInputBus.java new file mode 100644 index 0000000..506f8f5 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemInputBus.java @@ -0,0 +1,16 @@ +package github.alecsio.mmceaddons.common.block; + +import github.alecsio.mmceaddons.common.tile.TileSingularityItemInputBus; +import net.minecraft.block.state.IBlockState; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import javax.annotation.Nullable; + +public class BlockSingularityItemInputBus extends BlockSingularityItemBus { + @Nullable + @Override + public TileEntity createTileEntity(World world, IBlockState iBlockState) { + return new TileSingularityItemInputBus(iBlockState.getValue(BUS_TYPE)); + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemOutputBus.java b/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemOutputBus.java new file mode 100644 index 0000000..4887dd6 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/block/BlockSingularityItemOutputBus.java @@ -0,0 +1,16 @@ +package github.alecsio.mmceaddons.common.block; + +import github.alecsio.mmceaddons.common.tile.TileSingularityItemOutputBus; +import net.minecraft.block.state.IBlockState; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import javax.annotation.Nullable; + +public class BlockSingularityItemOutputBus extends BlockSingularityItemBus { + @Nullable + @Override + public TileEntity createTileEntity(World world, IBlockState iBlockState) { + return new TileSingularityItemOutputBus(iBlockState.getValue(BUS_TYPE)); + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/common/gui/ContainerSingularityItemBus.java b/src/main/java/github/alecsio/mmceaddons/common/gui/ContainerSingularityItemBus.java new file mode 100644 index 0000000..7fb78c9 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/gui/ContainerSingularityItemBus.java @@ -0,0 +1,51 @@ +package github.alecsio.mmceaddons.common.gui; + +import github.alecsio.mmceaddons.util.SingularitySlotItemHandler; +import hellfirepvp.modularmachinery.common.container.ContainerItemBus; +import hellfirepvp.modularmachinery.common.tiles.base.TileItemBus; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ClickType; +import net.minecraft.item.ItemStack; + +import javax.annotation.Nonnull; + +public class ContainerSingularityItemBus extends ContainerItemBus { + public ContainerSingularityItemBus( + TileItemBus owner, + EntityPlayer opening + ) { + super(owner, opening); + } + + + @Nonnull + @Override + public ItemStack slotClick(int slotId, int dragType, @Nonnull ClickType clickTypeIn, EntityPlayer player) { + InventoryPlayer inventoryplayer = player.inventory; + if (slotId > 0 && this.inventorySlots.get(slotId) instanceof SingularitySlotItemHandler singularitySlot && clickTypeIn == ClickType.PICKUP && (dragType == 0 || dragType == 1)) { + ItemStack heldStack = inventoryplayer.getItemStack(); + ItemStack inventoryStack = singularitySlot.getStack(); + + + if ( + !heldStack.isEmpty() && !inventoryStack.isEmpty() && + heldStack.getItem() == inventoryStack.getItem() && heldStack.getMetadata() == inventoryStack.getMetadata() && ItemStack.areItemStackTagsEqual( + heldStack, + inventoryStack + )) { + int amountToDrop = dragType == 0 ? heldStack.getCount() : 1; + + if (amountToDrop > singularitySlot.getItemStackLimit(heldStack) - inventoryStack.getCount()) { + amountToDrop = singularitySlot.getItemStackLimit(heldStack) - inventoryStack.getCount(); + } + + ItemStack toReturn = heldStack.copy(); + heldStack.shrink(amountToDrop); + inventoryStack.grow(amountToDrop); + return toReturn; + } + } + return super.slotClick(slotId, dragType, clickTypeIn, player); + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/common/gui/GuiContainerSingularityItemBus.java b/src/main/java/github/alecsio/mmceaddons/common/gui/GuiContainerSingularityItemBus.java new file mode 100644 index 0000000..aa4a7d5 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/gui/GuiContainerSingularityItemBus.java @@ -0,0 +1,31 @@ +package github.alecsio.mmceaddons.common.gui; + +import hellfirepvp.modularmachinery.client.gui.GuiContainerBase; +import hellfirepvp.modularmachinery.common.block.prop.ItemBusSize; +import hellfirepvp.modularmachinery.common.container.ContainerItemBus; +import hellfirepvp.modularmachinery.common.tiles.base.TileItemBus; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ResourceLocation; + +public class GuiContainerSingularityItemBus extends GuiContainerBase { + public GuiContainerSingularityItemBus(TileItemBus itemBus, EntityPlayer opening) { + super(new ContainerSingularityItemBus(itemBus, opening)); + } + + private ResourceLocation getTextureInventory() { + ItemBusSize size = this.container.getOwner().getSize(); + return new ResourceLocation("modularmachinery", "textures/gui/inventory_" + size.name().toLowerCase() + ".png"); + } + + protected void setWidthHeight() { + } + + protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(this.getTextureInventory()); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize); + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/common/lib/ModularMachineryAddonsBlocks.java b/src/main/java/github/alecsio/mmceaddons/common/lib/ModularMachineryAddonsBlocks.java index 1e81464..3bc9e79 100644 --- a/src/main/java/github/alecsio/mmceaddons/common/lib/ModularMachineryAddonsBlocks.java +++ b/src/main/java/github/alecsio/mmceaddons/common/lib/ModularMachineryAddonsBlocks.java @@ -3,6 +3,8 @@ import github.alecsio.mmceaddons.common.block.BlockBiomeProviderInput; import github.alecsio.mmceaddons.common.block.BlockDimensionProviderInput; +import github.alecsio.mmceaddons.common.block.BlockSingularityItemInputBus; +import github.alecsio.mmceaddons.common.block.BlockSingularityItemOutputBus; import github.alecsio.mmceaddons.common.block.ae2.BlockMEEssentiaInputBus; import github.alecsio.mmceaddons.common.block.ae2.BlockMEEssentiaOutputBus; import github.alecsio.mmceaddons.common.block.bloodmagic.BlockMeteorProviderOutput; @@ -45,6 +47,9 @@ public class ModularMachineryAddonsBlocks { public static BlockVisProviderInput blockVisProviderInput; public static BlockVisProviderOutput blockVisProviderOutput; + public static BlockSingularityItemInputBus blockSingularityItemInput; + public static BlockSingularityItemOutputBus blockSingularityItemOutput; + public static void initialise() { } } diff --git a/src/main/java/github/alecsio/mmceaddons/common/mixin/ContainerMixin.java b/src/main/java/github/alecsio/mmceaddons/common/mixin/ContainerMixin.java new file mode 100644 index 0000000..b2a4dd3 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/mixin/ContainerMixin.java @@ -0,0 +1,17 @@ +package github.alecsio.mmceaddons.common.mixin; + +import github.alecsio.mmceaddons.util.SingularitySlotItemHandler; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.SlotItemHandler; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(value = hellfirepvp.modularmachinery.common.container.ContainerItemBus.class) +public class ContainerMixin { + + @Redirect(method = "addInventorySlots(Lnet/minecraftforge/items/IItemHandlerModifiable;Lhellfirepvp/modularmachinery/common/block/prop/ItemBusSize;)V", at = @At(value = "NEW", target = "(Lnet/minecraftforge/items/IItemHandler;III)Lnet/minecraftforge/items/SlotItemHandler;"), remap=false) + public SlotItemHandler replaceSlotItemHandlers(IItemHandler itemHandler, int index, int xPosition, int yPosition) { + return new SingularitySlotItemHandler(itemHandler, index, xPosition, yPosition); + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/common/registry/RegistryBlocks.java b/src/main/java/github/alecsio/mmceaddons/common/registry/RegistryBlocks.java index e721456..f72367a 100644 --- a/src/main/java/github/alecsio/mmceaddons/common/registry/RegistryBlocks.java +++ b/src/main/java/github/alecsio/mmceaddons/common/registry/RegistryBlocks.java @@ -4,6 +4,8 @@ import github.alecsio.mmceaddons.common.base.Mods; import github.alecsio.mmceaddons.common.block.BlockBiomeProviderInput; import github.alecsio.mmceaddons.common.block.BlockDimensionProviderInput; +import github.alecsio.mmceaddons.common.block.BlockSingularityItemInputBus; +import github.alecsio.mmceaddons.common.block.BlockSingularityItemOutputBus; import github.alecsio.mmceaddons.common.block.ae2.BlockMEEssentiaInputBus; import github.alecsio.mmceaddons.common.block.ae2.BlockMEEssentiaOutputBus; import github.alecsio.mmceaddons.common.block.bloodmagic.BlockMeteorProviderOutput; @@ -19,6 +21,8 @@ import github.alecsio.mmceaddons.common.lib.ModularMachineryAddonsBlocks; import github.alecsio.mmceaddons.common.tile.TileBiomeProvider; import github.alecsio.mmceaddons.common.tile.TileDimensionProvider; +import github.alecsio.mmceaddons.common.tile.TileSingularityItemInputBus; +import github.alecsio.mmceaddons.common.tile.TileSingularityItemOutputBus; import github.alecsio.mmceaddons.common.tile.bloodmagic.TileMeteorProvider; import github.alecsio.mmceaddons.common.tile.bloodmagic.TileWillMultiChunkProvider; import github.alecsio.mmceaddons.common.tile.nuclearcraft.TileRadiationProvider; @@ -107,6 +111,13 @@ private static void registerBlocks() { // Always register prepareItemBlockRegister(ModularMachineryAddonsBlocks.blockBiomeProviderInput); prepareItemBlockRegister(ModularMachineryAddonsBlocks.blockDimensionProviderInput); + + // Singularity Item Buses: always registered: + ModularMachineryAddonsBlocks.blockSingularityItemInput = prepareRegister(new BlockSingularityItemInputBus()); + ModularMachineryAddonsBlocks.blockSingularityItemOutput = prepareRegister(new BlockSingularityItemOutputBus()); + prepareItemBlockRegister(ModularMachineryAddonsBlocks.blockSingularityItemInput); + prepareItemBlockRegister(ModularMachineryAddonsBlocks.blockSingularityItemOutput); + } private static void registerTileEntities() { @@ -137,6 +148,8 @@ private static void registerTileEntities() { // Always present registerTileEntity(TileBiomeProvider.class); registerTileEntity(TileDimensionProvider.class); + registerTileEntity(TileSingularityItemInputBus.class); + registerTileEntity(TileSingularityItemOutputBus.class); } /** diff --git a/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemBus.java b/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemBus.java new file mode 100644 index 0000000..cdb2788 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemBus.java @@ -0,0 +1,12 @@ +package github.alecsio.mmceaddons.common.tile; + +import hellfirepvp.modularmachinery.common.block.prop.ItemBusSize; +import hellfirepvp.modularmachinery.common.tiles.base.TileItemBus; + +abstract public class TileSingularityItemBus extends TileItemBus { + public TileSingularityItemBus() {} + + public TileSingularityItemBus(ItemBusSize size) { + super(size); + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemInputBus.java b/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemInputBus.java new file mode 100644 index 0000000..543a924 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemInputBus.java @@ -0,0 +1,43 @@ +package github.alecsio.mmceaddons.common.tile; + +import github.alecsio.mmceaddons.util.IOSingularityInventory; +import hellfirepvp.modularmachinery.common.block.prop.ItemBusSize; +import hellfirepvp.modularmachinery.common.machine.IOType; +import hellfirepvp.modularmachinery.common.machine.MachineComponent; +import hellfirepvp.modularmachinery.common.tiles.base.MachineComponentTile; +import hellfirepvp.modularmachinery.common.tiles.base.TileInventory; +import hellfirepvp.modularmachinery.common.util.IOInventory; + +import javax.annotation.Nullable; + +public class TileSingularityItemInputBus extends TileSingularityItemBus implements MachineComponentTile { + + @SuppressWarnings("unused") + public TileSingularityItemInputBus() { + } + + public TileSingularityItemInputBus(ItemBusSize type) { + super(type); + } + + @Override + public IOInventory buildInventory(TileInventory tile, int size) { + + int[] slots = new int[size]; + + for (int i = 0; i < size; i++) { + slots[i] = i; + } + + return new IOSingularityInventory(tile, slots, new int[0], Integer.MAX_VALUE); + } + + @Nullable + public MachineComponent.ItemBus provideComponent() { + return new MachineComponent.ItemBus(IOType.INPUT) { + public IOInventory getContainerProvider() { + return TileSingularityItemInputBus.this.inventory; + } + }; + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemOutputBus.java b/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemOutputBus.java new file mode 100644 index 0000000..ea2437a --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/common/tile/TileSingularityItemOutputBus.java @@ -0,0 +1,43 @@ +package github.alecsio.mmceaddons.common.tile; + +import github.alecsio.mmceaddons.util.IOSingularityInventory; +import hellfirepvp.modularmachinery.common.block.prop.ItemBusSize; +import hellfirepvp.modularmachinery.common.machine.IOType; +import hellfirepvp.modularmachinery.common.machine.MachineComponent; +import hellfirepvp.modularmachinery.common.tiles.base.MachineComponentTile; +import hellfirepvp.modularmachinery.common.tiles.base.TileInventory; +import hellfirepvp.modularmachinery.common.util.IOInventory; + +import javax.annotation.Nullable; + +public class TileSingularityItemOutputBus extends TileSingularityItemBus implements MachineComponentTile { + + @SuppressWarnings("unused") + public TileSingularityItemOutputBus() { + } + + public TileSingularityItemOutputBus(ItemBusSize type) { + super(type); + } + + @Override + public IOInventory buildInventory(TileInventory tile, int size) { + + int[] slots = new int[size]; + + for (int i = 0; i < size; i++) { + slots[i] = i; + } + + return new IOSingularityInventory(tile, new int[0], slots, Integer.MAX_VALUE); + } + + @Nullable + public MachineComponent.ItemBus provideComponent() { + return new MachineComponent.ItemBus(IOType.OUTPUT) { + public IOInventory getContainerProvider() { + return TileSingularityItemOutputBus.this.inventory; + } + }; + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/util/IOSingularityInventory.java b/src/main/java/github/alecsio/mmceaddons/util/IOSingularityInventory.java new file mode 100644 index 0000000..88f4d9b --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/util/IOSingularityInventory.java @@ -0,0 +1,83 @@ +package github.alecsio.mmceaddons.util; + +import hellfirepvp.modularmachinery.common.tiles.base.TileEntitySynchronized; +import hellfirepvp.modularmachinery.common.util.IOInventory; +import hellfirepvp.modularmachinery.common.util.ItemUtils; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumFacing; + +import javax.annotation.Nonnull; +import java.util.Arrays; + +public class IOSingularityInventory extends IOInventory { + public IOSingularityInventory( + TileEntitySynchronized owner, + int[] inSlots, + int[] outSlots, + int maxSize + ) { + super(owner, inSlots, outSlots); + Arrays.fill(this.slotLimits, maxSize); + } + + public IOSingularityInventory( + TileEntitySynchronized owner, + int[] inSlots, + int[] outSlots, + EnumFacing... accessibleFrom + ) { + super(owner, inSlots, outSlots, accessibleFrom); + } + + protected ItemStack insertItemInternal(int slot, @Nonnull ItemStack stack, boolean simulate) { + if (!this.allowAnySlots && !arrayContains(this.inSlots, slot)) { + return stack; + } else { + SlotStackHolder holder = this.inventory[slot]; + if (holder == null) { + return stack; + } else { + ItemStack toInsert = ItemUtils.copyStackWithSize(stack, stack.getCount()); + if (!((ItemStack)holder.itemStack.get()).isEmpty()) { + ItemStack existing = ItemUtils.copyStackWithSize((ItemStack)holder.itemStack.get(), ((ItemStack)holder.itemStack.get()).getCount()); + int max = this.getSlotLimit(slot); + if (existing.getCount() < max && canMergeItemStacks(existing, toInsert)) { + int movable = Math.min(max - existing.getCount(), stack.getCount()); + if (!simulate) { + ((ItemStack)holder.itemStack.get()).grow(movable); + } + + if (movable >= stack.getCount()) { + return ItemStack.EMPTY; + } else { + ItemStack copy = stack.copy(); + copy.shrink(movable); + return copy; + } + } else { + return stack; + } + } else { + int max = this.getSlotLimit(slot); + if (max >= stack.getCount()) { + if (!simulate) { + holder.itemStack.set(stack.copy()); + } + + return ItemStack.EMPTY; + } else { + ItemStack copy = stack.copy(); + copy.setCount(max); + if (!simulate) { + holder.itemStack.set(copy); + } + + copy = stack.copy(); + copy.shrink(max); + return copy; + } + } + } + } + } +} diff --git a/src/main/java/github/alecsio/mmceaddons/util/SingularitySlotItemHandler.java b/src/main/java/github/alecsio/mmceaddons/util/SingularitySlotItemHandler.java new file mode 100644 index 0000000..d5946a5 --- /dev/null +++ b/src/main/java/github/alecsio/mmceaddons/util/SingularitySlotItemHandler.java @@ -0,0 +1,23 @@ +package github.alecsio.mmceaddons.util; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.SlotItemHandler; + +import javax.annotation.Nonnull; + +public class SingularitySlotItemHandler extends SlotItemHandler { + public SingularitySlotItemHandler( + IItemHandler itemHandler, + int index, + int xPosition, + int yPosition + ) { + super(itemHandler, index, xPosition, yPosition); + } + + @Override + public int getItemStackLimit(@Nonnull ItemStack stack) { + return Integer.MAX_VALUE; + } +} diff --git a/src/main/resources/assets/modularmachineryaddons/blockstates/blocksingularityiteminputbus.json b/src/main/resources/assets/modularmachineryaddons/blockstates/blocksingularityiteminputbus.json new file mode 100644 index 0000000..9dc2079 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/blockstates/blocksingularityiteminputbus.json @@ -0,0 +1,11 @@ +{ + "variants": { + "size=tiny": { "model":"modularmachineryaddons:blocksingularityiteminputbus_tiny" }, + "size=small": { "model":"modularmachineryaddons:blocksingularityiteminputbus_small" }, + "size=normal": { "model":"modularmachineryaddons:blocksingularityiteminputbus_normal" }, + "size=reinforced": { "model":"modularmachineryaddons:blocksingularityiteminputbus_reinforced" }, + "size=big": { "model":"modularmachineryaddons:blocksingularityiteminputbus_big" }, + "size=huge": { "model":"modularmachineryaddons:blocksingularityiteminputbus_huge" }, + "size=ludicrous": { "model":"modularmachineryaddons:blocksingularityiteminputbus_ludicrous" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/blockstates/blocksingularityitemoutputbus.json b/src/main/resources/assets/modularmachineryaddons/blockstates/blocksingularityitemoutputbus.json new file mode 100644 index 0000000..46be62e --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/blockstates/blocksingularityitemoutputbus.json @@ -0,0 +1,11 @@ +{ + "variants": { + "size=tiny": { "model":"modularmachineryaddons:blocksingularityitemoutputbus_tiny" }, + "size=small": { "model":"modularmachineryaddons:blocksingularityitemoutputbus_small" }, + "size=normal": { "model":"modularmachineryaddons:blocksingularityitemoutputbus_normal" }, + "size=reinforced": { "model":"modularmachineryaddons:blocksingularityitemoutputbus_reinforced" }, + "size=big": { "model":"modularmachineryaddons:blocksingularityitemoutputbus_big" }, + "size=huge": { "model":"modularmachineryaddons:blocksingularityitemoutputbus_huge" }, + "size=ludicrous": { "model":"modularmachineryaddons:blocksingularityitemoutputbus_ludicrous" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/lang/en_us.lang b/src/main/resources/assets/modularmachineryaddons/lang/en_us.lang index bd8213d..830383b 100644 --- a/src/main/resources/assets/modularmachineryaddons/lang/en_us.lang +++ b/src/main/resources/assets/modularmachineryaddons/lang/en_us.lang @@ -15,6 +15,22 @@ tile.modularmachineryaddons.blockscrubberproviderinput.name=Scrubber Hatch tile.modularmachineryaddons.blockbiomeproviderinput.name=Biome Hatch tile.modularmachineryaddons.blockdimensionproviderinput.name=Dimension Hatch +tile.modularmachineryaddons.blocksingularityiteminputbus.tiny.name=Tiny Singularity Input Hatch +tile.modularmachineryaddons.blocksingularityiteminputbus.small.name=Small Singularity Input Hatch +tile.modularmachineryaddons.blocksingularityiteminputbus.normal.name=Normal Singularity Input Hatch +tile.modularmachineryaddons.blocksingularityiteminputbus.reinforced.name=Reinforced Singularity Input Hatch +tile.modularmachineryaddons.blocksingularityiteminputbus.big.name=Big Singularity Input Hatch +tile.modularmachineryaddons.blocksingularityiteminputbus.huge.name=Huge Singularity Input Hatch +tile.modularmachineryaddons.blocksingularityiteminputbus.ludicrous.name=Ludicrous Singularity Input Hatch + +tile.modularmachineryaddons.blocksingularityitemoutputbus.tiny.name=Tiny Singularity Output Hatch +tile.modularmachineryaddons.blocksingularityitemoutputbus.small.name=Small Singularity Output Hatch +tile.modularmachineryaddons.blocksingularityitemoutputbus.normal.name=Normal Singularity Output Hatch +tile.modularmachineryaddons.blocksingularityitemoutputbus.reinforced.name=Reinforced Singularity Output Hatch +tile.modularmachineryaddons.blocksingularityitemoutputbus.big.name=Big Singularity Output Hatch +tile.modularmachineryaddons.blocksingularityitemoutputbus.huge.name=Huge Singularity Output Hatch +tile.modularmachineryaddons.blocksingularityitemoutputbus.ludicrous.name=Ludicrous Singularity Output Hatch + item.modularmachineryaddons.itemadvancedconstructtool.name=Advanced Wrench item.modularmachineryaddons.itemadvancedmachineassembler.name=Advanced Machine Assembler item.modularmachineryaddons.itemadvancedmachinedisassembler.name=Advanced Machine Disassembler diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_big.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_big.json new file mode 100644 index 0000000..690bcd2 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_big.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityiteminputbus_big" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_huge.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_huge.json new file mode 100644 index 0000000..ba49a22 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_huge.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityiteminputbus_huge" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_ludicrous.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_ludicrous.json new file mode 100644 index 0000000..2a6c85e --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_ludicrous.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityiteminputbus_ludicrous" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_normal.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_normal.json new file mode 100644 index 0000000..f1e06a6 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_normal.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityiteminputbus_normal" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_reinforced.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_reinforced.json new file mode 100644 index 0000000..1e3116a --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_reinforced.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityiteminputbus_reinforced" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_small.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_small.json new file mode 100644 index 0000000..52402ad --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_small.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityiteminputbus_small" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_tiny.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_tiny.json new file mode 100644 index 0000000..f1180c3 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityiteminputbus_tiny.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityiteminputbus_tiny" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_big.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_big.json new file mode 100644 index 0000000..8002bd2 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_big.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityitemoutputbus_big" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_huge.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_huge.json new file mode 100644 index 0000000..972148b --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_huge.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityitemoutputbus_huge" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_ludicrous.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_ludicrous.json new file mode 100644 index 0000000..b2136ba --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_ludicrous.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityitemoutputbus_ludicrous" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_normal.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_normal.json new file mode 100644 index 0000000..bf4a0e3 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_normal.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityitemoutputbus_normal" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_reinforced.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_reinforced.json new file mode 100644 index 0000000..5f30132 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_reinforced.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityitemoutputbus_reinforced" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_small.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_small.json new file mode 100644 index 0000000..fa38b34 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_small.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityitemoutputbus_small" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_tiny.json b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_tiny.json new file mode 100644 index 0000000..06a6ee3 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/block/blocksingularityitemoutputbus_tiny.json @@ -0,0 +1,7 @@ +{ + "parent": "modularmachinery:block/blockmodel_overlay_all", + "textures": { + "bg_all": "modularmachinery:blocks/blockcasing_plain", + "ov_all": "modularmachineryaddons:blocks/overlay_singularityitemoutputbus_tiny" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_big.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_big.json new file mode 100644 index 0000000..698146c --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_big.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityiteminputbus_big" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_huge.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_huge.json new file mode 100644 index 0000000..4335f90 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_huge.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityiteminputbus_huge" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_ludicrous.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_ludicrous.json new file mode 100644 index 0000000..ab13f16 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_ludicrous.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityiteminputbus_ludicrous" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_normal.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_normal.json new file mode 100644 index 0000000..d79dcfd --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_normal.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityiteminputbus_normal" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_reinforced.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_reinforced.json new file mode 100644 index 0000000..b295ed5 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_reinforced.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityiteminputbus_reinforced" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_small.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_small.json new file mode 100644 index 0000000..6225eea --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_small.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityiteminputbus_small" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_tiny.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_tiny.json new file mode 100644 index 0000000..1e0a0ed --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityiteminputbus_tiny.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityiteminputbus_tiny" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_big.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_big.json new file mode 100644 index 0000000..4eb6377 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_big.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityitemoutputbus_big" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_huge.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_huge.json new file mode 100644 index 0000000..b280ba4 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_huge.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityitemoutputbus_huge" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_ludicrous.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_ludicrous.json new file mode 100644 index 0000000..30cc0a0 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_ludicrous.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityitemoutputbus_ludicrous" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_normal.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_normal.json new file mode 100644 index 0000000..42eed58 --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_normal.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityitemoutputbus_normal" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_reinforced.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_reinforced.json new file mode 100644 index 0000000..30559cf --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_reinforced.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityitemoutputbus_reinforced" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_small.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_small.json new file mode 100644 index 0000000..65bba0b --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_small.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityitemoutputbus_small" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_tiny.json b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_tiny.json new file mode 100644 index 0000000..ed413ab --- /dev/null +++ b/src/main/resources/assets/modularmachineryaddons/models/item/blocksingularityitemoutputbus_tiny.json @@ -0,0 +1,3 @@ +{ + "parent": "modularmachineryaddons:block/blocksingularityitemoutputbus_tiny" +} \ No newline at end of file diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_big.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_big.png new file mode 100644 index 0000000..9936e5d Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_big.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_huge.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_huge.png new file mode 100644 index 0000000..7ac86f2 Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_huge.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_ludicrous.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_ludicrous.png new file mode 100644 index 0000000..57da964 Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_ludicrous.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_normal.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_normal.png new file mode 100644 index 0000000..d4adaf4 Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_normal.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_reinforced.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_reinforced.png new file mode 100644 index 0000000..3d63b4f Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_reinforced.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_small.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_small.png new file mode 100644 index 0000000..1ff3ac3 Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_small.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_tiny.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_tiny.png new file mode 100644 index 0000000..a86b921 Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityiteminputbus_tiny.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_big.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_big.png new file mode 100644 index 0000000..90285a9 Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_big.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_huge.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_huge.png new file mode 100644 index 0000000..d9fa5dc Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_huge.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_ludicrous.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_ludicrous.png new file mode 100644 index 0000000..39465c2 Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_ludicrous.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_normal.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_normal.png new file mode 100644 index 0000000..912b69d Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_normal.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_reinforced.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_reinforced.png new file mode 100644 index 0000000..4e28eeb Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_reinforced.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_small.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_small.png new file mode 100644 index 0000000..e204ee0 Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_small.png differ diff --git a/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_tiny.png b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_tiny.png new file mode 100644 index 0000000..51368db Binary files /dev/null and b/src/main/resources/assets/modularmachineryaddons/textures/blocks/overlay_singularityitemoutputbus_tiny.png differ diff --git a/src/main/resources/mixins.mmcea.json b/src/main/resources/mixins.mmcea.json index 8171142..5339ab0 100644 --- a/src/main/resources/mixins.mmcea.json +++ b/src/main/resources/mixins.mmcea.json @@ -7,6 +7,7 @@ "compatibilityLevel": "JAVA_8", "mixins": [ "BlockStateDescriptorMixin", + "ContainerMixin", "IBlockArrayInvoker", "IBlockInformationAccessor", "MachineControllerRedstoneAffectedEventMixin",