From db964cda7be004d010f045eb8982d72696ef6dec Mon Sep 17 00:00:00 2001 From: Calclavia Date: Fri, 17 Jan 2014 21:58:05 +0800 Subject: [PATCH] Added hot plate smelting --- .../resonantinduction/archaic/Archaic.java | 82 ++++---- .../engineering/BlockEngineeringTable.java | 10 +- .../engineering/RenderEngineeringTable.java | 2 +- .../archaic/firebox/BlockHotPlate.java | 136 ++++++++++++++ .../archaic/firebox/RenderHotPlate.java | 23 +++ .../archaic/firebox/TileFirebox.java | 17 +- .../archaic/firebox/TileHotPlate.java | 177 ++++++++++++++++++ .../archaic/imprint/RenderImprinter.java | 2 +- .../core/prefab/block/BlockRI.java | 7 + .../core/render/RenderItemOverlayTile.java | 11 +- .../fluid/valve/BlockReleaseValve.java | 2 +- .../languages/en_US.properties | 1 + ...metalStoneEdge.png => material_stone_edge} | Bin .../textures/blocks/metalWoodEdge.png | Bin 4599 -> 0 bytes 14 files changed, 416 insertions(+), 54 deletions(-) create mode 100644 src/main/java/resonantinduction/archaic/firebox/BlockHotPlate.java create mode 100644 src/main/java/resonantinduction/archaic/firebox/RenderHotPlate.java create mode 100644 src/main/java/resonantinduction/archaic/firebox/TileHotPlate.java rename src/main/resources/assets/resonantinduction/textures/blocks/{metalStoneEdge.png => material_stone_edge} (100%) delete mode 100644 src/main/resources/assets/resonantinduction/textures/blocks/metalWoodEdge.png diff --git a/src/main/java/resonantinduction/archaic/Archaic.java b/src/main/java/resonantinduction/archaic/Archaic.java index 338a3597..d207a410 100644 --- a/src/main/java/resonantinduction/archaic/Archaic.java +++ b/src/main/java/resonantinduction/archaic/Archaic.java @@ -9,7 +9,9 @@ import resonantinduction.archaic.crate.TileCrate; import resonantinduction.archaic.engineering.BlockEngineeringTable; import resonantinduction.archaic.engineering.TileEngineeringTable; import resonantinduction.archaic.firebox.BlockFirebox; +import resonantinduction.archaic.firebox.BlockHotPlate; import resonantinduction.archaic.firebox.TileFirebox; +import resonantinduction.archaic.firebox.TileHotPlate; import resonantinduction.archaic.imprint.BlockImprinter; import resonantinduction.archaic.imprint.ItemBlockImprint; import resonantinduction.archaic.imprint.TileImprinter; @@ -28,56 +30,60 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; -/** Resonant Induction Archaic Module +/** + * Resonant Induction Archaic Module * - * @author DarkCow, Calclavia */ + * @author DarkCow, Calclavia + */ @Mod(modid = Archaic.ID, name = Archaic.NAME, version = Reference.VERSION, dependencies = "required-after:" + ResonantInduction.ID) @NetworkMod(channels = Reference.CHANNEL, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class) public class Archaic { - /** Mod Information */ - public static final String ID = "ResonantInduction|Archaic"; - public static final String NAME = Reference.NAME + " Archaic"; + /** Mod Information */ + public static final String ID = "ResonantInduction|Archaic"; + public static final String NAME = Reference.NAME + " Archaic"; - @Instance(ID) - public static Archaic INSTANCE; + @Instance(ID) + public static Archaic INSTANCE; - @SidedProxy(clientSide = "resonantinduction.archaic.ClientProxy", serverSide = "resonantinduction.archaic.CommonProxy") - public static CommonProxy proxy; + @SidedProxy(clientSide = "resonantinduction.archaic.ClientProxy", serverSide = "resonantinduction.archaic.CommonProxy") + public static CommonProxy proxy; - @Mod.Metadata(ID) - public static ModMetadata metadata; + @Mod.Metadata(ID) + public static ModMetadata metadata; - public static final ContentRegistry contentRegistry = new ContentRegistry(Settings.CONFIGURATION, ID); + public static final ContentRegistry contentRegistry = new ContentRegistry(Settings.CONFIGURATION, ID); - public static Block blockEngineeringTable; - public static Block blockCrate; - public static Block blockImprinter; - public static Block blockTurntable; - public static Block blockFirebox; + public static Block blockEngineeringTable; + public static Block blockCrate; + public static Block blockImprinter; + public static Block blockTurntable; + public static Block blockFirebox; + public static Block blockHotPlate; - public static Item itemImprint; + public static Item itemImprint; - @EventHandler - public void preInit(FMLPreInitializationEvent evt) - { - Settings.load(); - NetworkRegistry.instance().registerGuiHandler(this, proxy); - blockEngineeringTable = contentRegistry.createTile(BlockEngineeringTable.class, TileEngineeringTable.class); - blockCrate = contentRegistry.createBlock(BlockCrate.class, ItemBlockCrate.class, TileCrate.class); - blockImprinter = contentRegistry.createTile(BlockImprinter.class, TileImprinter.class); - blockTurntable = contentRegistry.createBlock(BlockTurntable.class); - blockFirebox = contentRegistry.createTile(BlockFirebox.class, TileFirebox.class); + @EventHandler + public void preInit(FMLPreInitializationEvent evt) + { + Settings.load(); + NetworkRegistry.instance().registerGuiHandler(this, proxy); + blockEngineeringTable = contentRegistry.createTile(BlockEngineeringTable.class, TileEngineeringTable.class); + blockCrate = contentRegistry.createBlock(BlockCrate.class, ItemBlockCrate.class, TileCrate.class); + blockImprinter = contentRegistry.createTile(BlockImprinter.class, TileImprinter.class); + blockTurntable = contentRegistry.createBlock(BlockTurntable.class); + blockFirebox = contentRegistry.createTile(BlockFirebox.class, TileFirebox.class); + blockHotPlate = contentRegistry.createTile(BlockHotPlate.class, TileHotPlate.class); - itemImprint = contentRegistry.createItem(ItemBlockImprint.class); - proxy.preInit(); - Settings.save(); - } + itemImprint = contentRegistry.createItem(ItemBlockImprint.class); + proxy.preInit(); + Settings.save(); + } - @EventHandler - public void init(FMLInitializationEvent evt) - { - Settings.setModMetadata(metadata, ID, NAME); - proxy.init(); - } + @EventHandler + public void init(FMLInitializationEvent evt) + { + Settings.setModMetadata(metadata, ID, NAME); + proxy.init(); + } } diff --git a/src/main/java/resonantinduction/archaic/engineering/BlockEngineeringTable.java b/src/main/java/resonantinduction/archaic/engineering/BlockEngineeringTable.java index f6751909..da6849db 100644 --- a/src/main/java/resonantinduction/archaic/engineering/BlockEngineeringTable.java +++ b/src/main/java/resonantinduction/archaic/engineering/BlockEngineeringTable.java @@ -114,10 +114,8 @@ public class BlockEngineeringTable extends BlockRI { if (!world.isRemote) { - ItemStack current = player.inventory.getCurrentItem(); - Vector2 hitVector = new Vector2(hitX, hitZ); - double regionLength = 1d / 3d; + final double regionLength = 1d / 3d; /** * Crafting Matrix @@ -204,12 +202,6 @@ public class BlockEngineeringTable extends BlockRI this.iconFront = par1IconRegister.registerIcon(this.getTextureName() + "_front"); } - @Override - public boolean isControlDown(EntityPlayer player) - { - return ControlKeyModifer.isControlDown(player); - } - @Override public TileEntity createNewTileEntity(World world) { diff --git a/src/main/java/resonantinduction/archaic/engineering/RenderEngineeringTable.java b/src/main/java/resonantinduction/archaic/engineering/RenderEngineeringTable.java index 11f98786..aca9eab8 100644 --- a/src/main/java/resonantinduction/archaic/engineering/RenderEngineeringTable.java +++ b/src/main/java/resonantinduction/archaic/engineering/RenderEngineeringTable.java @@ -17,7 +17,7 @@ public class RenderEngineeringTable extends RenderItemOverlayTile if (tileEntity instanceof TileEngineeringTable) { TileEngineeringTable tile = (TileEngineeringTable) tileEntity; - renderTopCrafting(tileEntity, tile.craftingMatrix, x, y, z); + renderTopOverlay(tileEntity, tile.craftingMatrix, x, y, z); renderItemOnSides(tileEntity, tile.getStackInSlot(9), x, y, z); } } diff --git a/src/main/java/resonantinduction/archaic/firebox/BlockHotPlate.java b/src/main/java/resonantinduction/archaic/firebox/BlockHotPlate.java new file mode 100644 index 00000000..54799f4f --- /dev/null +++ b/src/main/java/resonantinduction/archaic/firebox/BlockHotPlate.java @@ -0,0 +1,136 @@ +package resonantinduction.archaic.firebox; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Icon; +import net.minecraft.world.World; +import resonantinduction.core.Reference; +import resonantinduction.core.prefab.block.BlockRI; +import universalelectricity.api.vector.Vector2; +import universalelectricity.api.vector.Vector3; + +public class BlockHotPlate extends BlockRI +{ + private Icon topOn; + private Icon topOff; + + public BlockHotPlate() + { + super("hotPlate", Material.wood); + setTextureName(Reference.PREFIX + "material_stone_chiseled"); + setBlockBounds(0, 0, 0, 1, 0.2f, 1); + this.setTickRandomly(true); + } + + @Override + public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) + { + TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + + if (tileEntity instanceof TileHotPlate) + { + TileHotPlate tile = (TileHotPlate) tileEntity; + extractItem(tile, 0, player); + } + } + + @Override + public boolean onMachineActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) + { + TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + + if (tileEntity instanceof TileHotPlate) + { + TileHotPlate tile = (TileHotPlate) tileEntity; + + if (!world.isRemote) + { + Vector2 hitVector = new Vector2(hitX, hitZ); + final double regionLength = 1d / 2d; + + /** + * Crafting Matrix + */ + matrix: + for (int j = 0; j < 2; j++) + { + for (int k = 0; k < 2; k++) + { + Vector2 check = new Vector2(j, k).scale(regionLength); + + if (check.distance(hitVector) < regionLength) + { + int slotID = j * 2 + k; + interactCurrentItem(tile, slotID, player); + break matrix; + } + } + } + + tile.onInventoryChanged(); + } + + return true; + } + + return false; + } + + @Override + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + + if (tileEntity instanceof TileHotPlate) + { + TileHotPlate tile = (TileHotPlate) tileEntity; + + for (int j = 0; j < 2; j++) + { + for (int k = 0; k < 2; k++) + { + int i = j * 2 + k; + + if (tile.getSmeltTime(i) > 0) + { + int timeSmelt = TileHotPlate.MAX_SMELT_TIME - tile.getSmeltTime(i); +System.out.println(timeSmelt); + for (int spawn = 0; spawn < timeSmelt / 20; spawn++) + { + Vector3 particlePosition = new Vector3(x, y, z).translate((double) (i / 2) / ((double) 2) + (0.5 / ((double) 2)), 0.2, (double) (i % 2) / ((double) 2) + (0.5 / ((double) 2))); + particlePosition.translate(new Vector3(random.nextFloat() * 0.1f, random.nextFloat() * 0.1f, random.nextFloat() * 0.1f)); + world.spawnParticle("smoke", particlePosition.x, particlePosition.y, particlePosition.z, 0.0D, 0.0D, 0.0D); + } + } + } + } + } + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity par5Entity) + { + TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + + if (tileEntity instanceof TileHotPlate) + { + TileHotPlate tile = (TileHotPlate) tileEntity; + + if (tile.isSmelting()) + { + par5Entity.attackEntityFrom(DamageSource.inFire, 1); + } + } + } + + @Override + public TileEntity createNewTileEntity(World world) + { + return new TileHotPlate(); + } +} diff --git a/src/main/java/resonantinduction/archaic/firebox/RenderHotPlate.java b/src/main/java/resonantinduction/archaic/firebox/RenderHotPlate.java new file mode 100644 index 00000000..d2de3a51 --- /dev/null +++ b/src/main/java/resonantinduction/archaic/firebox/RenderHotPlate.java @@ -0,0 +1,23 @@ +package resonantinduction.archaic.firebox; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.tileentity.TileEntity; +import resonantinduction.core.render.RenderItemOverlayTile; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class RenderHotPlate extends RenderItemOverlayTile +{ + private final RenderBlocks renderBlocks = new RenderBlocks(); + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float var8) + { + if (tileEntity instanceof TileHotPlate) + { + TileHotPlate tile = (TileHotPlate) tileEntity; + renderTopOverlay(tileEntity, tile.getInventory().getContainedItems(), 2, 2, x, y - 0.8, z); + } + } +} diff --git a/src/main/java/resonantinduction/archaic/firebox/TileFirebox.java b/src/main/java/resonantinduction/archaic/firebox/TileFirebox.java index f9eedcd2..e71ae06d 100644 --- a/src/main/java/resonantinduction/archaic/firebox/TileFirebox.java +++ b/src/main/java/resonantinduction/archaic/firebox/TileFirebox.java @@ -6,6 +6,7 @@ import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.packet.Packet; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityFurnace; @@ -49,7 +50,7 @@ public class TileFirebox extends TileExternalInventory implements IPacketSender, worldObj.setBlock(xCoord, yCoord + 1, zCoord, Block.fire.blockID); } - if (burnTime-- == 0) + if (--burnTime == 0) { if (blockID == Block.fire.blockID) { @@ -120,4 +121,18 @@ public class TileFirebox extends TileExternalInventory implements IPacketSender, e.printStackTrace(); } } + + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + burnTime = nbt.getInteger("burnTime"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("burnTime", burnTime); + } } diff --git a/src/main/java/resonantinduction/archaic/firebox/TileHotPlate.java b/src/main/java/resonantinduction/archaic/firebox/TileHotPlate.java new file mode 100644 index 00000000..ed64472a --- /dev/null +++ b/src/main/java/resonantinduction/archaic/firebox/TileHotPlate.java @@ -0,0 +1,177 @@ +package resonantinduction.archaic.firebox; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.packet.Packet; +import net.minecraft.tileentity.TileEntity; +import resonantinduction.core.ResonantInduction; +import universalelectricity.api.vector.Vector2; +import universalelectricity.api.vector.Vector3; +import calclavia.lib.network.IPacketReceiver; +import calclavia.lib.network.IPacketSender; +import calclavia.lib.network.PacketHandler; +import calclavia.lib.prefab.tile.TileExternalInventory; + +import com.google.common.io.ByteArrayDataInput; + +/** + * For smelting items. + * + * @author Calclavia + * + */ +public class TileHotPlate extends TileExternalInventory implements IPacketSender, IPacketReceiver +{ + /** + * The power of the firebox in terms of thermal energy. The thermal energy can be transfered + * into fluids to increase their internal energy. + */ + private final int POWER = 50000; + public final int[] smeltTime = new int[] { 0, 0, 0, 0 }; + public static final int MAX_SMELT_TIME = 200; + + public TileHotPlate() + { + invSlots = 4; + } + + @Override + public void updateEntity() + { + if (!worldObj.isRemote) + { + TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord, yCoord - 1, zCoord); + + if (tileEntity instanceof TileFirebox) + { + if (((TileFirebox) tileEntity).isBurning()) + { + for (int i = 0; i < invSlots; i++) + { + if (canSmelt(this.getStackInSlot(i))) + { + if (smeltTime[i] <= 0) + { + /** + * Heat up all slots + */ + smeltTime[i] = MAX_SMELT_TIME * this.getStackInSlot(i).stackSize; + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + else if (smeltTime[i] > 0) + { + /** + * Do the smelt action. + */ + if (--smeltTime[i] == 0) + { + ItemStack outputStack = FurnaceRecipes.smelting().getSmeltingResult(getStackInSlot(i)).copy(); + outputStack.stackSize = this.getStackInSlot(i).stackSize; + setInventorySlotContents(i, outputStack); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + } + } + else + { + smeltTime[i] = 0; + } + } + } + } + } + } + + public boolean canSmelt(ItemStack stack) + { + return FurnaceRecipes.smelting().getSmeltingResult(stack) != null; + } + + public boolean isSmelting() + { + for (int i = 0; i < invSlots; i++) + { + if (getSmeltTime(i) > 0) + { + return true; + } + } + + return false; + } + + public int getSmeltTime(int i) + { + return smeltTime[i]; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) + { + return i < invSlots && canSmelt(itemStack); + } + + @Override + public Packet getDescriptionPacket() + { + return ResonantInduction.PACKET_TILE.getPacket(this, this.getPacketData(0).toArray()); + } + + @Override + public void onInventoryChanged() + { + super.onInventoryChanged(); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + /** + * 1 - Description Packet + * 2 - Energy Update + * 3 - Tesla Beam + */ + @Override + public List getPacketData(int type) + { + List list = new ArrayList(); + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + list.add(nbt); + return list; + } + + @Override + public void onReceivePacket(ByteArrayDataInput data, EntityPlayer player, Object... extra) + { + try + { + this.readFromNBT(PacketHandler.readNBTTagCompound(data)); + this.worldObj.markBlockForRenderUpdate(this.xCoord, this.yCoord, this.zCoord); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + for (int i = 0; i < invSlots; i++) + smeltTime[i] = nbt.getInteger("smeltTime" + i); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + for (int i = 0; i < invSlots; i++) + nbt.setInteger("smeltTime" + i, smeltTime[i]); + } + +} diff --git a/src/main/java/resonantinduction/archaic/imprint/RenderImprinter.java b/src/main/java/resonantinduction/archaic/imprint/RenderImprinter.java index 65c1438a..2005a8ab 100644 --- a/src/main/java/resonantinduction/archaic/imprint/RenderImprinter.java +++ b/src/main/java/resonantinduction/archaic/imprint/RenderImprinter.java @@ -17,7 +17,7 @@ public class RenderImprinter extends RenderItemOverlayTile if (tileEntity instanceof TileImprinter) { TileImprinter tile = (TileImprinter) tileEntity; - renderTopCrafting(tileEntity, tile.inventory, x, y, z); + renderTopOverlay(tileEntity, tile.inventory, x, y, z); renderItemOnSides(tileEntity, tile.getStackInSlot(9), x, y, z); } } diff --git a/src/main/java/resonantinduction/core/prefab/block/BlockRI.java b/src/main/java/resonantinduction/core/prefab/block/BlockRI.java index 65816540..716ec6ee 100644 --- a/src/main/java/resonantinduction/core/prefab/block/BlockRI.java +++ b/src/main/java/resonantinduction/core/prefab/block/BlockRI.java @@ -1,6 +1,8 @@ package resonantinduction.core.prefab.block; +import codechicken.multipart.ControlKeyModifer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.common.Configuration; import resonantinduction.core.Reference; import resonantinduction.core.ResonantInductionTabs; @@ -35,4 +37,9 @@ public class BlockRI extends BlockTile this.setHardness(1f); } + @Override + public boolean isControlDown(EntityPlayer player) + { + return ControlKeyModifer.isControlDown(player); + } } diff --git a/src/main/java/resonantinduction/core/render/RenderItemOverlayTile.java b/src/main/java/resonantinduction/core/render/RenderItemOverlayTile.java index 7ee3f748..9f8ef11e 100644 --- a/src/main/java/resonantinduction/core/render/RenderItemOverlayTile.java +++ b/src/main/java/resonantinduction/core/render/RenderItemOverlayTile.java @@ -29,7 +29,12 @@ public abstract class RenderItemOverlayTile extends TileEntitySpecialRenderer { private final RenderBlocks renderBlocks = new RenderBlocks(); - public void renderTopCrafting(TileEntity tileEntity, ItemStack[] inventory, double x, double y, double z) + public void renderTopOverlay(TileEntity tileEntity, ItemStack[] inventory, double x, double y, double z) + { + renderTopOverlay(tileEntity, inventory, 3, 3, x, y, z); + } + + public void renderTopOverlay(TileEntity tileEntity, ItemStack[] inventory, int matrixX, int matrixZ, double x, double y, double z) { /** * Render the Crafting Matrix @@ -43,11 +48,11 @@ public abstract class RenderItemOverlayTile extends TileEntitySpecialRenderer isLooking |= objectPosition.blockX == tileEntity.xCoord && objectPosition.blockY == tileEntity.yCoord && objectPosition.blockZ == tileEntity.zCoord; } - for (int i = 0; i < 9; i++) + for (int i = 0; i < (matrixX * matrixZ); i++) { if (inventory[i] != null) { - Vector3 translation = new Vector3(x + (double) (i / 3) / 3d + (0.5 / 3d), y + 1.1, z + (double) (i % 3) / 3d + (0.5 / 3d)); + Vector3 translation = new Vector3(x + (double) (i / matrixX) / ((double) matrixX) + (0.5 / ((double) matrixX)), y + 1.1, z + (double) (i % matrixZ) / ((double) matrixZ) + (0.5 / ((double) matrixZ))); GL11.glPushMatrix(); GL11.glTranslated(translation.x, translation.y, translation.z); GL11.glScalef(0.7f, 0.7f, 0.7f); diff --git a/src/main/java/resonantinduction/mechanical/fluid/valve/BlockReleaseValve.java b/src/main/java/resonantinduction/mechanical/fluid/valve/BlockReleaseValve.java index 06836d1b..c6e6adc7 100644 --- a/src/main/java/resonantinduction/mechanical/fluid/valve/BlockReleaseValve.java +++ b/src/main/java/resonantinduction/mechanical/fluid/valve/BlockReleaseValve.java @@ -13,7 +13,7 @@ public class BlockReleaseValve extends BlockRI { public BlockReleaseValve() { - super("ReleaseValve"); + super("releaseValve"); this.setHardness(1f); this.setResistance(5f); } diff --git a/src/main/resources/assets/resonantinduction/languages/en_US.properties b/src/main/resources/assets/resonantinduction/languages/en_US.properties index a2eacf77..e798c0ab 100644 --- a/src/main/resources/assets/resonantinduction/languages/en_US.properties +++ b/src/main/resources/assets/resonantinduction/languages/en_US.properties @@ -19,6 +19,7 @@ item.resonantinduction\:imprint.name=Imprint tile.resonantinduction\:imprinter.name=Imprinter tile.resonantinduction\:engineeringTable.name=Engineering Table tile.resonantinduction\:firebox.name=Firebox +tile.resonantinduction\:hotPlate.name=Hot Plate ## Transport tile.resonantinduction\:turntable.name=Turntable diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/metalStoneEdge.png b/src/main/resources/assets/resonantinduction/textures/blocks/material_stone_edge similarity index 100% rename from src/main/resources/assets/resonantinduction/textures/blocks/metalStoneEdge.png rename to src/main/resources/assets/resonantinduction/textures/blocks/material_stone_edge diff --git a/src/main/resources/assets/resonantinduction/textures/blocks/metalWoodEdge.png b/src/main/resources/assets/resonantinduction/textures/blocks/metalWoodEdge.png deleted file mode 100644 index 90149dc3d28b5159cabd7ad9f976f8bd12845749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4599 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