diff --git a/dependencies.gradle b/dependencies.gradle index 2ecc53e0..4db77766 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -34,7 +34,7 @@ * For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph */ dependencies { - implementation("com.github.GTNewHorizons:GTNHLib:0.9.40:dev") + implementation("com.github.GTNewHorizons:GTNHLib:0.11.11:dev") // TODO: remove MUI1 dep when the implicit dependency // TODO: in IItemHandlerModifiable is removed api("com.github.GTNewHorizons:ModularUI:1.3.1:dev") diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java index 8a27688e..e4439e1a 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java @@ -93,7 +93,8 @@ public enum ModBlocks { TRASH_CAN_ITEM(BlockConfig.enableTrashCanItem, new BlockTrashCanItem(), "trash_can_item"), TRASH_CAN_FLUID(BlockConfig.enableTrashCanFluid, new BlockTrashCanFluid(), "trash_can_fluid"), TRASH_CAN_ENERGY(BlockConfig.enableTrashCanEnergy, new BlockTrashCanEnergy(), "trash_can_energy"), - DRUM(BlockConfig.enableDrum, new BlockDrum(16000), BlockDrum.ItemBlockDrum.class, "drum"), + DRUM(BlockConfig.enableDrum, new BlockDrum(256_000, "drum"), BlockDrum.ItemBlockDrum.class, "drum"), + BEDROCKIUM_DRUM(BlockConfig.enableDrum, new BlockDrum(65_536_000, "bedrockium_drum"), BlockDrum.ItemBlockDrum.class, "bedrockium_drum"), SOUND_MUFFLER(BlockConfig.soundMuffler.enableSoundMuffler, new BlockSoundMuffler(), BlockSoundMuffler.ItemBlockSoundMuffler.class, "sound_muffler"), RAIN_MUFFLER(BlockConfig.rainMuffler.enableRainMuffler, new BlockRainMuffler(), BlockRainMuffler.ItemBlockRainMuffler.class, "rain_muffler"), MAGIC_WOOD(BlockConfig.enableMagicWood, new BlockMagicWood(), "magic_wood"), diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/BlockDrum.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/BlockDrum.java index 24a00574..3e1208a3 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/BlockDrum.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/blocks/BlockDrum.java @@ -9,6 +9,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -29,13 +30,12 @@ public class BlockDrum extends BlockContainer { final int capacity; - public BlockDrum(int capacity) { + public BlockDrum(int capacity, String blockname) { super(Material.iron); this.capacity = capacity; - setBlockName("drum"); + setBlockName(blockname); this.setHardness(3.0F); this.setResistance(5.0F); - setBlockTextureName("utilitiesinexcess:drum"); this.setHarvestLevel("pickaxe", 1); } @@ -56,46 +56,132 @@ public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer p return true; } TileEntity tile = world.getTileEntity(x, y, z); - if (tile instanceof TileEntityDrum drum) { - ItemStack heldItem = player.getCurrentEquippedItem(); - FluidStack heldFluid = FluidContainerRegistry.getFluidForFilledItem(heldItem); + if (!(tile instanceof TileEntityDrum drum)) { + return false; + } + + ItemStack heldItem = player.getCurrentEquippedItem(); + if (heldItem != null) { + // weird modded containers like universal cells + if (heldItem.getItem() instanceof IFluidContainerItem item) { + return handleIFluidContainerItem(drum, item, heldItem); + } + // fixed size containers if (FluidContainerRegistry.isFilledContainer(heldItem)) { + return handleFilledRegistryContainer(drum, player, heldItem); + } + // empty containers + if (FluidContainerRegistry.isEmptyContainer(heldItem)) { + return handleEmptyRegistryContainer(drum, player, heldItem); + } + } - if (drum.tank.getFluid() == null) { - drum.setFluid(new FluidStack(heldFluid.getFluid(), 0)); - } + FluidStack fluid = drum.tank.getFluid(); + player.addChatMessage( + new ChatComponentTranslation( + "tile.drum.desc", + fluid == null ? StatCollector.translateToLocalFormatted("tile.drum.desc.empty") + : fluid.getLocalizedName(), + fluid == null ? 0 : NumberFormat.DEFAULT.format(fluid.amount), + NumberFormat.DEFAULT.format(capacity))); + + return false; + } + + private boolean handleIFluidContainerItem(TileEntityDrum drum, IFluidContainerItem heldItem, + ItemStack heldItemStack) { + FluidStack containerFluid = heldItem.getFluid(heldItemStack); + + if (containerFluid != null && containerFluid.amount > 0) { + int accepted = drum.fill(ForgeDirection.UP, containerFluid, false); + if (accepted <= 0) return false; + + FluidStack toTransfer = containerFluid.copy(); + toTransfer.amount = accepted; + + FluidStack drained = heldItem.drain(heldItemStack, accepted, false); + if (drained == null || drained.amount != accepted) return false; + + heldItem.drain(heldItemStack, accepted, true); + drum.fill(ForgeDirection.UP, toTransfer, true); + + } else { + FluidStack inTank = drum.tank.getFluid(); + if (inTank == null || inTank.amount <= 0) return false; + + FluidStack simDrain = drum.drain(ForgeDirection.UP, heldItem.getCapacity(heldItemStack), false); + if (simDrain == null || simDrain.amount <= 0) return false; + + int accepted = heldItem.fill(heldItemStack, simDrain, false); + if (accepted <= 0) return false; + + FluidStack toTransfer = simDrain.copy(); + toTransfer.amount = accepted; + + drum.drain(ForgeDirection.UP, accepted, true); + heldItem.fill(heldItemStack, toTransfer, true); - if (drum.fill(ForgeDirection.UP, heldFluid, true) == heldFluid.amount) { - FluidContainerRegistry.drainFluidContainer(heldItem); - ItemStack emptyContainer = FluidContainerRegistry.drainFluidContainer(heldItem); - emptyContainer.stackSize = 1; - heldItem.stackSize--; - player.inventory.setInventorySlotContents(player.inventory.currentItem, heldItem); - player.inventory.addItemStackToInventory(emptyContainer); - - player.addChatMessage( - new ChatComponentTranslation( - "tile.drum.chat.filled", - drum.tank.getFluid() - .getLocalizedName(), - NumberFormat.DEFAULT.format(drum.tank.getFluid().amount))); - } - } else if (FluidContainerRegistry.isEmptyContainer(heldItem)) { - if (drum.tank.getFluid() != null) { - FluidStack drainedFluid = drum.drain(ForgeDirection.UP, 1000, true); - - if (drainedFluid.amount == 1000) { - ItemStack filledContainer = FluidContainerRegistry.fillFluidContainer(drainedFluid, heldItem); - player.inventory.setInventorySlotContents(player.inventory.currentItem, filledContainer); - } - } - } } + return true; + } + + private boolean handleFilledRegistryContainer(TileEntityDrum drum, EntityPlayer player, ItemStack heldItem) { + FluidStack containerFluid = FluidContainerRegistry.getFluidForFilledItem(heldItem); + if (containerFluid == null) return false; + + int accepted = drum.fill(ForgeDirection.UP, containerFluid, false); + if (accepted != containerFluid.amount) return false; + + ItemStack emptyContainer = FluidContainerRegistry.drainFluidContainer(heldItem); + if (emptyContainer == null) return false; + + drum.fill(ForgeDirection.UP, containerFluid, true); + + giveResultStack(player, heldItem, emptyContainer); + + return true; + } + + private boolean handleEmptyRegistryContainer(TileEntityDrum drum, EntityPlayer player, ItemStack heldItem) { + FluidStack inTank = drum.tank.getFluid(); + if (inTank == null || inTank.amount <= 0) return false; + + int containerCapacity = FluidContainerRegistry.getContainerCapacity(inTank, heldItem); + if (containerCapacity <= 0) return false; + + FluidStack simDrain = drum.drain(ForgeDirection.UP, containerCapacity, false); + if (simDrain == null || simDrain.amount < containerCapacity) return false; + + ItemStack filledContainer = FluidContainerRegistry.fillFluidContainer(simDrain, heldItem); + if (filledContainer == null) return false; + + drum.drain(ForgeDirection.UP, simDrain.amount, true); + + giveResultStack(player, heldItem, filledContainer); return true; } + private void giveResultStack(EntityPlayer player, ItemStack sourceStack, ItemStack result) { + int heldSlot = player.inventory.currentItem; + + if (sourceStack.stackSize == 1) { + player.inventory.setInventorySlotContents(heldSlot, result); + } else { + player.inventory.decrStackSize(heldSlot, 1); + if (!player.inventory.addItemStackToInventory(result)) { + player.worldObj + .spawnEntityInWorld(new EntityItem(player.worldObj, player.posX, player.posY, player.posZ, result)); + } + } + // fix desyncs + if (player instanceof EntityPlayerMP playerMP) { + playerMP.mcServer.getConfigurationManager() + .syncPlayerInventory(playerMP); + } + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase placer, ItemStack stack) { super.onBlockPlacedBy(world, x, y, z, placer, stack); @@ -108,22 +194,18 @@ public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase p @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - // We spawn the correct stack on breakBlock(), make it not drop normally. return new ArrayList<>(); } @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { - ItemStack drop = new ItemStack(this, 1, meta); TileEntity tile = world.getTileEntity(x, y, z); if (tile instanceof TileEntityDrum drum) { - if (drum.tank.getFluid() != null) { - ItemBlockDrum.setFluid( - drop, - drum.tank.getFluid() - .copy()); + FluidStack fluid = drum.tank.getFluid(); + if (fluid != null) { + ItemBlockDrum.setFluid(drop, fluid.copy()); } else { ItemBlockDrum.clearFluid(drop); } @@ -136,7 +218,7 @@ public void breakBlock(World world, int x, int y, int z, Block block, int meta) EntityItem entityItem = new EntityItem(world, x + dx, y + dy, z + dz, drop); world.spawnEntityInWorld(entityItem); - world.removeTileEntity(x, y, z); + super.breakBlock(world, x, y, z, block, meta); } @@ -161,7 +243,6 @@ public static class ItemBlockDrum extends ItemBlock implements IFluidContainerIt public ItemBlockDrum(Block block) { super(block); - this.setMaxStackSize(1); this.capacity = ((BlockDrum) block).capacity; } @@ -177,9 +258,7 @@ public int getCapacity(ItemStack stack) { @Override public int fill(ItemStack stack, FluidStack resource, boolean doFill) { - if (resource == null) { - return 0; - } + if (resource == null || resource.amount <= 0) return 0; FluidStack currentFluid = getFluid(stack); @@ -191,40 +270,36 @@ public int fill(ItemStack stack, FluidStack resource, boolean doFill) { setFluid(stack, newFluid); } return fillAmount; - } else { - if (!currentFluid.isFluidEqual(resource)) { - return 0; - } + } - int space = capacity - currentFluid.amount; - if (space <= 0) { - return 0; - } + if (!currentFluid.isFluidEqual(resource)) return 0; - int fillAmount = Math.min(space, resource.amount); - if (doFill && fillAmount > 0) { - currentFluid.amount += fillAmount; - setFluid(stack, currentFluid); - } - return fillAmount; + int space = capacity - currentFluid.amount; + if (space <= 0) return 0; + + int fillAmount = Math.min(space, resource.amount); + if (doFill && fillAmount > 0) { + currentFluid.amount += fillAmount; + setFluid(stack, currentFluid); } + return fillAmount; } @Override public FluidStack drain(ItemStack stack, int maxDrain, boolean doDrain) { FluidStack currentFluid = getFluid(stack); - if (currentFluid == null) { - return null; - } + if (currentFluid == null || currentFluid.amount <= 0) return null; int drained = Math.min(maxDrain, currentFluid.amount); + if (drained <= 0) return null; + FluidStack drainedFluid = currentFluid.copy(); drainedFluid.amount = drained; if (doDrain) { currentFluid.amount -= drained; if (currentFluid.amount <= 0) { - stack.setTagCompound(null); + clearFluid(stack); } else { setFluid(stack, currentFluid); } @@ -232,12 +307,9 @@ public FluidStack drain(ItemStack stack, int maxDrain, boolean doDrain) { return drainedFluid; } - // Helper functions to abstract away the NBT layer public static void setFluid(ItemStack stack, FluidStack fluid) { NBTTagCompound tag = stack.getTagCompound(); - if (tag == null) { - tag = new NBTTagCompound(); - } + if (tag == null) tag = new NBTTagCompound(); NBTTagCompound fluidTag = new NBTTagCompound(); fluid.writeToNBT(fluidTag); tag.setTag("Fluid", fluidTag); @@ -251,26 +323,24 @@ public static void clearFluid(ItemStack stack) { public static FluidStack getFluidFromStack(ItemStack stack) { if (stack.hasTagCompound() && stack.getTagCompound() .hasKey("Fluid")) { - NBTTagCompound fluidTag = stack.getTagCompound() - .getCompoundTag("Fluid"); - return FluidStack.loadFluidStackFromNBT(fluidTag); + return FluidStack.loadFluidStackFromNBT( + stack.getTagCompound() + .getCompoundTag("Fluid")); } return null; } @Override public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean bool) { - tooltip - .add(StatCollector.translateToLocalFormatted("tile.drum.desc", NumberFormat.DEFAULT.format(capacity))); FluidStack fluid = getFluid(stack); - if (fluid != null) { - String formatted = StatCollector.translateToLocalFormatted( - "tile.drum.desc.fluid", - fluid.getLocalizedName(), - NumberFormat.DEFAULT.format(fluid.amount)); - tooltip.add(formatted); - } + String fluidName = fluid == null ? StatCollector.translateToLocalFormatted("tile.drum.desc.empty") + : fluid.getLocalizedName(); + tooltip.add( + StatCollector.translateToLocalFormatted( + "tile.drum.desc", + fluidName, + fluid == null ? 0 : NumberFormat.DEFAULT.format(fluid.amount), + NumberFormat.DEFAULT.format(capacity))); } } - } diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/recipe/RecipeLoader.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/recipe/RecipeLoader.java index bd3620e8..8d63135c 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/recipe/RecipeLoader.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/recipe/RecipeLoader.java @@ -286,6 +286,19 @@ public static void run() { 'c', Items.cauldron); + // Bedrockium Drum + addShapedRecipe( + ModBlocks.BEDROCKIUM_DRUM, + "ipi", + "ici", + "ipi", + 'i', + ModItems.BEDROCKIUM_INGOT, + 'p', + Blocks.light_weighted_pressure_plate, + 'c', + Items.cauldron); + // Sound Muffler addShapedRecipe( ModBlocks.SOUND_MUFFLER, diff --git a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityDrum.java b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityDrum.java index c4c99249..207538fa 100644 --- a/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityDrum.java +++ b/src/main/java/com/fouristhenumber/utilitiesinexcess/common/tileentities/TileEntityDrum.java @@ -11,15 +11,17 @@ public class TileEntityDrum extends TileEntity implements IFluidHandler { - public final FluidTank tank; + public FluidTank tank; + private int capacity; - public TileEntityDrum(int capacity) { + public TileEntityDrum() { super(); - this.tank = new FluidTank(capacity); } - public void setTank(FluidTank tank) { - setFluid(tank.getFluid()); + public TileEntityDrum(int capacity) { + super(); + this.capacity = capacity; + this.tank = new FluidTank(capacity); } public void setFluid(FluidStack stack) { @@ -29,21 +31,23 @@ public void setFluid(FluidStack stack) { @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); + this.capacity = nbt.getInteger("capacity"); + this.tank = new FluidTank(capacity); if (nbt.hasKey("tank")) { - NBTTagCompound tankNbt = nbt.getCompoundTag("tank"); - tank.readFromNBT(tankNbt); + tank.readFromNBT(nbt.getCompoundTag("tank")); } } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); + nbt.setInteger("capacity", capacity); NBTTagCompound tankNbt = new NBTTagCompound(); tank.writeToNBT(tankNbt); nbt.setTag("tank", tankNbt); } - // IFluidHandler implementation + // IFluidHandler @Override public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { @@ -55,7 +59,9 @@ public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { @Override public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { - if (resource == null || !resource.isFluidEqual(tank.getFluid())) return null; + if (resource == null) return null; + FluidStack inTank = tank.getFluid(); + if (inTank == null || !resource.isFluidEqual(inTank)) return null; FluidStack drained = tank.drain(resource.amount, doDrain); if (doDrain && drained != null && drained.amount > 0) markDirty(); return drained; @@ -70,13 +76,14 @@ public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { @Override public boolean canFill(ForgeDirection from, Fluid fluid) { - return true; + FluidStack current = tank.getFluid(); + return current == null || current.getFluid() == fluid; } @Override public boolean canDrain(ForgeDirection from, Fluid fluid) { - FluidStack fluidInTank = tank.getFluid(); - return fluidInTank != null && fluidInTank.getFluid() == fluid; + FluidStack current = tank.getFluid(); + return current != null && current.getFluid() == fluid; } @Override diff --git a/src/main/resources/assets/utilitiesinexcess/blockstates/bedrockium_drum.json b/src/main/resources/assets/utilitiesinexcess/blockstates/bedrockium_drum.json new file mode 100644 index 00000000..1ebad528 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/blockstates/bedrockium_drum.json @@ -0,0 +1,5 @@ +{ + "variants": { + "meta=0": { "model": "utilitiesinexcess:blocks/bedrockium_drum"} + } +} diff --git a/src/main/resources/assets/utilitiesinexcess/lang/en_US.lang b/src/main/resources/assets/utilitiesinexcess/lang/en_US.lang index 1f9ebe6d..c184aff4 100644 --- a/src/main/resources/assets/utilitiesinexcess/lang/en_US.lang +++ b/src/main/resources/assets/utilitiesinexcess/lang/en_US.lang @@ -407,10 +407,9 @@ nei.infopage.uie.advanced.block_update_detector.1=Like the standard Block Update chat.tile.advanced_block_update_detector.toggle=Side %s set to redstone output %s. tile.drum.name=Drum -tile.drum.desc=Holds %s buckets of fluid -tile.drum.desc.fluid=Currently holding %s %sL -tile.drum.chat.filled=In drum: %s %sL -tile.drum.chat.empty=Drum is empty +tile.bedrockium_drum.name=Bedrockium Drum +tile.drum.desc.empty=Empty +tile.drum.desc=%s: %s / %s nei.infopage.uie.drum.1=Drums are simple fluid tanks that keep their contents when broken. diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/bedrockium_drum.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/bedrockium_drum.json new file mode 100644 index 00000000..b0ba59e0 --- /dev/null +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/bedrockium_drum.json @@ -0,0 +1,7 @@ +{ + "parent": "utilitiesinexcess:blocks/drum", + "textures": { + "0": "utilitiesinexcess:models/bedrockium_drum", + "particle": "utilitiesinexcess:models/bedrockium_drum" + } +} diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/diamond_spike.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/diamond_spike.json index 389884a7..ced984c4 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/diamond_spike.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/diamond_spike.json @@ -1,6 +1,7 @@ { "parent": "utilitiesinexcess:blocks/wood_spike", "textures": { - "0": "utilitiesinexcess:models/diamond_spike" + "0": "utilitiesinexcess:models/diamond_spike", + "particle": "utilitiesinexcess:models/diamond_spike" } } diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/drum.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/drum.json index a406d5a9..d8ce6123 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/drum.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/drum.json @@ -3,7 +3,8 @@ "credit": "Made with Blockbench", "texture_size": [64, 64], "textures": { - "1": "utilitiesinexcess:models/drum" + "0": "utilitiesinexcess:models/drum", + "particle": "utilitiesinexcess:models/drum" }, "elements": [ { @@ -12,12 +13,12 @@ "to": [3, 16, 14], "rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 3]}, "faces": { - "north": {"uv": [4, 9, 4.25, 9.5], "texture": "#1"}, - "east": {"uv": [7.5, 2.5, 10.25, 3], "texture": "#1"}, - "south": {"uv": [4.25, 9, 4.5, 9.5], "texture": "#1"}, - "west": {"uv": [7.5, 3, 10.25, 3.5], "texture": "#1"}, - "up": {"uv": [5.75, 11.25, 5.5, 8.5], "texture": "#1"}, - "down": {"uv": [6, 8.5, 5.75, 11.25], "texture": "#1"} + "north": {"uv": [4, 9, 4.25, 9.5], "texture": "#0"}, + "east": {"uv": [7.5, 2.5, 10.25, 3], "texture": "#0"}, + "south": {"uv": [4.25, 9, 4.5, 9.5], "texture": "#0"}, + "west": {"uv": [7.5, 3, 10.25, 3.5], "texture": "#0"}, + "up": {"uv": [5.75, 11.25, 5.5, 8.5], "texture": "#0"}, + "down": {"uv": [6, 8.5, 5.75, 11.25], "texture": "#0"} } }, { @@ -26,12 +27,12 @@ "to": [13, 16, 3], "rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 2]}, "faces": { - "north": {"uv": [7.5, 3.5, 10.25, 4], "texture": "#1"}, - "east": {"uv": [4.5, 9, 4.75, 9.5], "texture": "#1"}, - "south": {"uv": [7.5, 4, 10.25, 4.5], "texture": "#1"}, - "west": {"uv": [4.75, 9, 5, 9.5], "texture": "#1"}, - "up": {"uv": [8.75, 8.75, 6, 8.5], "texture": "#1"}, - "down": {"uv": [8.75, 8.75, 6, 9], "texture": "#1"} + "north": {"uv": [7.5, 3.5, 10.25, 4], "texture": "#0"}, + "east": {"uv": [4.5, 9, 4.75, 9.5], "texture": "#0"}, + "south": {"uv": [7.5, 4, 10.25, 4.5], "texture": "#0"}, + "west": {"uv": [4.75, 9, 5, 9.5], "texture": "#0"}, + "up": {"uv": [8.75, 8.75, 6, 8.5], "texture": "#0"}, + "down": {"uv": [8.75, 8.75, 6, 9], "texture": "#0"} } }, { @@ -40,12 +41,12 @@ "to": [13, 15, 13], "rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 2]}, "faces": { - "north": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, - "up": {"uv": [7.5, 2.5, 5, 0], "texture": "#1"}, - "down": {"uv": [7.5, 2.5, 5, 5], "texture": "#1"} + "north": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, + "south": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, + "west": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, + "up": {"uv": [7.5, 2.5, 5, 0], "texture": "#0"}, + "down": {"uv": [7.5, 2.5, 5, 5], "texture": "#0"} } }, { @@ -54,12 +55,12 @@ "to": [14, 16, 13], "rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 2]}, "faces": { - "north": {"uv": [5, 9, 5.25, 9.5], "texture": "#1"}, - "east": {"uv": [7.5, 4.5, 10.25, 5], "texture": "#1"}, - "south": {"uv": [5.25, 9, 5.5, 9.5], "texture": "#1"}, - "west": {"uv": [5, 7.5, 7.75, 8], "texture": "#1"}, - "up": {"uv": [9, 11.25, 8.75, 8.5], "texture": "#1"}, - "down": {"uv": [0.25, 9, 0, 11.75], "texture": "#1"} + "north": {"uv": [5, 9, 5.25, 9.5], "texture": "#0"}, + "east": {"uv": [7.5, 4.5, 10.25, 5], "texture": "#0"}, + "south": {"uv": [5.25, 9, 5.5, 9.5], "texture": "#0"}, + "west": {"uv": [5, 7.5, 7.75, 8], "texture": "#0"}, + "up": {"uv": [9, 11.25, 8.75, 8.5], "texture": "#0"}, + "down": {"uv": [0.25, 9, 0, 11.75], "texture": "#0"} } }, { @@ -68,12 +69,12 @@ "to": [14, 16, 14], "rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 2]}, "faces": { - "north": {"uv": [7.5, 5, 10.25, 5.5], "texture": "#1"}, - "east": {"uv": [6, 9.25, 6.25, 9.75], "texture": "#1"}, - "south": {"uv": [7.5, 5.5, 10.25, 6], "texture": "#1"}, - "west": {"uv": [6.25, 9.25, 6.5, 9.75], "texture": "#1"}, - "up": {"uv": [3, 9.25, 0.25, 9], "texture": "#1"}, - "down": {"uv": [8.75, 9, 6, 9.25], "texture": "#1"} + "north": {"uv": [7.5, 5, 10.25, 5.5], "texture": "#0"}, + "east": {"uv": [6, 9.25, 6.25, 9.75], "texture": "#0"}, + "south": {"uv": [7.5, 5.5, 10.25, 6], "texture": "#0"}, + "west": {"uv": [6.25, 9.25, 6.5, 9.75], "texture": "#0"}, + "up": {"uv": [3, 9.25, 0.25, 9], "texture": "#0"}, + "down": {"uv": [8.75, 9, 6, 9.25], "texture": "#0"} } }, { @@ -82,12 +83,12 @@ "to": [13, 14, 13], "rotation": {"angle": 0, "axis": "y", "origin": [4, 2, 3]}, "faces": { - "north": {"uv": [0, 0, 2.5, 3], "texture": "#1"}, - "east": {"uv": [2.5, 0, 5, 3], "texture": "#1"}, - "south": {"uv": [0, 3, 2.5, 6], "texture": "#1"}, - "west": {"uv": [2.5, 3, 5, 6], "texture": "#1"}, - "up": {"uv": [7.5, 7.5, 5, 5], "texture": "#1"}, - "down": {"uv": [2.5, 6, 0, 8.5], "texture": "#1"} + "north": {"uv": [0, 0, 2.5, 3], "texture": "#0"}, + "east": {"uv": [2.5, 0, 5, 3], "texture": "#0"}, + "south": {"uv": [0, 3, 2.5, 6], "texture": "#0"}, + "west": {"uv": [2.5, 3, 5, 6], "texture": "#0"}, + "up": {"uv": [7.5, 7.5, 5, 5], "texture": "#0"}, + "down": {"uv": [2.5, 6, 0, 8.5], "texture": "#0"} } }, { @@ -96,12 +97,12 @@ "to": [3, 2, 14], "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 3]}, "faces": { - "north": {"uv": [6.5, 9.25, 6.75, 9.75], "texture": "#1"}, - "east": {"uv": [7.5, 6, 10.25, 6.5], "texture": "#1"}, - "south": {"uv": [6.75, 9.25, 7, 9.75], "texture": "#1"}, - "west": {"uv": [7.5, 6.5, 10.25, 7], "texture": "#1"}, - "up": {"uv": [3.25, 11.75, 3, 9], "texture": "#1"}, - "down": {"uv": [3.5, 9, 3.25, 11.75], "texture": "#1"} + "north": {"uv": [6.5, 9.25, 6.75, 9.75], "texture": "#0"}, + "east": {"uv": [7.5, 6, 10.25, 6.5], "texture": "#0"}, + "south": {"uv": [6.75, 9.25, 7, 9.75], "texture": "#0"}, + "west": {"uv": [7.5, 6.5, 10.25, 7], "texture": "#0"}, + "up": {"uv": [3.25, 11.75, 3, 9], "texture": "#0"}, + "down": {"uv": [3.5, 9, 3.25, 11.75], "texture": "#0"} } }, { @@ -110,12 +111,12 @@ "to": [13, 2, 3], "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 2]}, "faces": { - "north": {"uv": [7.5, 7, 10.25, 7.5], "texture": "#1"}, - "east": {"uv": [7, 9.25, 7.25, 9.75], "texture": "#1"}, - "south": {"uv": [7.75, 7.5, 10.5, 8], "texture": "#1"}, - "west": {"uv": [7.25, 9.25, 7.5, 9.75], "texture": "#1"}, - "up": {"uv": [11.75, 8.75, 9, 8.5], "texture": "#1"}, - "down": {"uv": [11.75, 8.75, 9, 9], "texture": "#1"} + "north": {"uv": [7.5, 7, 10.25, 7.5], "texture": "#0"}, + "east": {"uv": [7, 9.25, 7.25, 9.75], "texture": "#0"}, + "south": {"uv": [7.75, 7.5, 10.5, 8], "texture": "#0"}, + "west": {"uv": [7.25, 9.25, 7.5, 9.75], "texture": "#0"}, + "up": {"uv": [11.75, 8.75, 9, 8.5], "texture": "#0"}, + "down": {"uv": [11.75, 8.75, 9, 9], "texture": "#0"} } }, { @@ -124,12 +125,12 @@ "to": [13, 1, 13], "rotation": {"angle": 0, "axis": "y", "origin": [2, 1, 2]}, "faces": { - "north": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, - "up": {"uv": [5, 8.5, 2.5, 6], "texture": "#1"}, - "down": {"uv": [10, 0, 7.5, 2.5], "texture": "#1"} + "north": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, + "east": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, + "south": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, + "west": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, + "up": {"uv": [5, 8.5, 2.5, 6], "texture": "#0"}, + "down": {"uv": [10, 0, 7.5, 2.5], "texture": "#0"} } }, { @@ -138,12 +139,12 @@ "to": [14, 2, 13], "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 2]}, "faces": { - "north": {"uv": [7.5, 9.25, 7.75, 9.75], "texture": "#1"}, - "east": {"uv": [5, 8, 7.75, 8.5], "texture": "#1"}, - "south": {"uv": [7.75, 9.25, 8, 9.75], "texture": "#1"}, - "west": {"uv": [7.75, 8, 10.5, 8.5], "texture": "#1"}, - "up": {"uv": [3.75, 11.75, 3.5, 9], "texture": "#1"}, - "down": {"uv": [4, 9, 3.75, 11.75], "texture": "#1"} + "north": {"uv": [7.5, 9.25, 7.75, 9.75], "texture": "#0"}, + "east": {"uv": [5, 8, 7.75, 8.5], "texture": "#0"}, + "south": {"uv": [7.75, 9.25, 8, 9.75], "texture": "#0"}, + "west": {"uv": [7.75, 8, 10.5, 8.5], "texture": "#0"}, + "up": {"uv": [3.75, 11.75, 3.5, 9], "texture": "#0"}, + "down": {"uv": [4, 9, 3.75, 11.75], "texture": "#0"} } }, { @@ -152,12 +153,12 @@ "to": [14, 2, 14], "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 2]}, "faces": { - "north": {"uv": [0, 8.5, 2.75, 9], "texture": "#1"}, - "east": {"uv": [8, 9.25, 8.25, 9.75], "texture": "#1"}, - "south": {"uv": [2.75, 8.5, 5.5, 9], "texture": "#1"}, - "west": {"uv": [8.25, 9.25, 8.5, 9.75], "texture": "#1"}, - "up": {"uv": [11.75, 9.25, 9, 9], "texture": "#1"}, - "down": {"uv": [3, 9.25, 0.25, 9.5], "texture": "#1"} + "north": {"uv": [0, 8.5, 2.75, 9], "texture": "#0"}, + "east": {"uv": [8, 9.25, 8.25, 9.75], "texture": "#0"}, + "south": {"uv": [2.75, 8.5, 5.5, 9], "texture": "#0"}, + "west": {"uv": [8.25, 9.25, 8.5, 9.75], "texture": "#0"}, + "up": {"uv": [11.75, 9.25, 9, 9], "texture": "#0"}, + "down": {"uv": [3, 9.25, 0.25, 9.5], "texture": "#0"} } } ], diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/giga_torch.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/giga_torch.json index 653c21d9..5f315704 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/giga_torch.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/giga_torch.json @@ -2,7 +2,8 @@ "format_version": "1.21.11", "credit": "Made with Blockbench", "textures": { - "0": "utilitiesinexcess:models/giga_torch" + "0": "utilitiesinexcess:models/giga_torch", + "particle": "utilitiesinexcess:models/giga_torch" }, "elements": [ { diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/gold_spike.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/gold_spike.json index 378b19f6..a67ee360 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/gold_spike.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/gold_spike.json @@ -1,6 +1,7 @@ { "parent": "utilitiesinexcess:blocks/wood_spike", "textures": { - "0": "utilitiesinexcess:models/gold_spike" + "0": "utilitiesinexcess:models/gold_spike", + "particle": "utilitiesinexcess:models/gold_spike" } } diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/iron_spike.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/iron_spike.json index 17173d72..51c8ebcb 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/iron_spike.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/iron_spike.json @@ -1,6 +1,7 @@ { "parent": "utilitiesinexcess:blocks/wood_spike", "textures": { - "0": "utilitiesinexcess:models/iron_spike" + "0": "utilitiesinexcess:models/iron_spike", + "particle": "utilitiesinexcess:models/iron_spike" } } diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_energy.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_energy.json index 88c51989..087c6fd3 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_energy.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_energy.json @@ -1,6 +1,7 @@ { "parent": "utilitiesinexcess:blocks/trash_can_item", "textures": { - "0": "utilitiesinexcess:models/trash_can_energy" + "0": "utilitiesinexcess:models/trash_can_energy", + "particle": "utilitiesinexcess:models/trash_can_energy" } } diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_fluid.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_fluid.json index 1ca47774..89473339 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_fluid.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_fluid.json @@ -1,6 +1,7 @@ { "parent": "utilitiesinexcess:blocks/trash_can_item", "textures": { - "0": "utilitiesinexcess:models/trash_can_fluid" + "0": "utilitiesinexcess:models/trash_can_fluid", + "particle": "utilitiesinexcess:models/trash_can_fluid" } } diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_item.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_item.json index c1b6e039..6df4a0de 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_item.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/trash_can_item.json @@ -3,7 +3,8 @@ "credit": "Made with Blockbench", "texture_size": [64, 64], "textures": { - "0": "utilitiesinexcess:models/trash_can_item" + "0": "utilitiesinexcess:models/trash_can_item", + "particle": "utilitiesinexcess:models/trash_can_item" }, "elements": [ { diff --git a/src/main/resources/assets/utilitiesinexcess/models/blocks/wood_spike.json b/src/main/resources/assets/utilitiesinexcess/models/blocks/wood_spike.json index a865a138..8779e2ab 100644 --- a/src/main/resources/assets/utilitiesinexcess/models/blocks/wood_spike.json +++ b/src/main/resources/assets/utilitiesinexcess/models/blocks/wood_spike.json @@ -3,7 +3,8 @@ "credit": "Made with Blockbench", "texture_size": [64, 64], "textures": { - "0": "utilitiesinexcess:models/wood_spike" + "0": "utilitiesinexcess:models/wood_spike", + "particle": "utilitiesinexcess:models/wood_spike" }, "elements": [ {