From 4c1d011544e1c80a3d9b944bb07d76c038256dd4 Mon Sep 17 00:00:00 2001 From: Dimmerworld Date: Wed, 4 Oct 2017 15:37:09 +1100 Subject: [PATCH 1/2] Made Scrapboxinator functional to a extent Fix progressbar flicker(Major one) Opens the scrapbox now and has a vaild output --- .../techreborn/tiles/TileScrapboxinator.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/techreborn/tiles/TileScrapboxinator.java b/src/main/java/techreborn/tiles/TileScrapboxinator.java index fe0635e8c..0ad42fa31 100644 --- a/src/main/java/techreborn/tiles/TileScrapboxinator.java +++ b/src/main/java/techreborn/tiles/TileScrapboxinator.java @@ -75,8 +75,11 @@ public class TileScrapboxinator extends TilePowerAcceptor return this.progress * scale / runTime; } + + //todo Fix external interactions (Hopper etc) - Balance power - Fix progress bar flicker + @Override - public void updateEntity() { + public void update() { final boolean burning = this.isBurning(); boolean updateInventory = false; if (this.getEnergy() <= cost && this.canOpen()) { @@ -84,7 +87,7 @@ public class TileScrapboxinator extends TilePowerAcceptor updateInventory = true; } } - if (this.isBurning() && this.canOpen()) { + if (this.isBurning() && this.canOpen() && !this.isEmpty()) { this.updateState(); this.progress++; @@ -94,9 +97,12 @@ public class TileScrapboxinator extends TilePowerAcceptor updateInventory = true; } } else { - this.progress = 0; + if(this.isEmpty()) { + progress = 0; + } this.updateState(); } + if (burning != this.isBurning()) { updateInventory = true; } @@ -107,9 +113,9 @@ public class TileScrapboxinator extends TilePowerAcceptor public void recycleItems() { if (this.canOpen() && !this.world.isRemote) { - final int random = new Random().nextInt(ScrapboxList.stacks.size()); - final ItemStack out = ScrapboxList.stacks.get(random).copy(); - if (this.getStackInSlot(this.output) == null) { + int random = world.rand.nextInt(ScrapboxList.stacks.size()); + ItemStack out = ScrapboxList.stacks.get(random).copy(); + if (this.getStackInSlot(this.output).isEmpty()) { this.useEnergy(cost); this.setInventorySlotContents(this.output, out); } From 28010d0790f701848d1132a4e3499d1b45a7d00b Mon Sep 17 00:00:00 2001 From: Dimmerworld Date: Wed, 4 Oct 2017 21:02:51 +1100 Subject: [PATCH 2/2] Make scrapboxinator great again! Fix input/output Greatly reduced process time Removed any sign of upgrades Remove WIP tag Add crafting recipe Cleaned up unused imports Recipe: (ironplate|circuit|ironplate) (dirt|scrapbox|dirt) (ironplate|circuit|ironplate) --- .../blocks/machine/BlockScrapboxinator.java | 11 ------ .../init/recipes/CraftingTableRecipes.java | 1 + .../techreborn/tiles/TileScrapboxinator.java | 37 ++++++++---------- .../textures/gui/scrapboxinator.png | Bin 1841 -> 15885 bytes 4 files changed, 17 insertions(+), 32 deletions(-) diff --git a/src/main/java/techreborn/blocks/machine/BlockScrapboxinator.java b/src/main/java/techreborn/blocks/machine/BlockScrapboxinator.java index 2ef83353a..9d46142fe 100644 --- a/src/main/java/techreborn/blocks/machine/BlockScrapboxinator.java +++ b/src/main/java/techreborn/blocks/machine/BlockScrapboxinator.java @@ -24,10 +24,7 @@ package techreborn.blocks.machine; -import net.minecraft.client.util.ITooltipFlag; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; import prospector.shootingstar.ShootingStar; import prospector.shootingstar.model.ModelCompound; @@ -38,8 +35,6 @@ import techreborn.client.TechRebornCreativeTab; import techreborn.lib.ModInfo; import techreborn.tiles.TileScrapboxinator; -import java.util.List; - public class BlockScrapboxinator extends BlockMachineBase { public BlockScrapboxinator() { @@ -58,10 +53,4 @@ public class BlockScrapboxinator extends BlockMachineBase { return EGui.SCRAPBOXINATOR; } - @Override - public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag flag) { - tooltip.add(TextFormatting.RED + "WIP Coming Soon"); - // TODO Finish Scrapboxinator and add recipe - // Remember to remove WIP override and imports once complete - } } diff --git a/src/main/java/techreborn/init/recipes/CraftingTableRecipes.java b/src/main/java/techreborn/init/recipes/CraftingTableRecipes.java index 1d51c07af..da670e2d7 100644 --- a/src/main/java/techreborn/init/recipes/CraftingTableRecipes.java +++ b/src/main/java/techreborn/init/recipes/CraftingTableRecipes.java @@ -140,6 +140,7 @@ public class CraftingTableRecipes extends RecipeMethods { registerShaped(getStack(ModBlocks.ADJUSTABLE_SU), "LLL", "LCL", "LLL", 'L', getStack(ModItems.LAPOTRONIC_ORB), 'C', "energyCrystal"); registerShaped(getStack(ModBlocks.LAPOTRONIC_SU), " L ", "CBC", " M ", 'L', getStack(IC2Duplicates.LVT), 'C', "circuitAdvanced", 'M', getStack(IC2Duplicates.MVT), 'B', getStack(ModBlocks.LSU_STORAGE)); registerShaped(getStack(ModBlocks.LSU_STORAGE), "LLL", "LCL", "LLL", 'L', "blockLapis", 'C', "circuitBasic"); + registerShaped(getStack(ModBlocks.SCRAPBOXINATOR), "ICI", "DSD", "ICI", 'S', getStack(ModItems.SCRAP_BOX), 'C', "circuitBasic", 'I', "plateIron", 'D', getStack(Blocks.DIRT)); registerShaped(getStack(ModBlocks.FUSION_CONTROL_COMPUTER), "CCC", "PTP", "CCC", 'P', "energyCrystal", 'T', getStack(ModBlocks.FUSION_COIL), 'C', "circuitMaster"); registerShaped(getStack(ModBlocks.FUSION_COIL), "CSC", "NAN", "CRC", 'A', getStack(ModBlocks.MACHINE_CASINGS, 1, 2), 'N', getMaterial("nichromeHeatingCoil", Type.PART), 'C', "circuitMaster", 'S', getMaterial("superConductor", Type.PART), 'R', getMaterial("iridiumNeutronReflector", Type.PART)); registerShaped(getStack(ModBlocks.DIGITAL_CHEST), "PPP", "PDP", "PCP", 'P', "plateAluminum", 'D', getMaterial("data_orb", Type.PART), 'C', getMaterial("computer_monitor", Type.PART)); diff --git a/src/main/java/techreborn/tiles/TileScrapboxinator.java b/src/main/java/techreborn/tiles/TileScrapboxinator.java index 0ad42fa31..592efec52 100644 --- a/src/main/java/techreborn/tiles/TileScrapboxinator.java +++ b/src/main/java/techreborn/tiles/TileScrapboxinator.java @@ -44,8 +44,6 @@ import techreborn.init.ModBlocks; import techreborn.init.ModItems; import techreborn.lib.ModInfo; -import java.util.Random; - @RebornRegistry(modID = ModInfo.MOD_ID) public class TileScrapboxinator extends TilePowerAcceptor implements IToolDrop, IInventoryProvider, ISidedInventory, IContainerProvider { @@ -57,7 +55,7 @@ public class TileScrapboxinator extends TilePowerAcceptor @ConfigRegistry(config = "machines", category = "scrapboxinator", key = "ScrapboxinatorEnergyCost", comment = "Scrapboxinator Energy Cost (Value in EU)") public static int cost = 20; @ConfigRegistry(config = "machines", category = "scrapboxinator", key = "ScrapboxinatorRunTime", comment = "Scrapboxinator Run Time") - public static int runTime = 200; + public static int runTime = 10; // @ConfigRegistry(config = "machines", category = "scrapboxinator", key = "ScrapboxinatorWrenchDropRate", comment = "Scrapboxinator Wrench Drop Rate") public static float wrenchDropRate = 1.0F; @@ -75,9 +73,6 @@ public class TileScrapboxinator extends TilePowerAcceptor return this.progress * scale / runTime; } - - //todo Fix external interactions (Hopper etc) - Balance power - Fix progress bar flicker - @Override public void update() { final boolean burning = this.isBurning(); @@ -157,28 +152,24 @@ public class TileScrapboxinator extends TilePowerAcceptor } // ISidedInventory + @Override - public int[] getSlotsForFace(final EnumFacing side) { - return side == EnumFacing.DOWN ? new int[] { 0, 1, 2 } : new int[] { 0, 1, 2 }; + public int[] getSlotsForFace(EnumFacing side) { + return new int[] { 0, 1}; } @Override - public boolean canInsertItem(final int slotIndex, final ItemStack itemStack, final EnumFacing side) { - if (slotIndex == 2) - return false; - if (slotIndex == 1) { - if (itemStack.getItem() == ModItems.SCRAP_BOX) { - return true; - } + public boolean canInsertItem(int index, ItemStack itemStackIn, EnumFacing direction){ + if (index == 0) { + return true; } - return this.isItemValidForSlot(slotIndex, itemStack); + return false; } @Override - public boolean canExtractItem(final int slotIndex, final ItemStack itemStack, final EnumFacing side) { - return slotIndex == 2; + public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction){ + return index == 1; } - @Override public double getBaseMaxPower() { return maxEnergy; @@ -209,6 +200,11 @@ public class TileScrapboxinator extends TilePowerAcceptor return this.inventory; } + @Override + public boolean canBeUpgraded() { + return false; + } + public int getProgress() { return this.progress; } @@ -221,8 +217,7 @@ public class TileScrapboxinator extends TilePowerAcceptor public BuiltContainer createContainer(final EntityPlayer player) { return new ContainerBuilder("scrapboxinator").player(player.inventory).inventory(8, 84).hotbar(8, 142) .addInventory().tile(this).filterSlot(0, 56, 34, stack -> stack.getItem() == ModItems.SCRAP_BOX) - .outputSlot(1, 116, 35).upgradeSlot(2, 152, 8).upgradeSlot(3, 152, 26).upgradeSlot(4, 152, 44) - .upgradeSlot(5, 152, 62).syncEnergyValue().syncIntegerValue(this::getProgress, this::setProgress) + .outputSlot(1, 116, 35).syncEnergyValue().syncIntegerValue(this::getProgress, this::setProgress) .addInventory().create(this); } } diff --git a/src/main/resources/assets/techreborn/textures/gui/scrapboxinator.png b/src/main/resources/assets/techreborn/textures/gui/scrapboxinator.png index 0c5b3d2fa63326a71fa708c0271f34adb3a98ab2..ed3ffa31014037e31d58c35f1d39dd7727ef502f 100644 GIT binary patch literal 15885 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