From 879741a17cbe66b04694f51f732ea8a6b47c12e0 Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Mon, 20 Jun 2022 22:33:04 +0200 Subject: [PATCH 01/13] progress bar issues --- .../TileEntityMachineElectricFurnace.java | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 92fe3a0d0..09d12ada8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.machine.MachineElectricFurnace; +import com.hbm.inventory.UpgradeManager; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; @@ -25,7 +27,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple public int dualCookTime; public long power; public static final long maxPower = 100000; - public static final int processingSpeed = 100; + public int processingSpeed = 100; + int consumption = 50; private static final int[] slots_top = new int[] {1}; private static final int[] slots_bottom = new int[] {2, 0}; @@ -34,7 +37,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple private String customName; public TileEntityMachineElectricFurnace() { - slots = new ItemStack[3]; + slots = new ItemStack[4]; } @Override @@ -199,10 +202,6 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple return false; } - public int getDiFurnaceProgressScaled(int i) { - return (dualCookTime * i) / processingSpeed; - } - public long getPowerRemainingScaled(long i) { return (power * i) / maxPower; } @@ -278,14 +277,27 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple if(!worldObj.isRemote) { this.updateConnections(); + + this.consumption = 50; + this.processingSpeed = 100; + + UpgradeManager.eval(slots, 3, 3); + + int speedLevel = UpgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = UpgradeManager.getLevel(UpgradeType.POWER); + + processingSpeed -= speedLevel * 25; + consumption += speedLevel * 50; + processingSpeed += powerLevel * 10; + consumption -= powerLevel * 20; if(hasPower() && canProcess()) { dualCookTime++; - power -= 50; + power -= consumption; - if(this.dualCookTime == TileEntityMachineElectricFurnace.processingSpeed) + if(this.dualCookTime == processingSpeed) { this.dualCookTime = 0; this.processItem(); @@ -326,7 +338,11 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - + + public int getDiFurnaceProgressScaled(int i) { + return (dualCookTime * i) / processingSpeed; + + } @Override public void setPower(long i) { power = i; @@ -343,4 +359,4 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple public long getMaxPower() { return maxPower; } -} +} \ No newline at end of file From c8c9d4af7ec4b87967e03556f85df48f9f271e1b Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:02:52 +0200 Subject: [PATCH 02/13] i want to combust --- .../TileEntityMachineElectricFurnace.java | 44 ++++++++++++++----- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 09d12ada8..22b570f8c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -27,8 +27,9 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple public int dualCookTime; public long power; public static final long maxPower = 100000; - public int processingSpeed = 100; + public int MaxProgress = 100; int consumption = 50; + int progress = 100; private static final int[] slots_top = new int[] {1}; private static final int[] slots_bottom = new int[] {2, 0}; @@ -201,11 +202,15 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple return false; } + + public int getDiFurnaceProgressScaled(int i) { + return (dualCookTime * i) / MaxProgress; + } public long getPowerRemainingScaled(long i) { return (power * i) / maxPower; } - + public boolean hasPower() { return power > 0; } @@ -279,25 +284,35 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple this.updateConnections(); this.consumption = 50; - this.processingSpeed = 100; + this.progress = 100; UpgradeManager.eval(slots, 3, 3); int speedLevel = UpgradeManager.getLevel(UpgradeType.SPEED); int powerLevel = UpgradeManager.getLevel(UpgradeType.POWER); - processingSpeed -= speedLevel * 25; + progress -= speedLevel * 25; consumption += speedLevel * 50; - processingSpeed += powerLevel * 10; + progress += powerLevel * 10; consumption -= powerLevel * 20; + this.MaxProgress = progress; + + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("powerTime", this.power); + data.setInteger("progress", this.progress); + data.setInteger("cookTime", dualCookTime); + this.networkPack(data, 50); + { if(hasPower() && canProcess()) { dualCookTime++; power -= consumption; - if(this.dualCookTime == processingSpeed) + if(this.dualCookTime == MaxProgress) { this.dualCookTime = 0; this.processItem(); @@ -322,8 +337,6 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple power = Library.chargeTEFromItems(slots, 0, power, maxPower); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, dualCookTime, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); } @@ -333,15 +346,22 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple } } + private void networkPack(NBTTagCompound data, int i) { + // TODO Auto-generated method stub + + } + private void updateConnections() { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - - public int getDiFurnaceProgressScaled(int i) { - return (dualCookTime * i) / processingSpeed; - + + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.MaxProgress = nbt.getInteger("MaxProgress"); + this.progress = nbt.getInteger("progress"); + } @Override public void setPower(long i) { From 916f29594446a0a6d7ae6fa43de704fc51f72193 Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:45:23 +0200 Subject: [PATCH 03/13] pain and even agony --- .../TileEntityMachineElectricFurnace.java | 389 ++++++++++++++++++ 1 file changed, 389 insertions(+) create mode 100644 src/main/java/com/hbm/tileentity/TileEntityMachineElectricFurnace.java diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/TileEntityMachineElectricFurnace.java new file mode 100644 index 000000000..1f0aadfb8 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineElectricFurnace.java @@ -0,0 +1,389 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.machine.MachineElectricFurnace; +import com.hbm.inventory.UpgradeManager; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.packet.AuxElectricityPacket; +import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.TileEntityMachineBase; + +import api.hbm.energy.IBatteryItem; +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser { + + private ItemStack slots[]; + + public int dualCookTime; + public long power; + public static final long maxPower = 100000; + public int MaxProgress = 100; + int consumption = 50; + int progress = 100; + + private static final int[] slots_top = new int[] {1}; + private static final int[] slots_bottom = new int[] {2, 0}; + private static final int[] slots_side = new int[] {0}; + + private String customName; + + public TileEntityMachineElectricFurnace(){ + super(4); + slots = new ItemStack[4]; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if(slots[i] != null) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) + { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.electricFurnace"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) + { + return false; + }else{ + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; + } + } + + //You scrubs aren't needed for anything (right now) + @Override + public void openInventory() {} + @Override + public void closeInventory() {} + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + if(i == 0) + if(itemStack.getItem() instanceof IBatteryItem) + return true; + + if(i == 1) + return true; + + return false; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if(slots[i] != null) + { + if(slots[i].stackSize <= j) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) + { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + this.power = nbt.getLong("powerTime"); + this.dualCookTime = nbt.getInteger("cookTime"); + slots = new ItemStack[getSizeInventory()]; + + for(int i = 0; i < list.tagCount(); i++) + { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if(b0 >= 0 && b0 < slots.length) + { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("powerTime", power); + nbt.setInteger("cookTime", dualCookTime); + NBTTagList list = new NBTTagList(); + + for(int i = 0; i < slots.length; i++) + { + if(slots[i] != null) + { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte)i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) + { + return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + if(i == 0) + if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) + return true; + if(i == 2) + return true; + + return false; + } + + public int getDiFurnaceProgressScaled(int i) { + return (dualCookTime * i) / MaxProgress; + } + + public long getPowerRemainingScaled(long i) { + return (power * i) / maxPower; + } + + public boolean hasPower() { + return power > 0; + } + + public boolean isProcessing() { + return this.dualCookTime > 0; + } + + public boolean canProcess() { + if(slots[1] == null) + { + return false; + } + ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); + + if(itemStack == null) + { + return false; + } + + if(slots[2] == null) + { + return true; + } + + if(!slots[2].isItemEqual(itemStack)) { + return false; + } + + if(slots[2].stackSize < getInventoryStackLimit() && slots[2].stackSize < slots[2].getMaxStackSize()) { + return true; + }else{ + return slots[2].stackSize < itemStack.getMaxStackSize(); + } + } + + private void processItem() { + if(canProcess()) { + ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); + + if(slots[2] == null) + { + slots[2] = itemStack.copy(); + }else if(slots[2].isItemEqual(itemStack)) { + slots[2].stackSize += itemStack.stackSize; + } + + for(int i = 1; i < 2; i++) + { + if(slots[i].stackSize <= 0) + { + slots[i] = new ItemStack(slots[i].getItem().setFull3D()); + }else{ + slots[i].stackSize--; + } + if(slots[i].stackSize <= 0) + { + slots[i] = null; + } + } + } + } + + @Override + public void updateEntity() { + this.hasPower(); + boolean flag1 = false; + + if(!worldObj.isRemote) { + + this.updateConnections(); + + this.consumption = 50; + this.progress = 100; + + UpgradeManager.eval(slots, 3, 3); + + int speedLevel = UpgradeManager.getLevel(UpgradeType.SPEED); + int powerLevel = UpgradeManager.getLevel(UpgradeType.POWER); + + progress -= speedLevel * 25; + consumption += speedLevel * 50; + progress += powerLevel * 10; + consumption -= powerLevel * 20; + + this.MaxProgress = progress; + + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("powerTime", this.power); + data.setInteger("progress", this.progress); + data.setInteger("MaxProgress", this.MaxProgress); + this.networkPack(data, 50); + { + if(hasPower() && canProcess()) + { + dualCookTime++; + + power -= consumption; + + if(this.dualCookTime == MaxProgress) + { + this.dualCookTime = 0; + this.processItem(); + flag1 = true; + } + }else{ + dualCookTime = 0; + } + + boolean trigger = true; + + if(hasPower() && canProcess() && this.dualCookTime == 0) + { + trigger = false; + } + + if(trigger) + { + flag1 = true; + MachineElectricFurnace.updateBlockState(this.dualCookTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); + } + + power = Library.chargeTEFromItems(slots, 0, power, maxPower); + + } + + + if(flag1) + { + this.markDirty(); + } + } + + public void networkPack(NBTTagCompound data, int i) { + // TODO Auto-generated method stub + + } + + private void updateConnections() { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) + this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } + + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.MaxProgress = nbt.getInteger("MaxProgress"); + this.progress = nbt.getInteger("progress"); + + } + @Override + public void setPower(long i) { + power = i; + + } + + @Override + public long getPower() { + return power; + + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } +} \ No newline at end of file From 905e2646ab51ee2b4e63b76e9baaf29bd597834a Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Tue, 21 Jun 2022 19:01:35 +0200 Subject: [PATCH 04/13] GUI electric furnace --- .../inventory/gui/GUIMachineElectricFurnace.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java b/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java index 865742034..427d77f6f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java @@ -10,6 +10,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerElectricFurnace; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; +import com.hbm.util.I18nUtil; public class GUIMachineElectricFurnace extends GuiInfoContainer { @@ -29,6 +30,12 @@ public class GUIMachineElectricFurnace extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 20, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.maxPower); + + String[] upgradeText = new String[3]; + upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade"); + upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed"); + upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.power"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 151, guiTop + 19, 8, 8, mouseX, mouseY, upgradeText); } @Override @@ -64,11 +71,13 @@ public class GUIMachineElectricFurnace extends GuiInfoContainer { if(diFurnace.canProcess() && diFurnace.hasPower()) { - drawTexturedModalRect(guiLeft + 56, guiTop + 36, 176, 0, 15, 16); + drawTexturedModalRect(guiLeft + 56, guiTop + 35, 176, 0, 16, 16); } int j1 = fs.getDiFurnaceProgressScaled(24); - drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 14, j1 + 1, 17); + drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 17, j1 + 1, 17); + + this.drawInfoPanel(guiLeft + 151, guiTop + 19, 8, 8, 8); } } From 093da728d24ae7a99a643ee102b12b94c33163ba Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Tue, 21 Jun 2022 20:05:03 +0200 Subject: [PATCH 05/13] i want to combust 2: electric boogaloo --- .../TileEntityMachineElectricFurnace.java | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 22b570f8c..93c4d4b7d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -7,7 +7,7 @@ import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; @@ -20,13 +20,13 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser { +public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser { private ItemStack slots[]; public int dualCookTime; public long power; - public static final long maxPower = 100000; + public static long maxPower = 100000; public int MaxProgress = 100; int consumption = 50; int progress = 100; @@ -37,7 +37,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple private String customName; - public TileEntityMachineElectricFurnace() { + public TileEntityMachineElectricFurnace(){ + super(4); slots = new ItemStack[4]; } @@ -303,7 +304,9 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple NBTTagCompound data = new NBTTagCompound(); data.setLong("powerTime", this.power); data.setInteger("progress", this.progress); - data.setInteger("cookTime", dualCookTime); + data.setInteger("MaxProgress", this.MaxProgress); + data.setInteger("cookTime", this.dualCookTime); + data.setLong("maxPower", this.maxPower); this.networkPack(data, 50); { if(hasPower() && canProcess()) @@ -345,12 +348,6 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple this.markDirty(); } } - - private void networkPack(NBTTagCompound data, int i) { - // TODO Auto-generated method stub - - } - private void updateConnections() { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) @@ -361,6 +358,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple this.power = nbt.getLong("power"); this.MaxProgress = nbt.getInteger("MaxProgress"); this.progress = nbt.getInteger("progress"); + this.dualCookTime = nbt.getInteger("cookTime"); + this.maxPower = nbt.getLong("maxPower"); } @Override @@ -379,4 +378,10 @@ public class TileEntityMachineElectricFurnace extends TileEntityLoadedBase imple public long getMaxPower() { return maxPower; } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } } \ No newline at end of file From 1c05d309b6f0226c0bc7aa3f44e9615566ef2c73 Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Wed, 22 Jun 2022 20:53:57 +0200 Subject: [PATCH 06/13] GUI Texture For Furnace --- .../hbm/textures/gui/GUIElectricFurnace.png | Bin 2621 -> 3724 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/hbm/textures/gui/GUIElectricFurnace.png b/src/main/resources/assets/hbm/textures/gui/GUIElectricFurnace.png index 6df29d59d7e37f9fef2a3c6eefa07e684bba1b68..8fc1e10beb5b9ebc3ab23b9f7a778482229ab3bb 100644 GIT binary patch literal 3724 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 G5q}5F`M7`p literal 2621 zcmeHHX;4#F6h7}IVF@C!SQlIXWh=#?2u2i3h=zb7pa~FAC|f`f11bmz!UGd(!2%7H z;!=sDWhoR*RfwVx9Y9f0TyPB%Q4~c(98?g2^kPT*ufIFf-Z^jXz2}|tecwIjzW2Sa zH^-1_LInUrPmdLA0Wh@0K#zo`jn#Y}n#j>^tK9%(1qLHw6aW(VdhyuE&tNe8{QNd- z*Z}r#f&LD@eh;?8z<33&PhjbDaCi-o4Y27X#GHnt-(knEkZ}Z3D`9&DY?gu79q_pY ztL}n_61dlZcMaBGfWS+@zYM-NVYv!I&%@yiDBliM+u-PCs7`{4R5%d_CpN*ENRY?C zvCYuE47$I8r%T|46Q~!!z&seVfe#j-HHYT)&>8@3T)6H79joB>O1Q^?`|i-mf`=?n zgu-|GA?E<(7eQ_bNDAQRJlLNDrP+`rg>30vFSfQ8v|7`=yu6l{7Ohr`&inuPzXG2t zAk>`akAEnMYrVPXdi<9Ma0hiQQDO8GJOZ}@Ol%l`uoouq^^e z2#XOW(uIOVGe`P-`l6BD5nTY3!=5YLcqt*T_I+3UU=fYoleB$n_nU)pxi{0|A2wCm zsK2LOR+G@#XS3UGJ-BDU6=9N%)ix}x#nV8SIy#!U-aq^ z$-2u;nrz>n)g8KLT6QjE3h6YhVQNM%F`ijd_;j#2#GiPHbk!qW(;M`MjiBqy%OrC8 zj4ZxoTL`i?>V2?PBcOGAzh1OJTEV{8%69%J|PpqY} z&gW0n;r)&XaF3pivZtq~KDfQ~(n_*2F@Bt7gsgnIX0U%Omzil>m16wUSZC>^ULS!W zo~~6Fj6>ttq0GTF@-VmcTV_Y&hj~atq&kAr(kAAQ^f!qYCi0;Ciys-`3L?$Jg6&Gqdxye?9_rf3lm4;LbjRz zUfWRHR3&n{qAOM;kjW_tRXEC8palnplOJOss9isI`Es;0-XytFtm7wfA zl_kONam4SFB>E{=2Z9X3_dLffj2>(^5*dfjx3VzSj2z#AC?~bY)z5lYdG&&;ODp*d z4XG}J>D9@)`sER>2&NB-h@xlZi`_=<-TmFeO7#e}dSMsYTuRj`ERyLWa0^^^DGoa+ z4$IF$I~%lnY3UoE<7|SWua8GZDJ&%V^2TdBcKP|wRh=u=b=l=tMpc|u7H(G*Lcgl%sPen*`T16td58XvTR#~7iFTa-NPW?9o`lbw{n3ep#A5Qn`x4C< z{V&?|`;HbP%>DnM_C{x0u&t+^nGw<-XCU`5mnw&zwdIiUONIxR>Q3qJGAI-j8g{Vl zJ+sTN7*Lr`1{CQ&G49*O!YZN;0q?jk{1#{f9d?t6*eU;_*9+)UJ1yl|jv)8;>#Z&5 Pmkyq6?-ezy(Cj|}lMnJd From 580657c609b17eac3764843c6650cfe63bc9db4b Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Wed, 22 Jun 2022 20:55:51 +0200 Subject: [PATCH 07/13] Block Furnace Textures --- .../blocks/machine_electric_furnace_bottom.png | Bin 0 -> 510 bytes .../machine_electric_furnace_front_off.png | Bin 464 -> 528 bytes .../machine_electric_furnace_front_on.png | Bin 457 -> 588 bytes .../blocks/machine_electric_furnace_side.png | Bin 0 -> 577 bytes .../blocks/machine_electric_furnace_top.png | Bin 0 -> 490 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_top.png diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..b56c4a73c376cc03ff254211adf8bede3ae5993b GIT binary patch literal 510 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%LiR0X`wF+S=+OA|hg9qEb>)ii!$aTI!mb>MAPAN=iz~%F5#6;t~=PGBVPd znwswJ?w+2WK0ZFazP_%mt}-$*Vq#*pwzk&R*0Qp)!otFml9HyTrUC*2{{H^X&dzRb zZVnC(mX?-!dU}eAiYh89+S=N3a&l^FYVVhpzn_t0Y;0_9Zf;>=5fBjI=;)}RprE0l zp{lCt;^M-~%WGm{Vr69&7#J876eKDt>g41kEiEks0)l>ie)msXhy%UAS>O>_%)r2R z2!t6$HM|;tf)_kp978mMRr_z}H5&-HOuxi^?5NxBzNMim&I^oAcrq^6)PMSa|LV3g zr+eIP$;vjoQLV47{;$Cm=%s1DFvu%^*Se3IOocm&+TXfXZpz`=tU1%N#kj+_eqr{S ztq+|HjdZxUMLcU=pO`e)M0C!TcayggUYGu&KKrBX&zt8LF8-U@zazr1!hXwStap~{#iGF#j^H*Kic758JjgRK+5GWV+kG*z8rf2Jv%_--MlAV4ur|!+op5)eJ ssPtZ2Q^{)SHzopr07WjNj{pDw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_front_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_front_off.png index a3146dbe3f2b91d19f9d799ab313d5f4bcdd85cb..529db01dd4cc1c75bd766ab273f7aace9ad36ae7 100644 GIT binary patch delta 479 zcmV<50U-X+1CRueBnkm@Qb$4nuFf3kks%v@zW@LZzX3P}QzQTY0i{VqK~y+TZIVH6 zn?MkS*#(TVz|x}l6vc|vLzG08a;|dr56E9mF1}Q~Bt9gE`~=%zY7Cfs%Sg0U`wpWw zZ{H3xv#90rdsS6Rsc=9L1n|D^y#esDEQw>P9v_$U`J6;+?fd@duIqa6{Dt*;t&hil z<7q(KwwMlw1M$CZK~NM0rZAkmzP^yRZRga$|C11JZ|{m?M|(k4Qlv^wom^C>=6U8l~JJ&Fk;Q9Hde9(#e{hkYwW1UW?#uzHaahxOx(V4WX zOY=Y@&1SRF4FO%(k%~|5Fa}j9p{}ogZ%(J4ZMs(ec?Ye3zXM^nD}447MNyW02}9L& zo-t9|o}!4Ge%JMrNkFtVQ7WMK&1R#mwZ_D6Z|kP%KR({;x`mhJuaS%*HsF>(Cp?_Q zrfGyjcz6-%M?}x-^>(`*deu0PfXoU(kt0co>{F+y<$x)XSPm+M#VQ~ra)iiA#{E1$ zhh1D;CJ9?j7~0yeSr)UCIL=7V&YWnBt*Sl$n7X?9#{Wl+ag`AH;J9CYHaSvCeFDj6 V{J8utrx*YL002ovPDHLkV1mK#=&b+% delta 417 zcmV;S0bc%)1keMJB#|)~f5HF&4#EKyC`y0;000^q1y#3+j4=Jb! z(U`-cmI#WMFW+yT^+pb&!^7cu&t>O%&t9$FzNuDEJ+B-Dmz~aSf45uf_3C&5yk0-| z{R;s#+HlyO&qJ_SM9bytYW0Q(ar}}+t5wnX#zFKCBn`FNSrk2m;RApp4?q+LAG$hMn0d<<#L5W!LlrZqG~d^ zPbFxTV?bSumYG0thmItcZd{5)-!Dc(?lm5D}mx zDKUa(^I97W0y(In{bEv6%~I27TqTlZMXVyN$`~mM(k(GTl#nn@^XS`b+b$N1c!H!v zTk`m1OAIC9I8LclI^G*x8NWqT@zXS(G=0F$7|khjU3pZV7gzoQqqfady2HI500000 LNkvXXu0mjfnYg*X diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_front_on.png b/src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_front_on.png index 15eab50ddd7adc7c2ea8dcfd6a94c5e12c616d09..614e746ff8ac24cbc62f061b5d069face21f8184 100644 GIT binary patch delta 540 zcmV+%0^|M31Iz@FBnkm@Qb$4nuFf3kks%v@zyJUazyWI3i3tDz0pUqRK~y+TZBol> z6hRcN_w-}B!_3$|kTe4lVj=@sOV;xN`3Auc5&Q~45DB>S8r~afr;09@uk$>ol*%4L2=K1!NDuHdO%aEbo}DejFhs%_ar|*%|D2uh*ee9_NeO`qM|4e|Eo3-Ns>S$rMkZUj=ZiLT^0Oqf_QxVDoJ9rCp^!a zPN%EY3JVt(-}E7bU>HLTPESv8++wkSm?6i|h(>Kj*Q$OhgUidcxlk9gEW-wqLppIs zGtUlZ?*7CM_S{FlqeV=gi{=65x^57E1cQ2_TAO!m(+DXYsogYtFb4V=kH_@z@ThG& zxY_se@EsWY^9~4coN)NFXUoMC>8ft7c8;a?WnwAu%)0k^IaVwX<;=G|N#eA)+iaQd z`_FxK{^n{*tB>z)eir1zrzp>hO-ar_Ux9piANeHv`gRQ&`qw6KDR3hfoSYDUt1Wm) zP-*UKLr~0Ht_51wvF&!NnP6Vz1 delta 410 zcmV;L0cHNo1jz%CB#|)~f5HF&4#EKyC`y0;000N&-<7hW87IgW_WZNyjM%&wAnEVkoEx(a^!7 zOa#Tl)A&HWkr#d2f7+D;(eSbOXYaLU{d>(ejmA}>a2y2rO69!Sf4pwBitToZDA1+S zX}NqR$T4Bqm`;Z{a^J4KrgvsP7NxkkHzHzYn2ezPCJc*)*;qVU7*aL*q(C^>$ zdLj7!k?pWtzTyOLU=okk)qw+lTSCMsiRV`VXLo+sOQlljbUKsCc%GNdW^=h5i*hv> z+{Ttxt2Znm)Lnuof3&C$_RyV9Sug+La7yFxqZp0u0f7zBh)A%O=&)W-Hk)@q$bhrt z%!pd;(sa8Oy||>EF(1Y#x?<&2s~6UiM#Lz{u&LWPss`91A)XQ)1r;P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T-% z{?9-6=NytQ^&qe3yyrRRJaf*gvf0zYV4##*3t^fj_F}QnLSXlLJDe zb;B@L?D2RUa{fcHSkxzz$vnh#I)yYEjX1w$3k=UoCK3tK-ammRvkxGc{NZp&t$Mv~ zT9#$oHXRU?%e|nAWOy`0BsT2xb6?6s*7>6b+0=khDwWFRa;;WtHk*w`gHXHO7Pdg| z_xs!m@DanTe%)Q?ex8vZiA3lb1VOjkbIxcZGcZw@!?{XrLH|faQE;gV}7Zc6Rnqk0Y(c08BX)w!B;=E2aJciWOC4;X6uA P00000NkvXXu0mjfUIhhT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_electric_furnace_top.png new file mode 100644 index 0000000000000000000000000000000000000000..693fbb48bbb8934975253c5bbdfc587d910bb7bc GIT binary patch literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lf&0X`wFZf;gKHU_q~hE7gq?(Wv!-u6B|4h{|`j*g~5L2d;FDMdwTrKOo= zWm$Q7Nv^Jz_V&hUX;CRD5pi)rmX^8|6**(mHprD|kpU7fF~sp;ZkQC^%*3q~8Q>ThAi`+*@$daN41WtJn`EkeF6BDFv(KnCbJigz z7ryM<{|aM{FYLDwxc^q0|Br*-l}Y@EIgT8Q%`Y#Ur1J8fa+9QB`=5$4{?C&P1HArE zc)96PrdaGc;h^1*%C7h3$w{7Zk6xsA(tEAb|gN!P@%WKc;GZ z4PaH5TDbXb*?sXyLtY`X@{>Pnoa`DstdlrFb belWi|A#zG;@6Jg;Z!vhf`njxgN@xNA#Tl-z literal 0 HcmV?d00001 From 8138382c15dc533b3710e61b7738619ee5cbd443 Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Wed, 22 Jun 2022 20:57:27 +0200 Subject: [PATCH 08/13] Tile entity Furnace file --- .../TileEntityMachineElectricFurnace.java | 54 +++++++++---------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 93c4d4b7d..0797dd496 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -22,14 +22,15 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser { +// HOLY FUCKING SHIT I SPENT 5 DAYS ON THIS SHITFUCK CLASS FILE +// thanks Martin, vaer and Bob for the help private ItemStack slots[]; - public int dualCookTime; + public int progress; public long power; - public static long maxPower = 100000; + public static final long maxPower = 100000; public int MaxProgress = 100; - int consumption = 50; - int progress = 100; + public int consumption = 50; private static final int[] slots_top = new int[] {1}; private static final int[] slots_bottom = new int[] {2, 0}; @@ -147,8 +148,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - this.power = nbt.getLong("powerTime"); - this.dualCookTime = nbt.getInteger("cookTime"); + this.power = nbt.getLong("power"); + this.progress = nbt.getInteger("progress"); slots = new ItemStack[getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) @@ -165,8 +166,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - nbt.setInteger("cookTime", dualCookTime); + nbt.setLong("power", power); + nbt.setInteger("progress", progress); NBTTagList list = new NBTTagList(); for(int i = 0; i < slots.length; i++) @@ -205,7 +206,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } public int getDiFurnaceProgressScaled(int i) { - return (dualCookTime * i) / MaxProgress; + return (progress * i) / MaxProgress; } public long getPowerRemainingScaled(long i) { @@ -217,7 +218,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } public boolean isProcessing() { - return this.dualCookTime > 0; + return this.progress > 0; } public boolean canProcess() { @@ -285,49 +286,44 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl this.updateConnections(); this.consumption = 50; - this.progress = 100; + this.MaxProgress = 100; UpgradeManager.eval(slots, 3, 3); int speedLevel = UpgradeManager.getLevel(UpgradeType.SPEED); int powerLevel = UpgradeManager.getLevel(UpgradeType.POWER); - progress -= speedLevel * 25; + MaxProgress -= speedLevel * 25; consumption += speedLevel * 50; - progress += powerLevel * 10; - consumption -= powerLevel * 20; + MaxProgress += powerLevel * 10; + consumption -= powerLevel * 15; - this.MaxProgress = progress; - - } NBTTagCompound data = new NBTTagCompound(); - data.setLong("powerTime", this.power); - data.setInteger("progress", this.progress); + data.setLong("power", this.power); data.setInteger("MaxProgress", this.MaxProgress); - data.setInteger("cookTime", this.dualCookTime); - data.setLong("maxPower", this.maxPower); + data.setInteger("progress", this.progress); this.networkPack(data, 50); - { + if(hasPower() && canProcess()) { - dualCookTime++; + progress++; power -= consumption; - if(this.dualCookTime == MaxProgress) + if(this.progress == MaxProgress) { - this.dualCookTime = 0; + this.progress = 0; this.processItem(); flag1 = true; } }else{ - dualCookTime = 0; + progress = 0; } boolean trigger = true; - if(hasPower() && canProcess() && this.dualCookTime == 0) + if(hasPower() && canProcess() && this.progress == 0) { trigger = false; } @@ -335,7 +331,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl if(trigger) { flag1 = true; - MachineElectricFurnace.updateBlockState(this.dualCookTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); + MachineElectricFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } power = Library.chargeTEFromItems(slots, 0, power, maxPower); @@ -358,8 +354,6 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl this.power = nbt.getLong("power"); this.MaxProgress = nbt.getInteger("MaxProgress"); this.progress = nbt.getInteger("progress"); - this.dualCookTime = nbt.getInteger("cookTime"); - this.maxPower = nbt.getLong("maxPower"); } @Override From f4b0ba5bc2948e8d081600ea2b110b1b7905b031 Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Wed, 22 Jun 2022 20:58:58 +0200 Subject: [PATCH 09/13] added item tooltip for furnace --- src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index ca54f93d1..bfd315f46 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -37,6 +37,8 @@ public class ItemMachineUpgrade extends Item { list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); list.add(EnumChatFormatting.RED + "Laser Miner:"); list.add("Delay รท" + (1 + this.tier) + " / Consumption +" + (625 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Electric Furnace:"); + list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (50 * this.tier) + "HE/t"); list.add(EnumChatFormatting.RED + "Assembly Machine:"); list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); list.add(EnumChatFormatting.RED + "Chemical Plant:"); @@ -69,6 +71,8 @@ public class ItemMachineUpgrade extends Item { if(this.type == UpgradeType.POWER) { list.add(EnumChatFormatting.RED + "Mining Drill:"); list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); + list.add(EnumChatFormatting.RED + "Electric Furnace:"); + list.add("Consumption -" + (15 * this.tier) + "HE/t / Delay +" + (10 * this.tier) + "%"); list.add(EnumChatFormatting.RED + "Assembly Machine:"); list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); list.add(EnumChatFormatting.RED + "Chemical Plant:"); From 954839a2d145e2490e04f7e2881d16c4cbc7bed8 Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Wed, 22 Jun 2022 21:09:27 +0200 Subject: [PATCH 10/13] accidental file --- .../TileEntityMachineElectricFurnace.java | 389 ------------------ 1 file changed, 389 deletions(-) delete mode 100644 src/main/java/com/hbm/tileentity/TileEntityMachineElectricFurnace.java diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/TileEntityMachineElectricFurnace.java deleted file mode 100644 index 1f0aadfb8..000000000 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineElectricFurnace.java +++ /dev/null @@ -1,389 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.blocks.machine.MachineElectricFurnace; -import com.hbm.inventory.UpgradeManager; -import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser { - - private ItemStack slots[]; - - public int dualCookTime; - public long power; - public static final long maxPower = 100000; - public int MaxProgress = 100; - int consumption = 50; - int progress = 100; - - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {2, 0}; - private static final int[] slots_side = new int[] {0}; - - private String customName; - - public TileEntityMachineElectricFurnace(){ - super(4); - slots = new ItemStack[4]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.electricFurnace"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - this.power = nbt.getLong("powerTime"); - this.dualCookTime = nbt.getInteger("cookTime"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - nbt.setInteger("cookTime", dualCookTime); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 0) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) - return true; - if(i == 2) - return true; - - return false; - } - - public int getDiFurnaceProgressScaled(int i) { - return (dualCookTime * i) / MaxProgress; - } - - public long getPowerRemainingScaled(long i) { - return (power * i) / maxPower; - } - - public boolean hasPower() { - return power > 0; - } - - public boolean isProcessing() { - return this.dualCookTime > 0; - } - - public boolean canProcess() { - if(slots[1] == null) - { - return false; - } - ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); - - if(itemStack == null) - { - return false; - } - - if(slots[2] == null) - { - return true; - } - - if(!slots[2].isItemEqual(itemStack)) { - return false; - } - - if(slots[2].stackSize < getInventoryStackLimit() && slots[2].stackSize < slots[2].getMaxStackSize()) { - return true; - }else{ - return slots[2].stackSize < itemStack.getMaxStackSize(); - } - } - - private void processItem() { - if(canProcess()) { - ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); - - if(slots[2] == null) - { - slots[2] = itemStack.copy(); - }else if(slots[2].isItemEqual(itemStack)) { - slots[2].stackSize += itemStack.stackSize; - } - - for(int i = 1; i < 2; i++) - { - if(slots[i].stackSize <= 0) - { - slots[i] = new ItemStack(slots[i].getItem().setFull3D()); - }else{ - slots[i].stackSize--; - } - if(slots[i].stackSize <= 0) - { - slots[i] = null; - } - } - } - } - - @Override - public void updateEntity() { - this.hasPower(); - boolean flag1 = false; - - if(!worldObj.isRemote) { - - this.updateConnections(); - - this.consumption = 50; - this.progress = 100; - - UpgradeManager.eval(slots, 3, 3); - - int speedLevel = UpgradeManager.getLevel(UpgradeType.SPEED); - int powerLevel = UpgradeManager.getLevel(UpgradeType.POWER); - - progress -= speedLevel * 25; - consumption += speedLevel * 50; - progress += powerLevel * 10; - consumption -= powerLevel * 20; - - this.MaxProgress = progress; - - } - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("powerTime", this.power); - data.setInteger("progress", this.progress); - data.setInteger("MaxProgress", this.MaxProgress); - this.networkPack(data, 50); - { - if(hasPower() && canProcess()) - { - dualCookTime++; - - power -= consumption; - - if(this.dualCookTime == MaxProgress) - { - this.dualCookTime = 0; - this.processItem(); - flag1 = true; - } - }else{ - dualCookTime = 0; - } - - boolean trigger = true; - - if(hasPower() && canProcess() && this.dualCookTime == 0) - { - trigger = false; - } - - if(trigger) - { - flag1 = true; - MachineElectricFurnace.updateBlockState(this.dualCookTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - } - - - if(flag1) - { - this.markDirty(); - } - } - - public void networkPack(NBTTagCompound data, int i) { - // TODO Auto-generated method stub - - } - - private void updateConnections() { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - } - - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.MaxProgress = nbt.getInteger("MaxProgress"); - this.progress = nbt.getInteger("progress"); - - } - @Override - public void setPower(long i) { - power = i; - - } - - @Override - public long getPower() { - return power; - - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return null; - } -} \ No newline at end of file From 28f8b0be65589a17e691aaf1a5c222650de777db Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Wed, 22 Jun 2022 21:11:05 +0200 Subject: [PATCH 11/13] block furnace file --- .../hbm/blocks/machine/MachineElectricFurnace.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineElectricFurnace.java b/src/main/java/com/hbm/blocks/machine/MachineElectricFurnace.java index ab4c32809..a99f30c3c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineElectricFurnace.java +++ b/src/main/java/com/hbm/blocks/machine/MachineElectricFurnace.java @@ -34,6 +34,8 @@ public class MachineElectricFurnace extends BlockContainer { @SideOnly(Side.CLIENT) private IIcon iconFront; + private IIcon iconTop; + private IIcon iconBottom; public MachineElectricFurnace(boolean blockState) { super(Material.iron); @@ -45,7 +47,9 @@ public class MachineElectricFurnace extends BlockContainer { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_electric_furnace_front_on" : ":machine_electric_furnace_front_off")); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_electric_furnace"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_electric_furnace_side"); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_electric_furnace_top"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_electric_furnace_bottom"); } @Override @@ -53,7 +57,7 @@ public class MachineElectricFurnace extends BlockContainer { public IIcon getIcon(int side, int metadata) { //Reactivate in case of emergency //return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.iconTop); - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : side == 0 ? this.iconBottom : side == 1 ? this.iconTop : this.blockIcon); } @Override @@ -262,6 +266,5 @@ public class MachineElectricFurnace extends BlockContainer { @SideOnly(Side.CLIENT) public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) { - return Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off); - } -} + return Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off);} + } \ No newline at end of file From d7d7af3f6baf719c345a6b1044f2e527ab973114 Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Wed, 22 Jun 2022 21:12:25 +0200 Subject: [PATCH 12/13] change of dualCookTime to progress --- src/main/java/com/hbm/packet/AuxGaugePacket.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index a1351a5b6..14bc58299 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -170,7 +170,7 @@ public class AuxGaugePacket implements IMessage { TileEntityMachineElectricFurnace furn = (TileEntityMachineElectricFurnace)te; if(m.id == 0) - furn.dualCookTime = m.value; + furn.progress = m.value; } if (te instanceof TileEntityMachineArcFurnace) { TileEntityMachineArcFurnace furn = (TileEntityMachineArcFurnace)te; From 5921a64c95c517df99bd3254de99e1686a52c5f5 Mon Sep 17 00:00:00 2001 From: Adam <92393622+Adam29Adam29@users.noreply.github.com> Date: Wed, 22 Jun 2022 21:14:47 +0200 Subject: [PATCH 13/13] furnace container file --- .../com/hbm/inventory/container/ContainerElectricFurnace.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java index 3bcca41e5..14e375c65 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectricFurnace.java @@ -1,6 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotSmelting; +import com.hbm.inventory.SlotUpgrade; import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; import net.minecraft.entity.player.EntityPlayer; @@ -21,6 +22,8 @@ public class ContainerElectricFurnace extends Container { this.addSlotToContainer(new Slot(tedf, 0, 56, 53)); this.addSlotToContainer(new Slot(tedf, 1, 56, 17)); this.addSlotToContainer(new SlotSmelting(invPlayer.player, tedf, 2, 116, 35)); + //Upgrades + this.addSlotToContainer(new SlotUpgrade(tedf, 3, 147, 34)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) {