From 16ecd8e076721b4d24d468520557498d87edcb90 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 13 Jun 2019 06:52:25 +1200 Subject: [PATCH 01/11] Switched machines over to new tier system and added JSON and textures --- .../java/vivatech/block/CrusherBlock.java | 17 +++++++++++++---- src/main/java/vivatech/block/PressBlock.java | 17 +++++++++++++---- .../entity/AbstractTieredMachineEntity.java | 18 ++++++++++++++++-- .../java/vivatech/entity/CrusherEntity.java | 18 +++++++++++++----- .../entity/ElectricFurnaceEntity.java | 4 +--- .../java/vivatech/entity/PressEntity.java | 16 +++++++++++----- .../java/vivatech/init/VivatechBlocks.java | 17 ++++++++--------- .../java/vivatech/init/VivatechEntities.java | 4 ++-- .../java/vivatech/init/VivatechItems.java | 14 ++++++-------- src/main/java/vivatech/util/MachineTier.java | 2 +- .../blockstates/advanced_crusher.json | 12 ++++++++++++ .../advanced_electric_furnace.json | 12 ++++++++++++ .../vivatech/blockstates/advanced_press.json | 12 ++++++++++++ .../assets/vivatech/blockstates/crusher.json | 12 ------------ .../blockstates/electric_furnace.json | 12 ------------ .../vivatech/blockstates/machine_chassis.json | 2 +- .../vivatech/blockstates/minimal_crusher.json | 12 ++++++++++++ .../blockstates/minimal_electric_furnace.json | 12 ++++++++++++ .../vivatech/blockstates/minimal_press.json | 12 ++++++++++++ .../vivatech/blockstates/normal_crusher.json | 12 ++++++++++++ .../blockstates/normal_electric_furnace.json | 12 ++++++++++++ .../vivatech/blockstates/normal_press.json | 12 ++++++++++++ .../assets/vivatech/blockstates/press.json | 12 ------------ .../resources/assets/vivatech/lang/en_us.json | 10 ++++++++++ .../models/block/advanced_crusher.json | 6 ++++++ .../models/block/advanced_crusher_active.json | 6 ++++++ .../block/advanced_electric_furnace.json | 6 ++++++ .../advanced_electric_furnace_active.json | 6 ++++++ .../block/advanced_machine_chassis.json | 9 +++++++++ .../vivatech/models/block/advanced_press.json | 6 ++++++ .../models/block/advanced_press_active.json | 6 ++++++ .../vivatech/models/block/coal_generator.json | 2 +- .../assets/vivatech/models/block/crusher.json | 6 ------ .../vivatech/models/block/crusher_active.json | 6 ------ .../models/block/electric_furnace.json | 6 ------ .../models/block/electric_furnace_active.json | 6 ------ .../vivatech/models/block/energy_bank.json | 2 +- .../models/block/machine_chassis.json | 9 --------- .../models/block/minimal_crusher.json | 6 ++++++ .../models/block/minimal_crusher_active.json | 6 ++++++ .../block/minimal_electric_furnace.json | 6 ++++++ .../minimal_electric_furnace_active.json | 6 ++++++ .../models/block/minimal_machine_chassis.json | 9 +++++++++ .../vivatech/models/block/minimal_press.json | 6 ++++++ .../models/block/minimal_press_active.json | 6 ++++++ .../vivatech/models/block/normal_crusher.json | 6 ++++++ .../models/block/normal_crusher_active.json | 6 ++++++ .../models/block/normal_electric_furnace.json | 6 ++++++ .../block/normal_electric_furnace_active.json | 6 ++++++ .../models/block/normal_machine_chassis.json | 9 +++++++++ .../vivatech/models/block/normal_press.json | 6 ++++++ .../models/block/normal_press_active.json | 6 ++++++ .../assets/vivatech/models/block/press.json | 6 ------ .../vivatech/models/block/press_active.json | 6 ------ .../models/item/advanced_crusher.json | 3 +++ .../item/advanced_electric_furnace.json | 3 +++ .../vivatech/models/item/advanced_press.json | 3 +++ .../assets/vivatech/models/item/crusher.json | 3 --- .../models/item/electric_furnace.json | 3 --- .../vivatech/models/item/machine_chassis.json | 2 +- .../vivatech/models/item/minimal_crusher.json | 3 +++ .../models/item/minimal_electric_furnace.json | 3 +++ .../vivatech/models/item/minimal_press.json | 3 +++ .../vivatech/models/item/normal_crusher.json | 3 +++ .../models/item/normal_electric_furnace.json | 3 +++ .../vivatech/models/item/normal_press.json | 3 +++ .../assets/vivatech/models/item/press.json | 3 --- .../block/advanced_crusher_active_front.png | Bin 0 -> 2126 bytes .../textures/block/advanced_crusher_front.png | Bin 0 -> 1994 bytes ...advanced_electric_furnace_active_front.png | Bin 0 -> 2524 bytes .../block/advanced_electric_furnace_front.png | Bin 0 -> 2079 bytes .../block/advanced_machine_bottom.png | Bin 0 -> 1726 bytes .../textures/block/advanced_machine_side.png | Bin 0 -> 1681 bytes .../textures/block/advanced_machine_top.png | Bin 0 -> 1696 bytes .../block/advanced_press_active_front.png | Bin 0 -> 2216 bytes .../textures/block/advanced_press_front.png | Bin 0 -> 1948 bytes .../block/minimal_crusher_active_front.png | Bin 0 -> 2194 bytes .../textures/block/minimal_crusher_front.png | Bin 0 -> 2137 bytes .../minimal_electric_furnace_active_front.png | Bin 0 -> 2557 bytes .../block/minimal_electric_furnace_front.png | Bin 0 -> 2208 bytes .../textures/block/minimal_machine_bottom.png | Bin 0 -> 1847 bytes .../textures/block/minimal_machine_side.png | Bin 0 -> 1775 bytes .../textures/block/minimal_machine_top.png | Bin 0 -> 1727 bytes .../block/minimal_press_active_front.png | Bin 0 -> 2313 bytes .../textures/block/minimal_press_front.png | Bin 0 -> 2054 bytes ...nt.png => normal_crusher_active_front.png} | Bin ...her_front.png => normal_crusher_front.png} | Bin ... normal_electric_furnace_active_front.png} | Bin ....png => normal_electric_furnace_front.png} | Bin ...e_bottom.png => normal_machine_bottom.png} | Bin ...chine_side.png => normal_machine_side.png} | Bin ...machine_top.png => normal_machine_top.png} | Bin ...ront.png => normal_press_active_front.png} | Bin ...press_front.png => normal_press_front.png} | Bin 94 files changed, 368 insertions(+), 137 deletions(-) create mode 100644 src/main/resources/assets/vivatech/blockstates/advanced_crusher.json create mode 100644 src/main/resources/assets/vivatech/blockstates/advanced_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/blockstates/advanced_press.json delete mode 100644 src/main/resources/assets/vivatech/blockstates/crusher.json delete mode 100644 src/main/resources/assets/vivatech/blockstates/electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/blockstates/minimal_crusher.json create mode 100644 src/main/resources/assets/vivatech/blockstates/minimal_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/blockstates/minimal_press.json create mode 100644 src/main/resources/assets/vivatech/blockstates/normal_crusher.json create mode 100644 src/main/resources/assets/vivatech/blockstates/normal_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/blockstates/normal_press.json delete mode 100644 src/main/resources/assets/vivatech/blockstates/press.json create mode 100644 src/main/resources/assets/vivatech/models/block/advanced_crusher.json create mode 100644 src/main/resources/assets/vivatech/models/block/advanced_crusher_active.json create mode 100644 src/main/resources/assets/vivatech/models/block/advanced_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/models/block/advanced_electric_furnace_active.json create mode 100644 src/main/resources/assets/vivatech/models/block/advanced_machine_chassis.json create mode 100644 src/main/resources/assets/vivatech/models/block/advanced_press.json create mode 100644 src/main/resources/assets/vivatech/models/block/advanced_press_active.json delete mode 100644 src/main/resources/assets/vivatech/models/block/crusher.json delete mode 100644 src/main/resources/assets/vivatech/models/block/crusher_active.json delete mode 100644 src/main/resources/assets/vivatech/models/block/electric_furnace.json delete mode 100644 src/main/resources/assets/vivatech/models/block/electric_furnace_active.json delete mode 100644 src/main/resources/assets/vivatech/models/block/machine_chassis.json create mode 100644 src/main/resources/assets/vivatech/models/block/minimal_crusher.json create mode 100644 src/main/resources/assets/vivatech/models/block/minimal_crusher_active.json create mode 100644 src/main/resources/assets/vivatech/models/block/minimal_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/models/block/minimal_electric_furnace_active.json create mode 100644 src/main/resources/assets/vivatech/models/block/minimal_machine_chassis.json create mode 100644 src/main/resources/assets/vivatech/models/block/minimal_press.json create mode 100644 src/main/resources/assets/vivatech/models/block/minimal_press_active.json create mode 100644 src/main/resources/assets/vivatech/models/block/normal_crusher.json create mode 100644 src/main/resources/assets/vivatech/models/block/normal_crusher_active.json create mode 100644 src/main/resources/assets/vivatech/models/block/normal_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/models/block/normal_electric_furnace_active.json create mode 100644 src/main/resources/assets/vivatech/models/block/normal_machine_chassis.json create mode 100644 src/main/resources/assets/vivatech/models/block/normal_press.json create mode 100644 src/main/resources/assets/vivatech/models/block/normal_press_active.json delete mode 100644 src/main/resources/assets/vivatech/models/block/press.json delete mode 100644 src/main/resources/assets/vivatech/models/block/press_active.json create mode 100644 src/main/resources/assets/vivatech/models/item/advanced_crusher.json create mode 100644 src/main/resources/assets/vivatech/models/item/advanced_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/models/item/advanced_press.json delete mode 100644 src/main/resources/assets/vivatech/models/item/crusher.json delete mode 100644 src/main/resources/assets/vivatech/models/item/electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/models/item/minimal_crusher.json create mode 100644 src/main/resources/assets/vivatech/models/item/minimal_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/models/item/minimal_press.json create mode 100644 src/main/resources/assets/vivatech/models/item/normal_crusher.json create mode 100644 src/main/resources/assets/vivatech/models/item/normal_electric_furnace.json create mode 100644 src/main/resources/assets/vivatech/models/item/normal_press.json delete mode 100644 src/main/resources/assets/vivatech/models/item/press.json create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_crusher_active_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_crusher_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_electric_furnace_active_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_electric_furnace_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_machine_bottom.png create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_machine_side.png create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_machine_top.png create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_press_active_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/advanced_press_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_crusher_active_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_crusher_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_electric_furnace_active_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_electric_furnace_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_machine_bottom.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_machine_side.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_machine_top.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_press_active_front.png create mode 100644 src/main/resources/assets/vivatech/textures/block/minimal_press_front.png rename src/main/resources/assets/vivatech/textures/block/{crusher_active_front.png => normal_crusher_active_front.png} (100%) rename src/main/resources/assets/vivatech/textures/block/{crusher_front.png => normal_crusher_front.png} (100%) rename src/main/resources/assets/vivatech/textures/block/{electric_furnace_active_front.png => normal_electric_furnace_active_front.png} (100%) rename src/main/resources/assets/vivatech/textures/block/{electric_furnace_front.png => normal_electric_furnace_front.png} (100%) rename src/main/resources/assets/vivatech/textures/block/{machine_bottom.png => normal_machine_bottom.png} (100%) rename src/main/resources/assets/vivatech/textures/block/{machine_side.png => normal_machine_side.png} (100%) rename src/main/resources/assets/vivatech/textures/block/{machine_top.png => normal_machine_top.png} (100%) rename src/main/resources/assets/vivatech/textures/block/{press_active_front.png => normal_press_active_front.png} (100%) rename src/main/resources/assets/vivatech/textures/block/{press_front.png => normal_press_front.png} (100%) diff --git a/src/main/java/vivatech/block/CrusherBlock.java b/src/main/java/vivatech/block/CrusherBlock.java index 9e64047..c659793 100644 --- a/src/main/java/vivatech/block/CrusherBlock.java +++ b/src/main/java/vivatech/block/CrusherBlock.java @@ -12,13 +12,22 @@ import net.minecraft.world.World; import vivatech.Vivatech; import vivatech.entity.CrusherEntity; +import vivatech.util.MachineTier; +import vivatech.util.TierHelper; -public class CrusherBlock extends AbstractMachineBlock { +public class CrusherBlock extends AbstractTieredMachineBlock { public static final Identifier ID = new Identifier(Vivatech.MODID, "crusher"); + final Identifier TIERED_ID; - public CrusherBlock() { - super(Vivatech.MACHINE_BLOCK_SETTINGS); + public CrusherBlock(MachineTier tier) { + super(Vivatech.MACHINE_BLOCK_SETTINGS, tier); + TIERED_ID = TierHelper.getTieredID(ID, tier); } + + @Override + public Identifier getTieredID() { + return TIERED_ID; + } // Block @Override @@ -33,6 +42,6 @@ public boolean activate(BlockState state, World world, BlockPos pos, PlayerEntit // BlockEntityProvider @Override public BlockEntity createBlockEntity(BlockView blockView) { - return new CrusherEntity(); + return new CrusherEntity(TIER); } } diff --git a/src/main/java/vivatech/block/PressBlock.java b/src/main/java/vivatech/block/PressBlock.java index 15feeaf..7a467eb 100644 --- a/src/main/java/vivatech/block/PressBlock.java +++ b/src/main/java/vivatech/block/PressBlock.java @@ -12,13 +12,22 @@ import net.minecraft.world.World; import vivatech.Vivatech; import vivatech.entity.PressEntity; +import vivatech.util.MachineTier; +import vivatech.util.TierHelper; -public class PressBlock extends AbstractMachineBlock { +public class PressBlock extends AbstractTieredMachineBlock { public static final Identifier ID = new Identifier(Vivatech.MODID, "press"); + final Identifier TIERED_ID; - public PressBlock() { - super(Vivatech.MACHINE_BLOCK_SETTINGS); + public PressBlock(MachineTier tier) { + super(Vivatech.MACHINE_BLOCK_SETTINGS, tier); + TIERED_ID = TierHelper.getTieredID(ID, tier); } + + @Override + public Identifier getTieredID() { + return TIERED_ID; + } // Block @Override @@ -33,6 +42,6 @@ public boolean activate(BlockState state, World world, BlockPos pos, PlayerEntit // BlockEntityProvider @Override public BlockEntity createBlockEntity(BlockView blockView) { - return new PressEntity(); + return new PressEntity(TIER); } } diff --git a/src/main/java/vivatech/entity/AbstractTieredMachineEntity.java b/src/main/java/vivatech/entity/AbstractTieredMachineEntity.java index a9199e0..d1f8143 100644 --- a/src/main/java/vivatech/entity/AbstractTieredMachineEntity.java +++ b/src/main/java/vivatech/entity/AbstractTieredMachineEntity.java @@ -1,19 +1,33 @@ package vivatech.entity; import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.nbt.CompoundTag; import vivatech.util.MachineTier; public abstract class AbstractTieredMachineEntity extends AbstractMachineEntity { public MachineTier TIER; - + public AbstractTieredMachineEntity(BlockEntityType type, MachineTier tier) { super(type); TIER = tier; } - + public AbstractTieredMachineEntity(BlockEntityType type) { super(type); } + @Override + public void fromTag(CompoundTag tag) { + super.fromTag(tag); + TIER = MachineTier.values()[tag.getInt("Tier")]; + } + + @Override + public CompoundTag toTag(CompoundTag tag) { + super.toTag(tag); + tag.putInt("Tier", TIER.ordinal()); + return tag; + } + } diff --git a/src/main/java/vivatech/entity/CrusherEntity.java b/src/main/java/vivatech/entity/CrusherEntity.java index e9ee934..5783db5 100644 --- a/src/main/java/vivatech/entity/CrusherEntity.java +++ b/src/main/java/vivatech/entity/CrusherEntity.java @@ -1,6 +1,10 @@ package vivatech.entity; +import javax.annotation.Nullable; + import alexiil.mc.lib.attributes.Simulation; +import io.github.cottonmc.cotton.datapack.recipe.CottonRecipes; +import io.github.cottonmc.cotton.datapack.recipe.ProcessingRecipe; import net.minecraft.container.PropertyDelegate; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; @@ -10,10 +14,10 @@ import vivatech.init.VivatechEntities; import vivatech.init.VivatechRecipes; import vivatech.recipe.CrushingRecipe; +import vivatech.util.MachineTier; -import javax.annotation.Nullable; +public class CrusherEntity extends AbstractTieredMachineEntity { -public class CrusherEntity extends AbstractMachineEntity { private static final int CONSUME_PER_TICK = 1; private static final int TICK_PER_CONSUME = 5; private int crushTime = 0; @@ -61,6 +65,10 @@ public int size() { } }; + public CrusherEntity(MachineTier tier) { + super(VivatechEntities.CRUSHER, tier); + } + public CrusherEntity() { super(VivatechEntities.CRUSHER); } @@ -80,10 +88,10 @@ protected boolean canExtractEnergy() { protected void serverTick() { if (canRun()) { crushTime++; - if (crushTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK, Simulation.ACTION); + if (crushTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int)TIER.getSpeedMultiplier(), Simulation.ACTION); if (crushTimeTotal == 0) { - crushTimeTotal = world.getRecipeManager().getFirstMatch(VivatechRecipes.CRUSHING, this, world) - .map(CrushingRecipe::getProcessTime).orElse(200); + crushTimeTotal = (int) (world.getRecipeManager().getFirstMatch(CottonRecipes.CRUSHING_RECIPE, this, world) + .map(CrushingRecipe::getProcessTime).orElse(200) / TIER.getSpeedMultiplier()); } setBlockActive(true); if (crushTime >= crushTimeTotal) { diff --git a/src/main/java/vivatech/entity/ElectricFurnaceEntity.java b/src/main/java/vivatech/entity/ElectricFurnaceEntity.java index ce3957a..1945d68 100644 --- a/src/main/java/vivatech/entity/ElectricFurnaceEntity.java +++ b/src/main/java/vivatech/entity/ElectricFurnaceEntity.java @@ -88,7 +88,7 @@ protected void serverTick() { if (cookTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int)TIER.getSpeedMultiplier(), Simulation.ACTION); if (cookTimeTotal == 0) { cookTimeTotal = (int) (world.getRecipeManager().getFirstMatch(RecipeType.SMELTING, this, world) - .map(AbstractCookingRecipe::getCookTime).orElse(200) / (2 * TIER.getSpeedMultiplier())); + .map(AbstractCookingRecipe::getCookTime).orElse(200) / (2 * (TIER.getSpeedMultiplier() + 0.5F))); } setBlockActive(true); if (cookTime >= cookTimeTotal) { @@ -148,7 +148,6 @@ public void fromTag(CompoundTag tag) { super.fromTag(tag); cookTime = tag.getInt("CookTime"); cookTimeTotal = tag.getInt("CookTimeTotal"); - TIER = MachineTier.values()[tag.getInt("Tier")]; } @Override @@ -156,7 +155,6 @@ public CompoundTag toTag(CompoundTag tag) { super.toTag(tag); tag.putInt("CookTime", cookTime); tag.putInt("CookTimeTotal", cookTimeTotal); - tag.putInt("Tier", TIER.ordinal()); return tag; } diff --git a/src/main/java/vivatech/entity/PressEntity.java b/src/main/java/vivatech/entity/PressEntity.java index 5a6b3c9..5e577d8 100644 --- a/src/main/java/vivatech/entity/PressEntity.java +++ b/src/main/java/vivatech/entity/PressEntity.java @@ -1,5 +1,7 @@ package vivatech.entity; +import javax.annotation.Nullable; + import alexiil.mc.lib.attributes.Simulation; import net.minecraft.container.PropertyDelegate; import net.minecraft.item.ItemStack; @@ -10,10 +12,10 @@ import vivatech.init.VivatechEntities; import vivatech.init.VivatechRecipes; import vivatech.recipe.PressingRecipe; +import vivatech.util.MachineTier; -import javax.annotation.Nullable; +public class PressEntity extends AbstractTieredMachineEntity { -public class PressEntity extends AbstractMachineEntity { private static final int TICK_PER_CONSUME = 5; private static final int CONSUME_PER_TICK = 1; private int pressTime = 0; @@ -61,6 +63,10 @@ public int size() { } }; + public PressEntity(MachineTier tier) { + super(VivatechEntities.PRESS, tier); + } + public PressEntity() { super(VivatechEntities.PRESS); } @@ -80,10 +86,10 @@ protected boolean canExtractEnergy() { protected void serverTick() { if (canRun()) { pressTime++; - if (pressTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK, Simulation.ACTION); + if (pressTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int) TIER.getSpeedMultiplier(), Simulation.ACTION); if (pressTimeTotal == 0) { - pressTimeTotal = world.getRecipeManager().getFirstMatch(VivatechRecipes.PRESSING, this, world) - .map(PressingRecipe::getProcessTime).orElse(200); + pressTimeTotal = (int) (world.getRecipeManager().getFirstMatch(VivatechRecipes.PRESSING, this, world) + .map(PressingRecipe::getProcessTime).orElse(200) / TIER.getSpeedMultiplier()); } setBlockActive(true); if (pressTime >= pressTimeTotal) { diff --git a/src/main/java/vivatech/init/VivatechBlocks.java b/src/main/java/vivatech/init/VivatechBlocks.java index a5277dc..d8392cb 100644 --- a/src/main/java/vivatech/init/VivatechBlocks.java +++ b/src/main/java/vivatech/init/VivatechBlocks.java @@ -20,30 +20,29 @@ public class VivatechBlocks { public static final Block MACHINE_CHASSIS; public static final EnergyConduitBlock ENERGY_CONDUIT; public static final CoalGeneratorBlock COAL_GENERATOR; - public static final CrusherBlock CRUSHER; + public static final ImmutableList CRUSHER; public static final ImmutableList ELECTRIC_FURNACE; public static final EnergyBankBlock ENERGY_BANK; - public static final PressBlock PRESS; + public static final ImmutableList PRESS; static { MACHINE_CHASSIS = new Block(Vivatech.METALLIC_BLOCK_SETTINGS); ENERGY_CONDUIT = new EnergyConduitBlock(); COAL_GENERATOR = new CoalGeneratorBlock(); - CRUSHER = new CrusherBlock(); ENERGY_BANK = new EnergyBankBlock(); - PRESS = new PressBlock(); - ELECTRIC_FURNACE = TierHelper.fillTieredBlockArray(ElectricFurnaceBlock::new); + ELECTRIC_FURNACE = TierHelper.fillTieredBlockArray(ElectricFurnaceBlock::new); + PRESS = TierHelper.fillTieredBlockArray(PressBlock::new); + CRUSHER = TierHelper.fillTieredBlockArray(CrusherBlock::new); } public static void initialize() { Registry.register(Registry.BLOCK, MACHINE_CHASSIS_ID, MACHINE_CHASSIS); Registry.register(Registry.BLOCK, EnergyConduitBlock.ID, ENERGY_CONDUIT); Registry.register(Registry.BLOCK, CoalGeneratorBlock.ID, COAL_GENERATOR); - Registry.register(Registry.BLOCK, CrusherBlock.ID, CRUSHER); - TierHelper.registerTieredBlocks(ELECTRIC_FURNACE); - Registry.register(Registry.BLOCK, CrusherBlock.ID, CRUSHER); Registry.register(Registry.BLOCK, EnergyBankBlock.ID, ENERGY_BANK); - Registry.register(Registry.BLOCK, PressBlock.ID, PRESS); + TierHelper.registerTieredBlocks(ELECTRIC_FURNACE); + TierHelper.registerTieredBlocks(CRUSHER); + TierHelper.registerTieredBlocks(PRESS); } } diff --git a/src/main/java/vivatech/init/VivatechEntities.java b/src/main/java/vivatech/init/VivatechEntities.java index 0623f47..eb32181 100644 --- a/src/main/java/vivatech/init/VivatechEntities.java +++ b/src/main/java/vivatech/init/VivatechEntities.java @@ -28,10 +28,10 @@ public class VivatechEntities { static { ENERGY_CONDUIT = BlockEntityType.Builder.create(EnergyConduitEntity::new, VivatechBlocks.ENERGY_CONDUIT).build(null); COAL_GENERATOR = BlockEntityType.Builder.create(CoalGeneratorEntity::new, VivatechBlocks.COAL_GENERATOR).build(null); - CRUSHER = BlockEntityType.Builder.create(CrusherEntity::new, VivatechBlocks.CRUSHER).build(null); + CRUSHER = BlockEntityType.Builder.create(CrusherEntity::new, VivatechBlocks.CRUSHER.toArray(new Block[MachineTier.values().length])).build(null); ELECTRIC_FURNACE = BlockEntityType.Builder.create(ElectricFurnaceEntity::new, VivatechBlocks.ELECTRIC_FURNACE.toArray(new Block[MachineTier.values().length])).build(null); ENERGY_BANK = BlockEntityType.Builder.create(EnergyBankEntity::new, VivatechBlocks.ENERGY_BANK).build(null); - PRESS = BlockEntityType.Builder.create(PressEntity::new, VivatechBlocks.PRESS).build(null); + PRESS = BlockEntityType.Builder.create(PressEntity::new, VivatechBlocks.PRESS.toArray(new Block[MachineTier.values().length])).build(null); } public static void initialize() { diff --git a/src/main/java/vivatech/init/VivatechItems.java b/src/main/java/vivatech/init/VivatechItems.java index 58304b0..d724742 100644 --- a/src/main/java/vivatech/init/VivatechItems.java +++ b/src/main/java/vivatech/init/VivatechItems.java @@ -5,10 +5,8 @@ import net.minecraft.util.registry.Registry; import vivatech.Vivatech; import vivatech.block.CoalGeneratorBlock; -import vivatech.block.CrusherBlock; import vivatech.block.EnergyBankBlock; import vivatech.block.EnergyConduitBlock; -import vivatech.block.PressBlock; import vivatech.item.BatteryItem; import vivatech.util.TierHelper; @@ -16,34 +14,34 @@ public class VivatechItems { public static final Item MACHINE_CHASSIS; public static final Item ENERGY_CONDUIT; public static final Item COAL_GENERATOR; - public static final Item CRUSHER; + public static final Item[] CRUSHER; public static final Item[] ELECTRIC_FURNACE; public static final Item ENERGY_BANK; - public static final Item PRESS; + public static final Item[] PRESS; public static final Item BATTERY; static { MACHINE_CHASSIS = new BlockItem(VivatechBlocks.MACHINE_CHASSIS, Vivatech.ITEM_SETTINGS); ENERGY_CONDUIT = new BlockItem(VivatechBlocks.ENERGY_CONDUIT, Vivatech.ITEM_SETTINGS); COAL_GENERATOR = new BlockItem(VivatechBlocks.COAL_GENERATOR, Vivatech.ITEM_SETTINGS); - CRUSHER = new BlockItem(VivatechBlocks.CRUSHER, Vivatech.ITEM_SETTINGS); ENERGY_BANK = new BlockItem(VivatechBlocks.ENERGY_BANK, Vivatech.ITEM_SETTINGS); - PRESS = new BlockItem(VivatechBlocks.PRESS, Vivatech.ITEM_SETTINGS); BATTERY = new BatteryItem(); ELECTRIC_FURNACE = TierHelper.fillTieredBlockItemArray(VivatechBlocks.ELECTRIC_FURNACE); + PRESS = TierHelper.fillTieredBlockItemArray(VivatechBlocks.PRESS); + CRUSHER = TierHelper.fillTieredBlockItemArray(VivatechBlocks.CRUSHER); } public static void initialize() { Registry.register(Registry.ITEM, VivatechBlocks.MACHINE_CHASSIS_ID, MACHINE_CHASSIS); Registry.register(Registry.ITEM, EnergyConduitBlock.ID, ENERGY_CONDUIT); Registry.register(Registry.ITEM, CoalGeneratorBlock.ID, COAL_GENERATOR); - Registry.register(Registry.ITEM, CrusherBlock.ID, CRUSHER); Registry.register(Registry.ITEM, EnergyBankBlock.ID, ENERGY_BANK); - Registry.register(Registry.ITEM, PressBlock.ID, PRESS); Registry.register(Registry.ITEM, BatteryItem.ID, BATTERY); TierHelper.registerTieredBlockItems(VivatechBlocks.ELECTRIC_FURNACE, ELECTRIC_FURNACE); + TierHelper.registerTieredBlockItems(VivatechBlocks.PRESS, PRESS); + TierHelper.registerTieredBlockItems(VivatechBlocks.CRUSHER, CRUSHER); } } diff --git a/src/main/java/vivatech/util/MachineTier.java b/src/main/java/vivatech/util/MachineTier.java index 92af2e2..caf57da 100644 --- a/src/main/java/vivatech/util/MachineTier.java +++ b/src/main/java/vivatech/util/MachineTier.java @@ -2,7 +2,7 @@ public enum MachineTier { - MINIMAL(1.5F, 0, "minimal"), NORMAL(2F, 3, "normal"), ADVANCED(3F, 5, "advanced"); + MINIMAL(1F, 0, "minimal"), NORMAL(2F, 3, "normal"), ADVANCED(3F, 5, "advanced"); private final float speedMultiplier; private final int upgradeSlots; diff --git a/src/main/resources/assets/vivatech/blockstates/advanced_crusher.json b/src/main/resources/assets/vivatech/blockstates/advanced_crusher.json new file mode 100644 index 0000000..6d143c2 --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/advanced_crusher.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/advanced_crusher" }, + "facing=east,active=false": { "model": "vivatech:block/advanced_crusher", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/advanced_crusher", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/advanced_crusher", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/advanced_crusher_active" }, + "facing=east,active=true": { "model": "vivatech:block/advanced_crusher_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/advanced_crusher_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/advanced_crusher_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/advanced_electric_furnace.json b/src/main/resources/assets/vivatech/blockstates/advanced_electric_furnace.json new file mode 100644 index 0000000..cacb7c4 --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/advanced_electric_furnace.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/advanced_electric_furnace" }, + "facing=east,active=false": { "model": "vivatech:block/advanced_electric_furnace", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/advanced_electric_furnace", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/advanced_electric_furnace", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/advanced_electric_furnace_active" }, + "facing=east,active=true": { "model": "vivatech:block/advanced_electric_furnace_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/advanced_electric_furnace_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/advanced_electric_furnace_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/advanced_press.json b/src/main/resources/assets/vivatech/blockstates/advanced_press.json new file mode 100644 index 0000000..a9d4276 --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/advanced_press.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/advanced_press" }, + "facing=east,active=false": { "model": "vivatech:block/advanced_press", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/advanced_press", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/advanced_press", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/advanced_press_active" }, + "facing=east,active=true": { "model": "vivatech:block/advanced_press_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/advanced_press_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/advanced_press_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/crusher.json b/src/main/resources/assets/vivatech/blockstates/crusher.json deleted file mode 100644 index 6d65569..0000000 --- a/src/main/resources/assets/vivatech/blockstates/crusher.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { "model": "vivatech:block/crusher" }, - "facing=east,active=false": { "model": "vivatech:block/crusher", "y": 90 }, - "facing=south,active=false": { "model": "vivatech:block/crusher", "y": 180 }, - "facing=west,active=false": { "model": "vivatech:block/crusher", "y": 270 }, - "facing=north,active=true": { "model": "vivatech:block/crusher_active" }, - "facing=east,active=true": { "model": "vivatech:block/crusher_active", "y": 90 }, - "facing=south,active=true": { "model": "vivatech:block/crusher_active", "y": 180 }, - "facing=west,active=true": { "model": "vivatech:block/crusher_active", "y": 270 } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/electric_furnace.json b/src/main/resources/assets/vivatech/blockstates/electric_furnace.json deleted file mode 100644 index 6fcfdfe..0000000 --- a/src/main/resources/assets/vivatech/blockstates/electric_furnace.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { "model": "vivatech:block/electric_furnace" }, - "facing=east,active=false": { "model": "vivatech:block/electric_furnace", "y": 90 }, - "facing=south,active=false": { "model": "vivatech:block/electric_furnace", "y": 180 }, - "facing=west,active=false": { "model": "vivatech:block/electric_furnace", "y": 270 }, - "facing=north,active=true": { "model": "vivatech:block/electric_furnace_active" }, - "facing=east,active=true": { "model": "vivatech:block/electric_furnace_active", "y": 90 }, - "facing=south,active=true": { "model": "vivatech:block/electric_furnace_active", "y": 180 }, - "facing=west,active=true": { "model": "vivatech:block/electric_furnace_active", "y": 270 } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/machine_chassis.json b/src/main/resources/assets/vivatech/blockstates/machine_chassis.json index a1eeb1a..d628a45 100644 --- a/src/main/resources/assets/vivatech/blockstates/machine_chassis.json +++ b/src/main/resources/assets/vivatech/blockstates/machine_chassis.json @@ -1,5 +1,5 @@ { "variants": { - "": { "model": "vivatech:block/machine_chassis" } + "": { "model": "vivatech:block/normal_machine_chassis" } } } \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/minimal_crusher.json b/src/main/resources/assets/vivatech/blockstates/minimal_crusher.json new file mode 100644 index 0000000..40facb6 --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/minimal_crusher.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/minimal_crusher" }, + "facing=east,active=false": { "model": "vivatech:block/minimal_crusher", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/minimal_crusher", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/minimal_crusher", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/minimal_crusher_active" }, + "facing=east,active=true": { "model": "vivatech:block/minimal_crusher_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/minimal_crusher_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/minimal_crusher_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/minimal_electric_furnace.json b/src/main/resources/assets/vivatech/blockstates/minimal_electric_furnace.json new file mode 100644 index 0000000..103ef38 --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/minimal_electric_furnace.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/minimal_electric_furnace" }, + "facing=east,active=false": { "model": "vivatech:block/minimal_electric_furnace", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/minimal_electric_furnace", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/minimal_electric_furnace", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/minimal_electric_furnace_active" }, + "facing=east,active=true": { "model": "vivatech:block/minimal_electric_furnace_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/minimal_electric_furnace_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/minimal_electric_furnace_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/minimal_press.json b/src/main/resources/assets/vivatech/blockstates/minimal_press.json new file mode 100644 index 0000000..afa94ae --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/minimal_press.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/minimal_press" }, + "facing=east,active=false": { "model": "vivatech:block/minimal_press", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/minimal_press", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/minimal_press", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/minimal_press_active" }, + "facing=east,active=true": { "model": "vivatech:block/minimal_press_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/minimal_press_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/minimal_press_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/normal_crusher.json b/src/main/resources/assets/vivatech/blockstates/normal_crusher.json new file mode 100644 index 0000000..9dd5eee --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/normal_crusher.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/normal_crusher" }, + "facing=east,active=false": { "model": "vivatech:block/normal_crusher", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/normal_crusher", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/normal_crusher", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/normal_crusher_active" }, + "facing=east,active=true": { "model": "vivatech:block/normal_crusher_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/normal_crusher_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/normal_crusher_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/normal_electric_furnace.json b/src/main/resources/assets/vivatech/blockstates/normal_electric_furnace.json new file mode 100644 index 0000000..b7224b5 --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/normal_electric_furnace.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/normal_electric_furnace" }, + "facing=east,active=false": { "model": "vivatech:block/normal_electric_furnace", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/normal_electric_furnace", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/normal_electric_furnace", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/normal_electric_furnace_active" }, + "facing=east,active=true": { "model": "vivatech:block/normal_electric_furnace_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/normal_electric_furnace_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/normal_electric_furnace_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/normal_press.json b/src/main/resources/assets/vivatech/blockstates/normal_press.json new file mode 100644 index 0000000..7bca8d0 --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/normal_press.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,active=false": { "model": "vivatech:block/normal_press" }, + "facing=east,active=false": { "model": "vivatech:block/normal_press", "y": 90 }, + "facing=south,active=false": { "model": "vivatech:block/normal_press", "y": 180 }, + "facing=west,active=false": { "model": "vivatech:block/normal_press", "y": 270 }, + "facing=north,active=true": { "model": "vivatech:block/normal_press_active" }, + "facing=east,active=true": { "model": "vivatech:block/normal_press_active", "y": 90 }, + "facing=south,active=true": { "model": "vivatech:block/normal_press_active", "y": 180 }, + "facing=west,active=true": { "model": "vivatech:block/normal_press_active", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/press.json b/src/main/resources/assets/vivatech/blockstates/press.json deleted file mode 100644 index 7eea5e7..0000000 --- a/src/main/resources/assets/vivatech/blockstates/press.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "variants": { - "facing=north,active=false": { "model": "vivatech:block/press" }, - "facing=east,active=false": { "model": "vivatech:block/press", "y": 90 }, - "facing=south,active=false": { "model": "vivatech:block/press", "y": 180 }, - "facing=west,active=false": { "model": "vivatech:block/press", "y": 270 }, - "facing=north,active=true": { "model": "vivatech:block/press_active" }, - "facing=east,active=true": { "model": "vivatech:block/press_active", "y": 90 }, - "facing=south,active=true": { "model": "vivatech:block/press_active", "y": 180 }, - "facing=west,active=true": { "model": "vivatech:block/press_active", "y": 270 } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/lang/en_us.json b/src/main/resources/assets/vivatech/lang/en_us.json index ca107c6..841d78f 100644 --- a/src/main/resources/assets/vivatech/lang/en_us.json +++ b/src/main/resources/assets/vivatech/lang/en_us.json @@ -6,7 +6,17 @@ "block.vivatech.energy_conduit": "Energy Conduit", "block.vivatech.coal_generator": "Coal Generator", "block.vivatech.crusher": "Crusher", + "block.vivatech.minimal_crusher": "Minimal Crusher", + "block.vivatech.normal_crusher": "Normal Crusher", + "block.vivatech.advanced_crusher": "Advanced Crusher", "block.vivatech.electric_furnace": "Electric Furnace", + "block.vivatech.minimal_electric_furnace": "Minimal Electric Furnace", + "block.vivatech.normal_electric_furnace": "Normal Electric Furnace", + "block.vivatech.advanced_electric_furnace": "Advanced Electric Furnace", + "block.vivatech.press": "Press", + "block.vivatech.minimal_press": "Minimal Press", + "block.vivatech.normal_press": "Normal Press", + "block.vivatech.advanced_press": "Advanced Press", "block.vivatech.energy_bank": "Energy Bank", "block.vivatech.press": "Press", "item.vivatech.battery": "Battery", diff --git a/src/main/resources/assets/vivatech/models/block/advanced_crusher.json b/src/main/resources/assets/vivatech/models/block/advanced_crusher.json new file mode 100644 index 0000000..bae3f66 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/advanced_crusher.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/advanced_machine_chassis", + "textures": { + "front": "vivatech:block/advanced_crusher_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/advanced_crusher_active.json b/src/main/resources/assets/vivatech/models/block/advanced_crusher_active.json new file mode 100644 index 0000000..bfb0246 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/advanced_crusher_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/advanced_crusher", + "textures": { + "front": "vivatech:block/advanced_crusher_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/advanced_electric_furnace.json b/src/main/resources/assets/vivatech/models/block/advanced_electric_furnace.json new file mode 100644 index 0000000..7bd3196 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/advanced_electric_furnace.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/advanced_machine_chassis", + "textures": { + "front": "vivatech:block/advanced_electric_furnace_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/advanced_electric_furnace_active.json b/src/main/resources/assets/vivatech/models/block/advanced_electric_furnace_active.json new file mode 100644 index 0000000..bc15b51 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/advanced_electric_furnace_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/advanced_electric_furnace", + "textures": { + "front": "vivatech:block/advanced_electric_furnace_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/advanced_machine_chassis.json b/src/main/resources/assets/vivatech/models/block/advanced_machine_chassis.json new file mode 100644 index 0000000..52f6895 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/advanced_machine_chassis.json @@ -0,0 +1,9 @@ +{ + "parent": "block/orientable", + "textures": { + "top": "vivatech:block/advanced_machine_top", + "bottom": "vivatech:block/advanced_machine_bottom", + "side": "vivatech:block/advanced_machine_side", + "front": "vivatech:block/advanced_machine_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/advanced_press.json b/src/main/resources/assets/vivatech/models/block/advanced_press.json new file mode 100644 index 0000000..bac9dcf --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/advanced_press.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/advanced_machine_chassis", + "textures": { + "front": "vivatech:block/advanced_press_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/advanced_press_active.json b/src/main/resources/assets/vivatech/models/block/advanced_press_active.json new file mode 100644 index 0000000..25f75e4 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/advanced_press_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/advanced_press", + "textures": { + "front": "vivatech:block/advanced_press_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/coal_generator.json b/src/main/resources/assets/vivatech/models/block/coal_generator.json index ed746f2..eeb9431 100644 --- a/src/main/resources/assets/vivatech/models/block/coal_generator.json +++ b/src/main/resources/assets/vivatech/models/block/coal_generator.json @@ -1,5 +1,5 @@ { - "parent": "vivatech:block/machine_chassis", + "parent": "vivatech:block/normal_machine_chassis", "textures": { "front": "vivatech:block/coal_generator_front" } diff --git a/src/main/resources/assets/vivatech/models/block/crusher.json b/src/main/resources/assets/vivatech/models/block/crusher.json deleted file mode 100644 index 4d9ac54..0000000 --- a/src/main/resources/assets/vivatech/models/block/crusher.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "vivatech:block/machine_chassis", - "textures": { - "front": "vivatech:block/crusher_front" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/crusher_active.json b/src/main/resources/assets/vivatech/models/block/crusher_active.json deleted file mode 100644 index a7eb04a..0000000 --- a/src/main/resources/assets/vivatech/models/block/crusher_active.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "vivatech:block/crusher", - "textures": { - "front": "vivatech:block/crusher_active_front" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/electric_furnace.json b/src/main/resources/assets/vivatech/models/block/electric_furnace.json deleted file mode 100644 index 65fd82a..0000000 --- a/src/main/resources/assets/vivatech/models/block/electric_furnace.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "vivatech:block/machine_chassis", - "textures": { - "front": "vivatech:block/electric_furnace_front" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/electric_furnace_active.json b/src/main/resources/assets/vivatech/models/block/electric_furnace_active.json deleted file mode 100644 index 386c223..0000000 --- a/src/main/resources/assets/vivatech/models/block/electric_furnace_active.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "vivatech:block/electric_furnace", - "textures": { - "front": "vivatech:block/electric_furnace_active_front" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/energy_bank.json b/src/main/resources/assets/vivatech/models/block/energy_bank.json index 4e22061..db960df 100644 --- a/src/main/resources/assets/vivatech/models/block/energy_bank.json +++ b/src/main/resources/assets/vivatech/models/block/energy_bank.json @@ -1,5 +1,5 @@ { - "parent": "vivatech:block/machine_chassis", + "parent": "vivatech:block/normal_machine_chassis", "textures": { "side": "vivatech:block/energy_bank_side", "front": "vivatech:block/energy_bank_side" diff --git a/src/main/resources/assets/vivatech/models/block/machine_chassis.json b/src/main/resources/assets/vivatech/models/block/machine_chassis.json deleted file mode 100644 index 78f88f0..0000000 --- a/src/main/resources/assets/vivatech/models/block/machine_chassis.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "block/orientable", - "textures": { - "top": "vivatech:block/machine_top", - "bottom": "vivatech:block/machine_bottom", - "side": "vivatech:block/machine_side", - "front": "vivatech:block/machine_side" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/minimal_crusher.json b/src/main/resources/assets/vivatech/models/block/minimal_crusher.json new file mode 100644 index 0000000..687af19 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/minimal_crusher.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/minimal_machine_chassis", + "textures": { + "front": "vivatech:block/minimal_crusher_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/minimal_crusher_active.json b/src/main/resources/assets/vivatech/models/block/minimal_crusher_active.json new file mode 100644 index 0000000..29f4efd --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/minimal_crusher_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/minimal_crusher", + "textures": { + "front": "vivatech:block/minimal_crusher_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/minimal_electric_furnace.json b/src/main/resources/assets/vivatech/models/block/minimal_electric_furnace.json new file mode 100644 index 0000000..37d28c8 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/minimal_electric_furnace.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/minimal_machine_chassis", + "textures": { + "front": "vivatech:block/minimal_electric_furnace_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/minimal_electric_furnace_active.json b/src/main/resources/assets/vivatech/models/block/minimal_electric_furnace_active.json new file mode 100644 index 0000000..d078b6e --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/minimal_electric_furnace_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/minimal_electric_furnace", + "textures": { + "front": "vivatech:block/minimal_electric_furnace_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/minimal_machine_chassis.json b/src/main/resources/assets/vivatech/models/block/minimal_machine_chassis.json new file mode 100644 index 0000000..1d967cf --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/minimal_machine_chassis.json @@ -0,0 +1,9 @@ +{ + "parent": "block/orientable", + "textures": { + "top": "vivatech:block/minimal_machine_top", + "bottom": "vivatech:block/minimal_machine_bottom", + "side": "vivatech:block/minimal_machine_side", + "front": "vivatech:block/minimal_machine_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/minimal_press.json b/src/main/resources/assets/vivatech/models/block/minimal_press.json new file mode 100644 index 0000000..30c8c6e --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/minimal_press.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/minimal_machine_chassis", + "textures": { + "front": "vivatech:block/minimal_press_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/minimal_press_active.json b/src/main/resources/assets/vivatech/models/block/minimal_press_active.json new file mode 100644 index 0000000..75b203c --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/minimal_press_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/minimal_press", + "textures": { + "front": "vivatech:block/minimal_press_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/normal_crusher.json b/src/main/resources/assets/vivatech/models/block/normal_crusher.json new file mode 100644 index 0000000..c3b4d47 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/normal_crusher.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/normal_machine_chassis", + "textures": { + "front": "vivatech:block/normal_crusher_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/normal_crusher_active.json b/src/main/resources/assets/vivatech/models/block/normal_crusher_active.json new file mode 100644 index 0000000..3c03a45 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/normal_crusher_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/normal_crusher", + "textures": { + "front": "vivatech:block/normal_crusher_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/normal_electric_furnace.json b/src/main/resources/assets/vivatech/models/block/normal_electric_furnace.json new file mode 100644 index 0000000..41b2253 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/normal_electric_furnace.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/normal_machine_chassis", + "textures": { + "front": "vivatech:block/normal_electric_furnace_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/normal_electric_furnace_active.json b/src/main/resources/assets/vivatech/models/block/normal_electric_furnace_active.json new file mode 100644 index 0000000..a564388 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/normal_electric_furnace_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/normal_electric_furnace", + "textures": { + "front": "vivatech:block/normal_electric_furnace_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/normal_machine_chassis.json b/src/main/resources/assets/vivatech/models/block/normal_machine_chassis.json new file mode 100644 index 0000000..ea6c9ac --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/normal_machine_chassis.json @@ -0,0 +1,9 @@ +{ + "parent": "block/orientable", + "textures": { + "top": "vivatech:block/normal_machine_top", + "bottom": "vivatech:block/normal_machine_bottom", + "side": "vivatech:block/normal_machine_side", + "front": "vivatech:block/normal_machine_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/normal_press.json b/src/main/resources/assets/vivatech/models/block/normal_press.json new file mode 100644 index 0000000..c2d0dae --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/normal_press.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/normal_machine_chassis", + "textures": { + "front": "vivatech:block/normal_press_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/normal_press_active.json b/src/main/resources/assets/vivatech/models/block/normal_press_active.json new file mode 100644 index 0000000..bb76c78 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/block/normal_press_active.json @@ -0,0 +1,6 @@ +{ + "parent": "vivatech:block/normal_press", + "textures": { + "front": "vivatech:block/normal_press_active_front" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/press.json b/src/main/resources/assets/vivatech/models/block/press.json deleted file mode 100644 index 3df3245..0000000 --- a/src/main/resources/assets/vivatech/models/block/press.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "vivatech:block/machine_chassis", - "textures": { - "front": "vivatech:block/press_front" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/block/press_active.json b/src/main/resources/assets/vivatech/models/block/press_active.json deleted file mode 100644 index f82a8ea..0000000 --- a/src/main/resources/assets/vivatech/models/block/press_active.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "vivatech:block/press", - "textures": { - "front": "vivatech:block/press_active_front" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/advanced_crusher.json b/src/main/resources/assets/vivatech/models/item/advanced_crusher.json new file mode 100644 index 0000000..4d48299 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/advanced_crusher.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/advanced_crusher" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/advanced_electric_furnace.json b/src/main/resources/assets/vivatech/models/item/advanced_electric_furnace.json new file mode 100644 index 0000000..bbea952 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/advanced_electric_furnace.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/advanced_electric_furnace" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/advanced_press.json b/src/main/resources/assets/vivatech/models/item/advanced_press.json new file mode 100644 index 0000000..5a8d2cb --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/advanced_press.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/advanced_press" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/crusher.json b/src/main/resources/assets/vivatech/models/item/crusher.json deleted file mode 100644 index a6cc44f..0000000 --- a/src/main/resources/assets/vivatech/models/item/crusher.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "vivatech:block/crusher" -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/electric_furnace.json b/src/main/resources/assets/vivatech/models/item/electric_furnace.json deleted file mode 100644 index d2686be..0000000 --- a/src/main/resources/assets/vivatech/models/item/electric_furnace.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "vivatech:block/electric_furnace" -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/machine_chassis.json b/src/main/resources/assets/vivatech/models/item/machine_chassis.json index 8513d2e..1a79cac 100644 --- a/src/main/resources/assets/vivatech/models/item/machine_chassis.json +++ b/src/main/resources/assets/vivatech/models/item/machine_chassis.json @@ -1,3 +1,3 @@ { - "parent": "vivatech:block/machine_chassis" + "parent": "vivatech:block/normal_machine_chassis" } \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/minimal_crusher.json b/src/main/resources/assets/vivatech/models/item/minimal_crusher.json new file mode 100644 index 0000000..8f8ed38 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/minimal_crusher.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/minimal_crusher" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/minimal_electric_furnace.json b/src/main/resources/assets/vivatech/models/item/minimal_electric_furnace.json new file mode 100644 index 0000000..fcefaa2 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/minimal_electric_furnace.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/minimal_electric_furnace" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/minimal_press.json b/src/main/resources/assets/vivatech/models/item/minimal_press.json new file mode 100644 index 0000000..1d1ed0b --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/minimal_press.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/minimal_press" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/normal_crusher.json b/src/main/resources/assets/vivatech/models/item/normal_crusher.json new file mode 100644 index 0000000..fd750f8 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/normal_crusher.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/normal_crusher" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/normal_electric_furnace.json b/src/main/resources/assets/vivatech/models/item/normal_electric_furnace.json new file mode 100644 index 0000000..c7b49ae --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/normal_electric_furnace.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/normal_electric_furnace" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/normal_press.json b/src/main/resources/assets/vivatech/models/item/normal_press.json new file mode 100644 index 0000000..6df18b0 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/normal_press.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/normal_press" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/press.json b/src/main/resources/assets/vivatech/models/item/press.json deleted file mode 100644 index e84253f..0000000 --- a/src/main/resources/assets/vivatech/models/item/press.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "vivatech:block/press" -} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/textures/block/advanced_crusher_active_front.png b/src/main/resources/assets/vivatech/textures/block/advanced_crusher_active_front.png new file mode 100644 index 0000000000000000000000000000000000000000..b1372bdac86d3e88f7c68b7ca7152914f557b06a GIT binary patch literal 2126 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 c0Fb81U) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b<&MYSk{Ld+J1dLhCaag6?AjeMurf2!yiBMem=CWF$?JUmoHwbd98p16vI^vNvco{vi3(zO=1HGT)_ujlnWNuPRct@6zMp-9 zGkSnLcE$}Rw)mBG3PS_VTyT&0C3f!4U=@BHyI=dxJi{;NJ)HM_TBc-7i#z9j~A`kWZyq;zMHeloa0zme1xZ>QKPOYdxV7*uH?Nf;!5}ijMKg{ zE`f;+h;^V@aWzAk9Q-)RQ>Q|c#=bXdP|>^L67J45$9qmVx$N2o#jlH|O8}!A79i1p z8e`f$y3js1@ADc7PVR)2jv$N{cHfuz)#QJ<9zk=i&?U0+_zHTt6*W*}A-8_93V_g5 zpN8$zH%0r8W( zAcjid;7tf2h7=^^P$EYkLyR%S#Ze`3@+qX4Qj(NY5f(2&q9hT?QnJeo3JW>rWU}O( zOTnQ9q6>BxtSF_r%GK9UV@*|RuB9P-ns1@SmYTHON_U+*(!a-^OqZT}88i?|!;diH zNJB;*Wg^xlPd~$qGfkO!mIpOO^%FJvLhheYBSmc?=J&evLJiX?T@keCBrME;nDYe0 z(?Vd8)56ROdG8i-3p1M?k|H>uMqz=|X(0v#{U8@6J=ndF`$ybN@c#-o_dDdwg6{u7 z&MfE@xu3ZG0<~UtMd1z5%EIMS%M-*lLX_g9bht2(539h8HL)txT+ab0oi(d$ox49P zNa|i;jkCJvcXzs5WqipBdqo!8FfeN^Qf zp<3hYyrqIc+%Yve%4(X8t#8N3Bgn;T)zJ@&+gTJI=@2^Zd0Ui0AD}L72vW6hg~1wE zP!pYVK%RS9z(~!%YQcSF`>3Ge)T>s~eb+b0x1)^U;C951=x4=gbRMOlbeK|)9V~5f z+2hh?wE3KtdFi)@Gk9=yIp!ijleFZIcCn$-svGRJugSNIsXWp2I8DPRIvb9!Ol=V% z&LyhW$<8vM+7UvNW0>bvLa_n#C8gs5Cr#lA zuqGcL)B+1w6sQiSWEI*o?2o1%u|-7F&@$gpk0%tGf1)Esf3^d0H_q0{KGk8OK8{FG zO9QyYkn=GLoKkFzs<=dshPW7Z|$^}hrQ{mm9LTFCg1j;_{DU1@NAt!*L zlA7F-l%&Z9Mn;vn$!uCVSTQUfL6f0+9fIDCy87FAlTqvxw|JV28QgtscsAaM6h?v(>qw+~#Et ze>_uOYLVs^$S>dZ>1Jm*rv0ovn&#Gi-#LEPwP&ZXPll-uM4B9ES<&*X5suVRY6JB) z=dS!ay-OoV;%fB$s>dPM6C|rKof%Eb)C6am#pkZ{KU$u-$SqbUsSIL=WOiP4^n?+HdK>2WDf(y|1 zj+<+eTFG*G5PjqFfZ6~CfCtbdX`&0-6ySJ{YfU(+5g>ZgR-1E)A2wR)S{#SK#_2DU z?6}aD)vSs9qa9Rc zcXSIbo2&cJma*J5<5L~+{N0&mt^Md+CK}&t{s!FRP$uh?ub}_{010qNS#tmY4#5Bb z4#5Gqk!$S$000McNliru;|2@|3K(@>@67-J0+mTbK~yNuJ(5jtlvNmp@8>yZoEB&Y zJ8fnfL#>i-Csb5w_c;9cE`orN)Ra<6F~xj&dEu$@Vq+u>HwL%Yx4!Vf zWNAp>Xx5K!`M%Y!@_Mn&>Kd2c(e1}J>=E?5keF|A_T5)xUV`i z(E1e{H&9u{AFcfP_s5o=7~IjQof!S6R4S1a5jCTwnCC_68CqMb*K<^>dii#DyWT%D z_v2E#E8G6$+3SO%N+vV&S(ay^=&9`Za-p4vit#ZCJ`TimCpqUz-novC<;qq+5JHME z`7F!BW^mq>{G;V<{y}SdkcPeoeG=Tk=fZ;6h#)M zX3sF$YhRs8(N2DHIxk`fg&f#F)?e*aa`dO)7N6Po?&mY7r`~?+%(;M#kH#mO-_Cs6 zn11j4+{we!S+aI#9eej296K~|p$kV|n)^oBN(VB)dnStJV6vQ&kZW2tbI6LI4y+Bq>fUSu$H&-|$`C<<&p`QqlhotwO>% m5eUgVkItz&H8TL^a_K(oG;deEMKKlt0000 zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1Y?lI$i7{Ld+J1O!OHarm&Sa)TT{4G6sB-S<*S zWn5#h03mft0(1TK=WYJL&yjT|a7>a#EPf$}>r(~C;c{A*OlAt`_y%%=2sN8=-VXWu`d10h- z;-9gb2)$U_JAVuShG@V3zF>FXJ>B=UyemO~lo)ktyE1#2SOKM<%LGrvpV5!=$#@c6 zY+$T|&5EZP%H)9KO@TTUy6Kv2qXrX$yIe%;TyuWPl8-LCHc1KNq1#1}(Tz{ws)02R zu{*ZV+&9nt8YS%92{Ro*8MyrZn4g6IK!m*+#*haC$P3RjlEb-3 z1RN9iDX`r6;3^m(X4lEw;Kq9aImwN^u_n@->)0(ZN(+c!BuxZ0NEeV50waE6NQj}r zo`Yd#;mC5qB1efarkG<%K83_dQcNl3RIN_X9Nq<@zlO;0`da?yoQy28bmT=7a* zzRHbQyZs$*zU7X0y7OHQYs%^;YxH97_pFh!HW&+YUVK=CIL57lMmgcZ85nbcz<3-C zjN&vnvx!1*gSo+(&2AJa2iAxOIh_V$U@%`+>Dy=857bK_d$XrqirpEZLM~By-?rwL6GZn*U}!40j&(cHUJKfR zm1gzo3=^?)O%GRjyC8<+J@}< zWD0Xyo?|?apM%9-+0#-h;e)vecG&)9Svv*Jb;%IHE~8LPh2remYy)8_t!bWc()Nwl zjs&G{MA+KAHRR0Fm2(f`)#pUY12!;=WUC1K?X%NpL5UBF5L1m)#<^WcLA6+|G|6tK zaXxQTdQ!a96=cM*4d?3OkhUTz8r8Hi;C`U>2W8~=v?)`2M$~B@aU(*~3d$M#V6jlKw8l^;O;9 zt@|wQ=1Y9ZD<$}ZyjCD9D>+arrJPc=j5j0dD?fb8DIEDhx|{?l_nvxCTs)XHoF7dm z&H36mQIH>md2P?*@{nddl4Gdb5aD8f!p*B1BoBwjw8sl7i#6=C0hGeWo&2mh_PSMK zIU}x4VRLS|_SBDRPZ)VE-g%#^g6pgtujtXI!^z;9^aCn887Mr1{ekQV!%0iyPRUB& zaZIEk2N*jm-}}t5^fmU(NAR5>J7?TGw$AxYTbl~Z6Nl;4)upDS=VY$`bZ5EDFOoEU zKi-cqCtFWK_f?OcQ%5f|IOT8L&9eC$4CmD6tB0Vq00009a7bBm000ic000ic0Tn1p zfB*mh2XskIMF-;s3F|O;6iU5ZsSv#|aU{4NWPiRB$We zQuW_(?~m=J&80{b2};U`aiWl5$#&j*yW4|7sye6DYIij=J9u{X6%m+`*&!kTm_Y}` zmqJxz6jeh62VndA?}%Klm%I-A4^i_zn91E;>CEi)hBDK1`V9aOvFkhMPEWsxsF`-l zPE|t?A_LIr^am^!w`JK)r_5Vv`rZ4Jlg|JhQF9^^V)J&6g8`YLSu}G13XmiT5{Zbaxu$718^5=AyjtB4y*D#v7Lh1IMCe@4Iq&@>-}gSm zD6VNXP17>-X!IVD@So>(FE=w)QB_2YG16ue+IF*C-Xh|BeiLIXifdI9k@@^aRThg` z2ywZ*^FFq%??hvkjf>)XG&)$Xi^=3;QCtDQc>Lkv;c7fSe13iy40fBQsq5Bx??uF{ z>h<1KRWTe+9v^>iZ|?!XYIUFI2US(1>8P$3h(i(Kx4Va1!#;Bc07RLHFlT0J2F~@{ zb_0-@fmsrxv`y=>es8f@5z zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1Y+lEx+s{m&_K1k@U#YcN53C#1D7I|8)$pxi9VS>=leG zDv!|MML<@cp=u$ufFdRBoj!pO>r5Rpi9U(sXY9-xZs4uahMi4gp59Ox>&6DRVKnAJ ze#WjLw6QidzZUYbRD7^2C5KY3?p(vuAZV8g;n?ZO(0G4ThDlCdr`1YYiVf-;>asCnm|exvuONy4jMyANZ5#o z6E8ucBu9>&IOn{pH7a@X?8Q6peeltzK!Jk<7kmgIh7>W9mN1DfdJ{v8F(p-+RCLnQ zNq3}l;6Vo;a=61E;fO~%HGED!<#eY%!x_(%F;mv`&n|nDLykFJaA_!Ae97f5e}yYv zsc5VfDqN(v;!7y8q{Z4`_01Y=%>6TKFj%XMaogu_)^ytYDFSLak;<7eh78KMuME`U zR5`N&n6WZfIkORKkwRq+q>_`NGNugj1txnunBIH&4598sAd1n0Ad?v-8jmDK?Hs`Td=E~>H z=n1=*dOsBw(@wi1S5u|lz}*O>v3(4laFwAG^YE`4Y?>9gLBP8;3zN}9lqO9N4_EYp zJY`t(#Wtid!*Q5{yko&#q@i1_Opq5|X{@+u&^7THPNYSIT9i6Icw2;*0FmVQ1Dn>nDT(Ce-i7QJnouE?mied@ioDTePkS`wg2<`u%cmnWtOVR=lS< z_gyjRQfu5hBuu!kb)J!l@+(jA=IKq7!QWE-n2_MKVbO-~NNZmU=2idriw(K`1Lb`+ z%})gL1a`03RP=kOerfy-)Y7QXuCKMi00009a7bBm000ib000ib0l1NC?EnA(2XskI zMF-;s300045Nkl+5fKCm@lasw4tPVkfa3I{+kBY4z#fe|||w(A~E8-U$HMZJQ*?Bmm#G@a1B;y3YM^D!J&rns1BtQvLB{=6)tsi;UwYr^P?*c+{CE2@3*$rgelbq-AFqa{h zBw)sLCvg%0q$b?Sl+-9(Bu3x!wB4kD2{Z}r`&0=4Y1=yv?P;Z7uWJYa_OV2OYZX3c?Y-Xb?(^b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vivatech/textures/block/advanced_machine_side.png b/src/main/resources/assets/vivatech/textures/block/advanced_machine_side.png new file mode 100644 index 0000000000000000000000000000000000000000..6a48eee693dba73282d0ab400a4b0e0608697906 GIT binary patch literal 1681 zcmV;C25$L@P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1Ywvg0TW{bv=k1SAlT|wk%f@Xkp$-a=kIR*!XI1m#!E~ghhXvNv(H>GNp}6Mk*uHZ{ln_yMQ*MSFl!w~ zw|<6m>leu7u^{>_KVIb~)@>(kLuz>&bYo}6Wb37E$nlcX{%!JJSNu~r`@f#kgr#lt z{@X`@(F8)rhEE4M-f8UO;DO7oU<`PZV;+(*_fFRPGj`^h-oU$NH|%WLa`y^_v0*EO z8%A4B@)^5{(2X_S`Q<~6*A{Qs_1;qN=ZdcQ0HlK1L1`#+2E_wVy16Xi8Ab*3IG>Cs zA;b#C8rVGWR705vvxA;kZ|o`!iftPJMA%#43^_1h1395UHZn&d z;F!Qqf#>WzA7Fq)xRL4L#<>7;5|6#HCeqYp;Uz|EnFSJD1T`oikmbD~f1*#wp(0Ma z5s@HKl4L2t1s^1Y5X0zECA#RN#1LalF~^cz@<~!iF{PAK$($WpnB7mD-dhX?7ZL|8y8r_)tnKjz14aWS`ix1Wyj!{j}XeTl_17qw7jK{&i zXikGOo5*_}%nib3gKC#Qza*{Eay?sQW*dGlRO# z+&ga{SZigTC~guos&HUxT}NZX;#4@51_&E@83)Wc1dJ1=&j|`SOr3FTt5e0m+tw+}c*R-AS4 zynIqukQP${pz{6{OkL{fTAvk-*nSS0l7=`&qZ5ot0UR-}t#zVtAqAImwdvd&wh4lH z#)X>VT0VOdR==+o={F6q(JDzdJ>LI2yit;_j(ei)IARNx>;6 zYvwPdXw+Yp-$a9MxnSEgYSJSY_?ga`F6)b^yJ%LjT<{-4Yp<(+d%Tfi-q~6FiB}H+ ziNBT0hta$O!@uiKyO*|UuZ|!)w8m^><>pF`t{c7qVt#?Zl?*|b)|)RZ%9`5+Q7j)? zVQK3!QH6|lFeS>BmXUfdgrRnFfaRAXRGleNfhF>ZI>{6NHOBiRi%C`OOwgV26% z#osGOw9n?r7j7e%_MO2OHg;T!7FAy+z?pouG)-Y|)lLl9{Oub?ouC(gfd2!7Fz~*1{M3dmOSC^0g000SaNLh0L01m?d z01m?e$8V@)00007bV*G`2jd0|1T8LNXLe`+00B`+L_t(2&t;N9avU)X0|AONlLw^A z5Az4|{NxZ{a`28M0y$`RGg(|fUVSDwM(=rVBA~hhRN|tOJPDyhr0%M$2*;?aekmRbe_2}cQ(ws9Q zG83561pY&_Z9~!mNgMWRV~nqk?W-x|*Br?gkz@c7B$1M< zWb5(|e$+!+L;|pFo8&yt-g^gFrPhLsN13Why4waY#;B^i-TLizw$`>SZIHSUKIbe{ z&so{eah`qOw+NDsAn;riZ2_p#8giaJK>!@10JPQsF4Hg8t7h->^Rwr9&MNJDjxnD` z0k-z<5G6}hRW&PXj;h(aBiQ>`JS6Q{M%SX(jeySM+y3$KhvdR$&_-)_u-<2jh!&Or b9LN3_Yo|O&k`P$*00000NkvXXu0mjf0y`uj literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vivatech/textures/block/advanced_machine_top.png b/src/main/resources/assets/vivatech/textures/block/advanced_machine_top.png new file mode 100644 index 0000000000000000000000000000000000000000..988c9d92c65555e6032677a7685ae600bb91d8ca GIT binary patch literal 1696 zcmV;R24DG!P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1YwuIwlb{AU%j1Z>{RArPe5!7P7@hegm{to>xu7oRM zi3N&PsCnTkiV`u{Ze*!arbhQ@3l%`Ld~-m{T-Xd-G=USBA&Tu6H4c!cDifhqfocY3 z-dJeFO(R~Rh{%=T$%M(E<w{L+ui;S zcf8Y`8*;6gW}9oig%(?Cd8@WmeOHYR<$hOzY9^wgkmP zSD+WCu9=QxEqCR*W;!u8g=45ju8UKtD+UGaP3#(N?H=WR)lE73N4oJheK z>6UUob^D-N&ErHdL!iD3JEz(-6ts>r-oKd-U*v5n3qOzGygecijqfB zwDK#oXG$WLB#yUr;UkeRPYY{hCWT&`yxez(>szjth3XZ!WO14t@sseIYBxGgEd5(* z2Dn5}AWVYCUTO{e4kH|Ro?!HfOLZ43ImthACyQ2P`aJVduClM%*djf~^%lcCsk~P~ zCkg>xwrawGe$W0CR}KMJxg?cOI5-8`#HHd-IR4a;&re?l`rP1W6}L z@hOJtC__x5Sz5UrpWJpcVA_=>(p*K~YiEL-Wa-aXUTV>dql|!fDT+@C6y!DUg8Zef zs4oTP1FFEZ4a`R`8vaZuv3Cls?&K9kT?B`ThO(Y`(?Y!RS*Ctvt+u*-_MEnM; zemct4tk64o8@_;&`WJXAqPQzN4=Vrw010qNS#tmY4#EHc4#EKyC`y0;000McNliru z;|2@_EjDor?mhqj0X<1XK~yNuO_ITFRxLtJLhSs zj$_%i9V8`@1d{~RcA)kjsC!jWQugp|B4$)oYgGd?ucRd%M^|k{gg{`z3`wd0`q{5a zRY*Jc+F=0Xs@qFdRRvnBZgoj(t&*q`)DGLd5+s$R?*6T=+GJGMGt7tri$2_$@dy(AL1 z;5fSK5nVpdZckcU2_2a6J`JGi(k0iTc4l5SGv|yOlH@#NJIO};%uZsD(0QKr3DaxU q$H%|5%8sP&i~TlCE(msPcOT!QB0000 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vivatech/textures/block/minimal_crusher_front.png b/src/main/resources/assets/vivatech/textures/block/minimal_crusher_front.png new file mode 100644 index 0000000000000000000000000000000000000000..e1831bca93e8cb79007d1ff34eeb141cd47acb72 GIT binary patch literal 2137 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 R3Jd@M002ovPDHLkV1j#TO(XyS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vivatech/textures/block/minimal_machine_top.png b/src/main/resources/assets/vivatech/textures/block/minimal_machine_top.png new file mode 100644 index 0000000000000000000000000000000000000000..72d412d1ebff4307f277ea7db552fde924c7a7b1 GIT binary patch literal 1727 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/vivatech/textures/block/crusher_active_front.png b/src/main/resources/assets/vivatech/textures/block/normal_crusher_active_front.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/crusher_active_front.png rename to src/main/resources/assets/vivatech/textures/block/normal_crusher_active_front.png diff --git a/src/main/resources/assets/vivatech/textures/block/crusher_front.png b/src/main/resources/assets/vivatech/textures/block/normal_crusher_front.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/crusher_front.png rename to src/main/resources/assets/vivatech/textures/block/normal_crusher_front.png diff --git a/src/main/resources/assets/vivatech/textures/block/electric_furnace_active_front.png b/src/main/resources/assets/vivatech/textures/block/normal_electric_furnace_active_front.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/electric_furnace_active_front.png rename to src/main/resources/assets/vivatech/textures/block/normal_electric_furnace_active_front.png diff --git a/src/main/resources/assets/vivatech/textures/block/electric_furnace_front.png b/src/main/resources/assets/vivatech/textures/block/normal_electric_furnace_front.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/electric_furnace_front.png rename to src/main/resources/assets/vivatech/textures/block/normal_electric_furnace_front.png diff --git a/src/main/resources/assets/vivatech/textures/block/machine_bottom.png b/src/main/resources/assets/vivatech/textures/block/normal_machine_bottom.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/machine_bottom.png rename to src/main/resources/assets/vivatech/textures/block/normal_machine_bottom.png diff --git a/src/main/resources/assets/vivatech/textures/block/machine_side.png b/src/main/resources/assets/vivatech/textures/block/normal_machine_side.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/machine_side.png rename to src/main/resources/assets/vivatech/textures/block/normal_machine_side.png diff --git a/src/main/resources/assets/vivatech/textures/block/machine_top.png b/src/main/resources/assets/vivatech/textures/block/normal_machine_top.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/machine_top.png rename to src/main/resources/assets/vivatech/textures/block/normal_machine_top.png diff --git a/src/main/resources/assets/vivatech/textures/block/press_active_front.png b/src/main/resources/assets/vivatech/textures/block/normal_press_active_front.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/press_active_front.png rename to src/main/resources/assets/vivatech/textures/block/normal_press_active_front.png diff --git a/src/main/resources/assets/vivatech/textures/block/press_front.png b/src/main/resources/assets/vivatech/textures/block/normal_press_front.png similarity index 100% rename from src/main/resources/assets/vivatech/textures/block/press_front.png rename to src/main/resources/assets/vivatech/textures/block/normal_press_front.png From c13bf379778081b29bd06ca5337a0dbb868c13ca Mon Sep 17 00:00:00 2001 From: Snakefangox Date: Thu, 13 Jun 2019 10:46:04 +1200 Subject: [PATCH 02/11] Removed duplicate lang entry for press --- src/main/resources/assets/vivatech/lang/en_us.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/resources/assets/vivatech/lang/en_us.json b/src/main/resources/assets/vivatech/lang/en_us.json index 841d78f..3f14d2c 100644 --- a/src/main/resources/assets/vivatech/lang/en_us.json +++ b/src/main/resources/assets/vivatech/lang/en_us.json @@ -13,7 +13,6 @@ "block.vivatech.minimal_electric_furnace": "Minimal Electric Furnace", "block.vivatech.normal_electric_furnace": "Normal Electric Furnace", "block.vivatech.advanced_electric_furnace": "Advanced Electric Furnace", - "block.vivatech.press": "Press", "block.vivatech.minimal_press": "Minimal Press", "block.vivatech.normal_press": "Normal Press", "block.vivatech.advanced_press": "Advanced Press", @@ -22,4 +21,4 @@ "item.vivatech.battery": "Battery", "gui.vivatech.crushing": "Crushing", "gui.vivatech.pressing": "Pressing" -} \ No newline at end of file +} From 6a0ace8e64b17c742e04e5bc802a942a6ddc8103 Mon Sep 17 00:00:00 2001 From: Snakefangox Date: Thu, 13 Jun 2019 10:51:36 +1200 Subject: [PATCH 03/11] Fixed indentation --- src/main/java/vivatech/block/CrusherBlock.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/vivatech/block/CrusherBlock.java b/src/main/java/vivatech/block/CrusherBlock.java index c659793..514730c 100644 --- a/src/main/java/vivatech/block/CrusherBlock.java +++ b/src/main/java/vivatech/block/CrusherBlock.java @@ -24,10 +24,10 @@ public CrusherBlock(MachineTier tier) { TIERED_ID = TierHelper.getTieredID(ID, tier); } - @Override - public Identifier getTieredID() { - return TIERED_ID; - } + @Override + public Identifier getTieredID() { + return TIERED_ID; + } // Block @Override From afa6effc3cf6392242bf57a667a6d796e14e1a10 Mon Sep 17 00:00:00 2001 From: Falkreon Date: Sat, 15 Jun 2019 16:19:17 -0500 Subject: [PATCH 04/11] Fix build errors, move machine tier info to tooltip --- build.gradle | 6 ++-- .../block/AbstractTieredMachineBlock.java | 33 +++++++++++++++++-- .../java/vivatech/block/CrusherBlock.java | 4 +-- .../vivatech/block/ElectricFurnaceBlock.java | 4 +-- src/main/java/vivatech/block/PressBlock.java | 4 +-- .../java/vivatech/entity/CrusherEntity.java | 3 +- .../java/vivatech/rei/CrushingCategory.java | 2 +- .../java/vivatech/rei/PressingCategory.java | 2 +- .../resources/assets/vivatech/lang/en_us.json | 20 +++++------ 9 files changed, 51 insertions(+), 27 deletions(-) diff --git a/build.gradle b/build.gradle index a1af13b..a7e2d9d 100644 --- a/build.gradle +++ b/build.gradle @@ -33,13 +33,13 @@ dependencies { compileOnly "com.google.code.findbugs:jsr305:3.0.2" // javax.annotations.* modCompile ("alexiil.mc.lib:libblockattributes:0.4.2") { transitive = false } - modCompile ("io.github.cottonmc:cotton:0.7.3+1.14.2-SNAPSHOT") { transitive = false } + modCompile ("io.github.cottonmc:cotton:0.7.3+1.14.2-SNAPSHOT") { transitive = false } modCompile ("io.github.cottonmc:cotton-energy:1.4.0+1.14.2-SNAPSHOT") { transitive = false } modCompile ("io.github.cottonmc:cotton-resources:1.2.0+1.14.2-SNAPSHOT") { transitive = false } modCompile "me.shedaniel:RoughlyEnoughItems:2.9.1+build.116" - include ("alexill.mc.lib:libblockattributes:0.4.2") { transitive = false } - include ("io.github.cottonmc:cotton-energy:1.4.0") { transitive = false } + include ("alexiil.mc.lib:libblockattributes:0.4.2") { transitive = false } + include ("io.github.cottonmc:cotton-energy:1.4.0+1.14.2-SNAPSHOT") { transitive = false } } processResources { diff --git a/src/main/java/vivatech/block/AbstractTieredMachineBlock.java b/src/main/java/vivatech/block/AbstractTieredMachineBlock.java index f857efb..b36fc11 100644 --- a/src/main/java/vivatech/block/AbstractTieredMachineBlock.java +++ b/src/main/java/vivatech/block/AbstractTieredMachineBlock.java @@ -1,17 +1,44 @@ package vivatech.block; +import java.util.List; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.ChatFormat; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.item.ItemStack; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.util.Identifier; +import net.minecraft.world.BlockView; import vivatech.util.MachineTier; public abstract class AbstractTieredMachineBlock extends AbstractMachineBlock { - public final MachineTier TIER; + protected final MachineTier tier; + protected final String id; - public AbstractTieredMachineBlock(Settings settings, MachineTier tier) { + public AbstractTieredMachineBlock(Settings settings, String id, MachineTier tier) { super(settings); - TIER = tier; + this.id = id; + this.tier = tier; } public abstract Identifier getTieredID(); + @Override + public String getTranslationKey() { + return "block.vivatech."+id; + } + + @Environment(EnvType.CLIENT) + @Override + public void buildTooltip(ItemStack itemStack_1, BlockView blockView_1, List list_1, TooltipContext tooltipContext_1) { + + Component tierLine = new TranslatableComponent("machine_tier.tier", new TranslatableComponent("machine_tier."+(tier.toString().toLowerCase()))); + tierLine.applyFormat(ChatFormat.GRAY); + list_1.add(tierLine); + + super.buildTooltip(itemStack_1, blockView_1, list_1, tooltipContext_1); + } } diff --git a/src/main/java/vivatech/block/CrusherBlock.java b/src/main/java/vivatech/block/CrusherBlock.java index 514730c..14af22d 100644 --- a/src/main/java/vivatech/block/CrusherBlock.java +++ b/src/main/java/vivatech/block/CrusherBlock.java @@ -20,7 +20,7 @@ public class CrusherBlock extends AbstractTieredMachineBlock { final Identifier TIERED_ID; public CrusherBlock(MachineTier tier) { - super(Vivatech.MACHINE_BLOCK_SETTINGS, tier); + super(Vivatech.MACHINE_BLOCK_SETTINGS, "crusher", tier); TIERED_ID = TierHelper.getTieredID(ID, tier); } @@ -42,6 +42,6 @@ public boolean activate(BlockState state, World world, BlockPos pos, PlayerEntit // BlockEntityProvider @Override public BlockEntity createBlockEntity(BlockView blockView) { - return new CrusherEntity(TIER); + return new CrusherEntity(tier); } } diff --git a/src/main/java/vivatech/block/ElectricFurnaceBlock.java b/src/main/java/vivatech/block/ElectricFurnaceBlock.java index bb6a649..47c8ea5 100644 --- a/src/main/java/vivatech/block/ElectricFurnaceBlock.java +++ b/src/main/java/vivatech/block/ElectricFurnaceBlock.java @@ -20,7 +20,7 @@ public class ElectricFurnaceBlock extends AbstractTieredMachineBlock { final Identifier TIERED_ID; public ElectricFurnaceBlock(MachineTier tier) { - super(Vivatech.MACHINE_BLOCK_SETTINGS, tier); + super(Vivatech.MACHINE_BLOCK_SETTINGS, "electric_furnace", tier); TIERED_ID = TierHelper.getTieredID(ID, tier); } @@ -37,7 +37,7 @@ public boolean activate(BlockState state, World world, BlockPos pos, PlayerEntit // BlockEntityProvider @Override public BlockEntity createBlockEntity(BlockView blockView) { - return new ElectricFurnaceEntity(TIER); + return new ElectricFurnaceEntity(tier); } @Override diff --git a/src/main/java/vivatech/block/PressBlock.java b/src/main/java/vivatech/block/PressBlock.java index 7a467eb..b988ccc 100644 --- a/src/main/java/vivatech/block/PressBlock.java +++ b/src/main/java/vivatech/block/PressBlock.java @@ -20,7 +20,7 @@ public class PressBlock extends AbstractTieredMachineBlock { final Identifier TIERED_ID; public PressBlock(MachineTier tier) { - super(Vivatech.MACHINE_BLOCK_SETTINGS, tier); + super(Vivatech.MACHINE_BLOCK_SETTINGS, "press", tier); TIERED_ID = TierHelper.getTieredID(ID, tier); } @@ -42,6 +42,6 @@ public boolean activate(BlockState state, World world, BlockPos pos, PlayerEntit // BlockEntityProvider @Override public BlockEntity createBlockEntity(BlockView blockView) { - return new PressEntity(TIER); + return new PressEntity(tier); } } diff --git a/src/main/java/vivatech/entity/CrusherEntity.java b/src/main/java/vivatech/entity/CrusherEntity.java index 5783db5..7d93bb2 100644 --- a/src/main/java/vivatech/entity/CrusherEntity.java +++ b/src/main/java/vivatech/entity/CrusherEntity.java @@ -3,7 +3,6 @@ import javax.annotation.Nullable; import alexiil.mc.lib.attributes.Simulation; -import io.github.cottonmc.cotton.datapack.recipe.CottonRecipes; import io.github.cottonmc.cotton.datapack.recipe.ProcessingRecipe; import net.minecraft.container.PropertyDelegate; import net.minecraft.item.ItemStack; @@ -90,7 +89,7 @@ protected void serverTick() { crushTime++; if (crushTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int)TIER.getSpeedMultiplier(), Simulation.ACTION); if (crushTimeTotal == 0) { - crushTimeTotal = (int) (world.getRecipeManager().getFirstMatch(CottonRecipes.CRUSHING_RECIPE, this, world) + crushTimeTotal = (int) (world.getRecipeManager().getFirstMatch(VivatechRecipes.CRUSHING, this, world) .map(CrushingRecipe::getProcessTime).orElse(200) / TIER.getSpeedMultiplier()); } setBlockActive(true); diff --git a/src/main/java/vivatech/rei/CrushingCategory.java b/src/main/java/vivatech/rei/CrushingCategory.java index 69b371d..c74ade3 100644 --- a/src/main/java/vivatech/rei/CrushingCategory.java +++ b/src/main/java/vivatech/rei/CrushingCategory.java @@ -12,6 +12,6 @@ final class CrushingCategory extends BaseRecipeCategory { @Override public Renderer getIcon() { - return Renderable.fromItemStack(new ItemStack(VivatechBlocks.CRUSHER)); + return Renderable.fromItemStack(new ItemStack(VivatechBlocks.CRUSHER.get(0))); } } diff --git a/src/main/java/vivatech/rei/PressingCategory.java b/src/main/java/vivatech/rei/PressingCategory.java index cc386fb..840e5b0 100644 --- a/src/main/java/vivatech/rei/PressingCategory.java +++ b/src/main/java/vivatech/rei/PressingCategory.java @@ -12,6 +12,6 @@ final class PressingCategory extends BaseRecipeCategory { @Override public Renderer getIcon() { - return Renderable.fromItemStack(new ItemStack(VivatechBlocks.PRESS)); + return Renderable.fromItemStack(new ItemStack(VivatechBlocks.PRESS.get(0))); } } diff --git a/src/main/resources/assets/vivatech/lang/en_us.json b/src/main/resources/assets/vivatech/lang/en_us.json index 3f14d2c..a1c3b26 100644 --- a/src/main/resources/assets/vivatech/lang/en_us.json +++ b/src/main/resources/assets/vivatech/lang/en_us.json @@ -5,20 +5,18 @@ "block.vivatech.machine_chassis": "Machine Chassis", "block.vivatech.energy_conduit": "Energy Conduit", "block.vivatech.coal_generator": "Coal Generator", + "block.vivatech.crusher": "Crusher", - "block.vivatech.minimal_crusher": "Minimal Crusher", - "block.vivatech.normal_crusher": "Normal Crusher", - "block.vivatech.advanced_crusher": "Advanced Crusher", "block.vivatech.electric_furnace": "Electric Furnace", - "block.vivatech.minimal_electric_furnace": "Minimal Electric Furnace", - "block.vivatech.normal_electric_furnace": "Normal Electric Furnace", - "block.vivatech.advanced_electric_furnace": "Advanced Electric Furnace", - "block.vivatech.minimal_press": "Minimal Press", - "block.vivatech.normal_press": "Normal Press", - "block.vivatech.advanced_press": "Advanced Press", - "block.vivatech.energy_bank": "Energy Bank", "block.vivatech.press": "Press", + "block.vivatech.energy_bank": "Energy Bank", + "item.vivatech.battery": "Battery", "gui.vivatech.crushing": "Crushing", - "gui.vivatech.pressing": "Pressing" + "gui.vivatech.pressing": "Pressing", + + "machine_tier.tier" : "Tier: %s", + "machine_tier.minimal" : "Minimal", + "machine_tier.normal" : "Normal", + "machine_tier.advanced" : "Advanced" } From dcaa7921683ce0405acee86f28adb5f15c6ed70f Mon Sep 17 00:00:00 2001 From: Falkreon Date: Sat, 15 Jun 2019 16:34:42 -0500 Subject: [PATCH 05/11] Stop serializing machine tiers in the BlockEntity --- .../block/AbstractTieredMachineBlock.java | 4 +++ .../java/vivatech/block/CrusherBlock.java | 2 +- .../vivatech/block/ElectricFurnaceBlock.java | 2 +- src/main/java/vivatech/block/PressBlock.java | 2 +- .../entity/AbstractTieredMachineEntity.java | 30 ++++++------------- .../java/vivatech/entity/CrusherEntity.java | 14 ++++----- .../entity/ElectricFurnaceEntity.java | 15 +++++----- .../java/vivatech/entity/PressEntity.java | 13 ++++---- 8 files changed, 33 insertions(+), 49 deletions(-) diff --git a/src/main/java/vivatech/block/AbstractTieredMachineBlock.java b/src/main/java/vivatech/block/AbstractTieredMachineBlock.java index b36fc11..5e3651a 100644 --- a/src/main/java/vivatech/block/AbstractTieredMachineBlock.java +++ b/src/main/java/vivatech/block/AbstractTieredMachineBlock.java @@ -41,4 +41,8 @@ public void buildTooltip(ItemStack itemStack_1, BlockView blockView_1, List type, MachineTier tier) { - super(type); - TIER = tier; - } - public AbstractTieredMachineEntity(BlockEntityType type) { super(type); } - - @Override - public void fromTag(CompoundTag tag) { - super.fromTag(tag); - TIER = MachineTier.values()[tag.getInt("Tier")]; - } - - @Override - public CompoundTag toTag(CompoundTag tag) { - super.toTag(tag); - tag.putInt("Tier", TIER.ordinal()); - return tag; + public MachineTier getMachineTier() { + Block block = world.getBlockState(pos).getBlock(); + if (block instanceof AbstractTieredMachineBlock) { + return ((AbstractTieredMachineBlock)block).getMachineTier(); + } else { + return MachineTier.MINIMAL; + } } - } diff --git a/src/main/java/vivatech/entity/CrusherEntity.java b/src/main/java/vivatech/entity/CrusherEntity.java index 7d93bb2..7c4f1cd 100644 --- a/src/main/java/vivatech/entity/CrusherEntity.java +++ b/src/main/java/vivatech/entity/CrusherEntity.java @@ -3,11 +3,9 @@ import javax.annotation.Nullable; import alexiil.mc.lib.attributes.Simulation; -import io.github.cottonmc.cotton.datapack.recipe.ProcessingRecipe; import net.minecraft.container.PropertyDelegate; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; -import net.minecraft.recipe.Recipe; import net.minecraft.util.math.Direction; import vivatech.Vivatech; import vivatech.init.VivatechEntities; @@ -64,10 +62,6 @@ public int size() { } }; - public CrusherEntity(MachineTier tier) { - super(VivatechEntities.CRUSHER, tier); - } - public CrusherEntity() { super(VivatechEntities.CRUSHER); } @@ -85,12 +79,14 @@ protected boolean canExtractEnergy() { @Override protected void serverTick() { + MachineTier tier = getMachineTier(); + if (canRun()) { crushTime++; - if (crushTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int)TIER.getSpeedMultiplier(), Simulation.ACTION); + if (crushTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int)tier.getSpeedMultiplier(), Simulation.ACTION); if (crushTimeTotal == 0) { crushTimeTotal = (int) (world.getRecipeManager().getFirstMatch(VivatechRecipes.CRUSHING, this, world) - .map(CrushingRecipe::getProcessTime).orElse(200) / TIER.getSpeedMultiplier()); + .map(CrushingRecipe::getProcessTime).orElse(200) / tier.getSpeedMultiplier()); } setBlockActive(true); if (crushTime >= crushTimeTotal) { @@ -110,7 +106,7 @@ protected void serverTick() { public ItemStack getOutputStack() { if (!inventory.get(0).isEmpty()) { - Recipe recipe = world.getRecipeManager().getFirstMatch(VivatechRecipes.CRUSHING, this, world).orElse(null); + CrushingRecipe recipe = world.getRecipeManager().getFirstMatch(VivatechRecipes.CRUSHING, this, world).orElse(null); return recipe != null ? recipe.getOutput().copy() : ItemStack.EMPTY; } diff --git a/src/main/java/vivatech/entity/ElectricFurnaceEntity.java b/src/main/java/vivatech/entity/ElectricFurnaceEntity.java index 1945d68..ce0354d 100644 --- a/src/main/java/vivatech/entity/ElectricFurnaceEntity.java +++ b/src/main/java/vivatech/entity/ElectricFurnaceEntity.java @@ -9,6 +9,7 @@ import net.minecraft.recipe.AbstractCookingRecipe; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeType; +import net.minecraft.recipe.SmeltingRecipe; import net.minecraft.util.math.Direction; import vivatech.Vivatech; import vivatech.init.VivatechEntities; @@ -62,10 +63,6 @@ public int size() { } }; - public ElectricFurnaceEntity(MachineTier tier) { - super(VivatechEntities.ELECTRIC_FURNACE, tier); - } - public ElectricFurnaceEntity() { super(VivatechEntities.ELECTRIC_FURNACE); } @@ -83,12 +80,14 @@ protected boolean canExtractEnergy() { @Override protected void serverTick() { + MachineTier tier = getMachineTier(); + if (canRun()) { cookTime++; - if (cookTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int)TIER.getSpeedMultiplier(), Simulation.ACTION); + if (cookTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int)tier.getSpeedMultiplier(), Simulation.ACTION); if (cookTimeTotal == 0) { cookTimeTotal = (int) (world.getRecipeManager().getFirstMatch(RecipeType.SMELTING, this, world) - .map(AbstractCookingRecipe::getCookTime).orElse(200) / (2 * (TIER.getSpeedMultiplier() + 0.5F))); + .map(AbstractCookingRecipe::getCookTime).orElse(200) / (2 * (tier.getSpeedMultiplier() + 0.5F))); } setBlockActive(true); if (cookTime >= cookTimeTotal) { @@ -108,7 +107,7 @@ protected void serverTick() { public ItemStack getOutputStack() { if (!inventory.get(0).isEmpty()) { - Recipe recipe = world.getRecipeManager().getFirstMatch(RecipeType.SMELTING, this, world).orElse(null); + SmeltingRecipe recipe = world.getRecipeManager().getFirstMatch(RecipeType.SMELTING, this, world).orElse(null); return recipe != null ? recipe.getOutput().copy() : ItemStack.EMPTY; } @@ -120,7 +119,7 @@ public boolean canRun() { if (inventory.get(0).isEmpty() || output.isEmpty() || inventory.get(1).getAmount() > 64 - || energy.getCurrentEnergy() < CONSUME_PER_TICK * TIER.getSpeedMultiplier()) { + || energy.getCurrentEnergy() < CONSUME_PER_TICK * getMachineTier().getSpeedMultiplier()) { return false; } else if (!inventory.get(1).isEmpty()) { return output.getItem() == inventory.get(1).getItem(); diff --git a/src/main/java/vivatech/entity/PressEntity.java b/src/main/java/vivatech/entity/PressEntity.java index 5e577d8..451378d 100644 --- a/src/main/java/vivatech/entity/PressEntity.java +++ b/src/main/java/vivatech/entity/PressEntity.java @@ -6,7 +6,6 @@ import net.minecraft.container.PropertyDelegate; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; -import net.minecraft.recipe.Recipe; import net.minecraft.util.math.Direction; import vivatech.Vivatech; import vivatech.init.VivatechEntities; @@ -62,10 +61,6 @@ public int size() { return 4; } }; - - public PressEntity(MachineTier tier) { - super(VivatechEntities.PRESS, tier); - } public PressEntity() { super(VivatechEntities.PRESS); @@ -84,12 +79,14 @@ protected boolean canExtractEnergy() { @Override protected void serverTick() { + MachineTier tier = getMachineTier(); + if (canRun()) { pressTime++; - if (pressTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int) TIER.getSpeedMultiplier(), Simulation.ACTION); + if (pressTime % TICK_PER_CONSUME == 0) energy.extractEnergy(Vivatech.INFINITE_VOLTAGE, CONSUME_PER_TICK * (int)tier.getSpeedMultiplier(), Simulation.ACTION); if (pressTimeTotal == 0) { pressTimeTotal = (int) (world.getRecipeManager().getFirstMatch(VivatechRecipes.PRESSING, this, world) - .map(PressingRecipe::getProcessTime).orElse(200) / TIER.getSpeedMultiplier()); + .map(PressingRecipe::getProcessTime).orElse(200) / tier.getSpeedMultiplier()); } setBlockActive(true); if (pressTime >= pressTimeTotal) { @@ -109,7 +106,7 @@ protected void serverTick() { public ItemStack getOutputStack() { if (!inventory.get(0).isEmpty()) { - Recipe recipe = world.getRecipeManager().getFirstMatch(VivatechRecipes.PRESSING, this, world).orElse(null); + PressingRecipe recipe = world.getRecipeManager().getFirstMatch(VivatechRecipes.PRESSING, this, world).orElse(null); return recipe != null ? recipe.getOutput().copy() : ItemStack.EMPTY; } From 5a80f34e1665584bd2ff3202ef3f5d2a31294193 Mon Sep 17 00:00:00 2001 From: Falkreon Date: Sat, 15 Jun 2019 20:48:36 -0500 Subject: [PATCH 06/11] Fix loot tables, WP:BOLD recipe proposals --- .../{machine_chassis.json => light_machine_chassis.json} | 0 .../{electric_furnace.json => minimal_electric_furnace.json} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/main/resources/assets/vivatech/blockstates/{machine_chassis.json => light_machine_chassis.json} (100%) rename src/main/resources/data/vivatech/recipes/{electric_furnace.json => minimal_electric_furnace.json} (100%) diff --git a/src/main/resources/assets/vivatech/blockstates/machine_chassis.json b/src/main/resources/assets/vivatech/blockstates/light_machine_chassis.json similarity index 100% rename from src/main/resources/assets/vivatech/blockstates/machine_chassis.json rename to src/main/resources/assets/vivatech/blockstates/light_machine_chassis.json diff --git a/src/main/resources/data/vivatech/recipes/electric_furnace.json b/src/main/resources/data/vivatech/recipes/minimal_electric_furnace.json similarity index 100% rename from src/main/resources/data/vivatech/recipes/electric_furnace.json rename to src/main/resources/data/vivatech/recipes/minimal_electric_furnace.json From e4eb1126b2902ea8aef64c08ab8bc83406f90fbf Mon Sep 17 00:00:00 2001 From: Falkreon Date: Sat, 15 Jun 2019 20:49:34 -0500 Subject: [PATCH 07/11] rest of recipe and loot table fixes --- src/main/java/vivatech/Vivatech.java | 2 +- .../java/vivatech/init/VivatechBlocks.java | 19 +++++++++++--- .../java/vivatech/init/VivatechItems.java | 12 ++++++--- .../blockstates/heavy_machine_chassis.json | 5 ++++ .../blockstates/light_machine_chassis.json | 2 +- .../blockstates/regular_machine_chassis.json | 5 ++++ .../resources/assets/vivatech/lang/en_us.json | 11 +++++--- .../models/item/heavy_machine_chassis.json | 3 +++ .../models/item/light_machine_chassis.json | 3 +++ ...ssis.json => regular_machine_chassis.json} | 0 ...ric_furnace.json => advanced_crusher.json} | 2 +- .../blocks/advanced_electric_furnace.json | 19 ++++++++++++++ ...chine_chassis.json => advanced_press.json} | 2 +- .../blocks/light_machine_chassis.json | 19 ++++++++++++++ .../loot_tables/blocks/minimal_crusher.json | 19 ++++++++++++++ .../blocks/minimal_electric_furnace.json | 19 ++++++++++++++ .../blocks/{press.json => minimal_press.json} | 2 +- .../loot_tables/blocks/normal_crusher.json | 19 ++++++++++++++ .../blocks/normal_electric_furnace.json | 19 ++++++++++++++ .../{crusher.json => normal_press.json} | 2 +- .../vivatech/recipes/advanced_crusher.json | 19 ++++++++++++++ .../recipes/advanced_electric_furnace.json | 19 ++++++++++++++ .../data/vivatech/recipes/advanced_press.json | 19 ++++++++++++++ .../data/vivatech/recipes/coal_generator.json | 2 +- .../data/vivatech/recipes/crusher.json | 22 ---------------- .../data/vivatech/recipes/energy_bank.json | 2 +- .../recipes/heavy_machine_chassis.json | 19 ++++++++++++++ .../recipes/light_machine_chassis.json | 19 ++++++++++++++ .../vivatech/recipes/minimal_crusher.json | 19 ++++++++++++++ .../recipes/minimal_electric_furnace.json | 19 ++++---------- .../data/vivatech/recipes/minimal_press.json | 19 ++++++++++++++ .../data/vivatech/recipes/normal_crusher.json | 19 ++++++++++++++ .../recipes/normal_electric_furnace.json | 19 ++++++++++++++ .../data/vivatech/recipes/normal_press.json | 19 ++++++++++++++ .../data/vivatech/recipes/press.json | 25 ------------------- ...ssis.json => regular_machine_chassis.json} | 9 ++++--- 36 files changed, 370 insertions(+), 83 deletions(-) create mode 100644 src/main/resources/assets/vivatech/blockstates/heavy_machine_chassis.json create mode 100644 src/main/resources/assets/vivatech/blockstates/regular_machine_chassis.json create mode 100644 src/main/resources/assets/vivatech/models/item/heavy_machine_chassis.json create mode 100644 src/main/resources/assets/vivatech/models/item/light_machine_chassis.json rename src/main/resources/assets/vivatech/models/item/{machine_chassis.json => regular_machine_chassis.json} (100%) rename src/main/resources/data/vivatech/loot_tables/blocks/{electric_furnace.json => advanced_crusher.json} (85%) create mode 100644 src/main/resources/data/vivatech/loot_tables/blocks/advanced_electric_furnace.json rename src/main/resources/data/vivatech/loot_tables/blocks/{machine_chassis.json => advanced_press.json} (85%) create mode 100644 src/main/resources/data/vivatech/loot_tables/blocks/light_machine_chassis.json create mode 100644 src/main/resources/data/vivatech/loot_tables/blocks/minimal_crusher.json create mode 100644 src/main/resources/data/vivatech/loot_tables/blocks/minimal_electric_furnace.json rename src/main/resources/data/vivatech/loot_tables/blocks/{press.json => minimal_press.json} (86%) create mode 100644 src/main/resources/data/vivatech/loot_tables/blocks/normal_crusher.json create mode 100644 src/main/resources/data/vivatech/loot_tables/blocks/normal_electric_furnace.json rename src/main/resources/data/vivatech/loot_tables/blocks/{crusher.json => normal_press.json} (86%) create mode 100644 src/main/resources/data/vivatech/recipes/advanced_crusher.json create mode 100644 src/main/resources/data/vivatech/recipes/advanced_electric_furnace.json create mode 100644 src/main/resources/data/vivatech/recipes/advanced_press.json delete mode 100644 src/main/resources/data/vivatech/recipes/crusher.json create mode 100644 src/main/resources/data/vivatech/recipes/heavy_machine_chassis.json create mode 100644 src/main/resources/data/vivatech/recipes/light_machine_chassis.json create mode 100644 src/main/resources/data/vivatech/recipes/minimal_crusher.json create mode 100644 src/main/resources/data/vivatech/recipes/minimal_press.json create mode 100644 src/main/resources/data/vivatech/recipes/normal_crusher.json create mode 100644 src/main/resources/data/vivatech/recipes/normal_electric_furnace.json create mode 100644 src/main/resources/data/vivatech/recipes/normal_press.json delete mode 100644 src/main/resources/data/vivatech/recipes/press.json rename src/main/resources/data/vivatech/recipes/{machine_chassis.json => regular_machine_chassis.json} (50%) diff --git a/src/main/java/vivatech/Vivatech.java b/src/main/java/vivatech/Vivatech.java index 223c3f8..50fdc73 100644 --- a/src/main/java/vivatech/Vivatech.java +++ b/src/main/java/vivatech/Vivatech.java @@ -25,7 +25,7 @@ public class Vivatech implements ModInitializer { public static final String MODID = "vivatech"; public static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build(new Identifier(MODID, "item_group"), - () -> new ItemStack(VivatechItems.MACHINE_CHASSIS)); + () -> new ItemStack(VivatechItems.REGULAR_MACHINE_CHASSIS)); public static final Item.Settings ITEM_SETTINGS = new Item.Settings().itemGroup(ITEM_GROUP); public static final Block.Settings METALLIC_BLOCK_SETTINGS = FabricBlockSettings.copy(Blocks.IRON_BLOCK).build(); public static final Block.Settings MACHINE_BLOCK_SETTINGS = FabricBlockSettings.copy(Blocks.IRON_BLOCK).build(); diff --git a/src/main/java/vivatech/init/VivatechBlocks.java b/src/main/java/vivatech/init/VivatechBlocks.java index d8392cb..f586e0e 100644 --- a/src/main/java/vivatech/init/VivatechBlocks.java +++ b/src/main/java/vivatech/init/VivatechBlocks.java @@ -2,7 +2,10 @@ import com.google.common.collect.ImmutableList; + +import net.fabricmc.fabric.api.block.FabricBlockSettings; import net.minecraft.block.Block; +import net.minecraft.block.Blocks; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import vivatech.Vivatech; @@ -15,9 +18,13 @@ import vivatech.util.TierHelper; public class VivatechBlocks { - public static final Identifier MACHINE_CHASSIS_ID = new Identifier(Vivatech.MODID, "machine_chassis"); + public static final Identifier LIGHT_MACHINE_CHASSIS_ID = new Identifier(Vivatech.MODID, "light_machine_chassis"); + public static final Identifier REGULAR_MACHINE_CHASSIS_ID = new Identifier(Vivatech.MODID, "regular_machine_chassis"); + public static final Identifier HEAVY_MACHINE_CHASSIS_ID = new Identifier(Vivatech.MODID, "heavy_machine_chassis"); - public static final Block MACHINE_CHASSIS; + public static final Block LIGHT_MACHINE_CHASSIS; + public static final Block REGULAR_MACHINE_CHASSIS; + public static final Block HEAVY_MACHINE_CHASSIS; public static final EnergyConduitBlock ENERGY_CONDUIT; public static final CoalGeneratorBlock COAL_GENERATOR; public static final ImmutableList CRUSHER; @@ -26,7 +33,9 @@ public class VivatechBlocks { public static final ImmutableList PRESS; static { - MACHINE_CHASSIS = new Block(Vivatech.METALLIC_BLOCK_SETTINGS); + LIGHT_MACHINE_CHASSIS = new Block(FabricBlockSettings.copy(Blocks.STONE).build()); + REGULAR_MACHINE_CHASSIS = new Block(FabricBlockSettings.copy(Blocks.IRON_BLOCK).build()); + HEAVY_MACHINE_CHASSIS = new Block(FabricBlockSettings.copy(Blocks.IRON_BLOCK).hardness(7f).resistance(10f).build()); ENERGY_CONDUIT = new EnergyConduitBlock(); COAL_GENERATOR = new CoalGeneratorBlock(); ENERGY_BANK = new EnergyBankBlock(); @@ -37,7 +46,9 @@ public class VivatechBlocks { } public static void initialize() { - Registry.register(Registry.BLOCK, MACHINE_CHASSIS_ID, MACHINE_CHASSIS); + Registry.register(Registry.BLOCK, LIGHT_MACHINE_CHASSIS_ID, LIGHT_MACHINE_CHASSIS); + Registry.register(Registry.BLOCK, REGULAR_MACHINE_CHASSIS_ID, REGULAR_MACHINE_CHASSIS); + Registry.register(Registry.BLOCK, HEAVY_MACHINE_CHASSIS_ID, HEAVY_MACHINE_CHASSIS); Registry.register(Registry.BLOCK, EnergyConduitBlock.ID, ENERGY_CONDUIT); Registry.register(Registry.BLOCK, CoalGeneratorBlock.ID, COAL_GENERATOR); Registry.register(Registry.BLOCK, EnergyBankBlock.ID, ENERGY_BANK); diff --git a/src/main/java/vivatech/init/VivatechItems.java b/src/main/java/vivatech/init/VivatechItems.java index d724742..17a99c1 100644 --- a/src/main/java/vivatech/init/VivatechItems.java +++ b/src/main/java/vivatech/init/VivatechItems.java @@ -11,7 +11,9 @@ import vivatech.util.TierHelper; public class VivatechItems { - public static final Item MACHINE_CHASSIS; + public static final Item LIGHT_MACHINE_CHASSIS; + public static final Item REGULAR_MACHINE_CHASSIS; + public static final Item HEAVY_MACHINE_CHASSIS; public static final Item ENERGY_CONDUIT; public static final Item COAL_GENERATOR; public static final Item[] CRUSHER; @@ -21,7 +23,9 @@ public class VivatechItems { public static final Item BATTERY; static { - MACHINE_CHASSIS = new BlockItem(VivatechBlocks.MACHINE_CHASSIS, Vivatech.ITEM_SETTINGS); + LIGHT_MACHINE_CHASSIS = new BlockItem(VivatechBlocks.LIGHT_MACHINE_CHASSIS, Vivatech.ITEM_SETTINGS); + REGULAR_MACHINE_CHASSIS = new BlockItem(VivatechBlocks.REGULAR_MACHINE_CHASSIS, Vivatech.ITEM_SETTINGS); + HEAVY_MACHINE_CHASSIS = new BlockItem(VivatechBlocks.HEAVY_MACHINE_CHASSIS, Vivatech.ITEM_SETTINGS); ENERGY_CONDUIT = new BlockItem(VivatechBlocks.ENERGY_CONDUIT, Vivatech.ITEM_SETTINGS); COAL_GENERATOR = new BlockItem(VivatechBlocks.COAL_GENERATOR, Vivatech.ITEM_SETTINGS); ENERGY_BANK = new BlockItem(VivatechBlocks.ENERGY_BANK, Vivatech.ITEM_SETTINGS); @@ -33,7 +37,9 @@ public class VivatechItems { } public static void initialize() { - Registry.register(Registry.ITEM, VivatechBlocks.MACHINE_CHASSIS_ID, MACHINE_CHASSIS); + Registry.register(Registry.ITEM, VivatechBlocks.LIGHT_MACHINE_CHASSIS_ID, LIGHT_MACHINE_CHASSIS); + Registry.register(Registry.ITEM, VivatechBlocks.REGULAR_MACHINE_CHASSIS_ID, REGULAR_MACHINE_CHASSIS); + Registry.register(Registry.ITEM, VivatechBlocks.HEAVY_MACHINE_CHASSIS_ID, HEAVY_MACHINE_CHASSIS); Registry.register(Registry.ITEM, EnergyConduitBlock.ID, ENERGY_CONDUIT); Registry.register(Registry.ITEM, CoalGeneratorBlock.ID, COAL_GENERATOR); Registry.register(Registry.ITEM, EnergyBankBlock.ID, ENERGY_BANK); diff --git a/src/main/resources/assets/vivatech/blockstates/heavy_machine_chassis.json b/src/main/resources/assets/vivatech/blockstates/heavy_machine_chassis.json new file mode 100644 index 0000000..e1b9b1d --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/heavy_machine_chassis.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "vivatech:block/advanced_machine_chassis" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/light_machine_chassis.json b/src/main/resources/assets/vivatech/blockstates/light_machine_chassis.json index d628a45..652e8d2 100644 --- a/src/main/resources/assets/vivatech/blockstates/light_machine_chassis.json +++ b/src/main/resources/assets/vivatech/blockstates/light_machine_chassis.json @@ -1,5 +1,5 @@ { "variants": { - "": { "model": "vivatech:block/normal_machine_chassis" } + "": { "model": "vivatech:block/minimal_machine_chassis" } } } \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/blockstates/regular_machine_chassis.json b/src/main/resources/assets/vivatech/blockstates/regular_machine_chassis.json new file mode 100644 index 0000000..d628a45 --- /dev/null +++ b/src/main/resources/assets/vivatech/blockstates/regular_machine_chassis.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "vivatech:block/normal_machine_chassis" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/lang/en_us.json b/src/main/resources/assets/vivatech/lang/en_us.json index a1c3b26..c2c0ce5 100644 --- a/src/main/resources/assets/vivatech/lang/en_us.json +++ b/src/main/resources/assets/vivatech/lang/en_us.json @@ -2,18 +2,21 @@ "itemGroup.vivatech.item_group": "Vivatech", "info.vivatech.energy": "%d J", "info.vivatech.energy_with_max": "%d/%d J", - "block.vivatech.machine_chassis": "Machine Chassis", "block.vivatech.energy_conduit": "Energy Conduit", "block.vivatech.coal_generator": "Coal Generator", + + "block.vivatech.light_machine_chassis" : "Light Machine Chassis", + "block.vivatech.regular_machine_chassis": "Regular Machine Chassis", + "block.vivatech.heavy_machine_chassis" : "Heavy Machine Chassis", "block.vivatech.crusher": "Crusher", "block.vivatech.electric_furnace": "Electric Furnace", "block.vivatech.press": "Press", "block.vivatech.energy_bank": "Energy Bank", - "item.vivatech.battery": "Battery", - "gui.vivatech.crushing": "Crushing", - "gui.vivatech.pressing": "Pressing", + "item.vivatech.battery" : "Battery", + "gui.vivatech.crushing" : "Crushing", + "gui.vivatech.pressing" : "Pressing", "machine_tier.tier" : "Tier: %s", "machine_tier.minimal" : "Minimal", diff --git a/src/main/resources/assets/vivatech/models/item/heavy_machine_chassis.json b/src/main/resources/assets/vivatech/models/item/heavy_machine_chassis.json new file mode 100644 index 0000000..33b0e8d --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/heavy_machine_chassis.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/advanced_machine_chassis" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/light_machine_chassis.json b/src/main/resources/assets/vivatech/models/item/light_machine_chassis.json new file mode 100644 index 0000000..7907589 --- /dev/null +++ b/src/main/resources/assets/vivatech/models/item/light_machine_chassis.json @@ -0,0 +1,3 @@ +{ + "parent": "vivatech:block/minimal_machine_chassis" +} \ No newline at end of file diff --git a/src/main/resources/assets/vivatech/models/item/machine_chassis.json b/src/main/resources/assets/vivatech/models/item/regular_machine_chassis.json similarity index 100% rename from src/main/resources/assets/vivatech/models/item/machine_chassis.json rename to src/main/resources/assets/vivatech/models/item/regular_machine_chassis.json diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/electric_furnace.json b/src/main/resources/data/vivatech/loot_tables/blocks/advanced_crusher.json similarity index 85% rename from src/main/resources/data/vivatech/loot_tables/blocks/electric_furnace.json rename to src/main/resources/data/vivatech/loot_tables/blocks/advanced_crusher.json index b003c81..972155b 100644 --- a/src/main/resources/data/vivatech/loot_tables/blocks/electric_furnace.json +++ b/src/main/resources/data/vivatech/loot_tables/blocks/advanced_crusher.json @@ -5,7 +5,7 @@ "entries": [ { "type": "minecraft:item", - "name": "vivatech:electric_furnace" + "name": "vivatech:advanced_crusher" } ], "conditions": [ diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/advanced_electric_furnace.json b/src/main/resources/data/vivatech/loot_tables/blocks/advanced_electric_furnace.json new file mode 100644 index 0000000..739743a --- /dev/null +++ b/src/main/resources/data/vivatech/loot_tables/blocks/advanced_electric_furnace.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "vivatech:advanced_electric_furnace" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "type": "minecraft:block" +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/machine_chassis.json b/src/main/resources/data/vivatech/loot_tables/blocks/advanced_press.json similarity index 85% rename from src/main/resources/data/vivatech/loot_tables/blocks/machine_chassis.json rename to src/main/resources/data/vivatech/loot_tables/blocks/advanced_press.json index 0c234e7..c8a1a31 100644 --- a/src/main/resources/data/vivatech/loot_tables/blocks/machine_chassis.json +++ b/src/main/resources/data/vivatech/loot_tables/blocks/advanced_press.json @@ -5,7 +5,7 @@ "entries": [ { "type": "minecraft:item", - "name": "vivatech:machine_chassis" + "name": "vivatech:advanced_press" } ], "conditions": [ diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/light_machine_chassis.json b/src/main/resources/data/vivatech/loot_tables/blocks/light_machine_chassis.json new file mode 100644 index 0000000..32514a2 --- /dev/null +++ b/src/main/resources/data/vivatech/loot_tables/blocks/light_machine_chassis.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "vivatech:light_machine_chassis" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "type": "minecraft:block" +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/minimal_crusher.json b/src/main/resources/data/vivatech/loot_tables/blocks/minimal_crusher.json new file mode 100644 index 0000000..d5ad34c --- /dev/null +++ b/src/main/resources/data/vivatech/loot_tables/blocks/minimal_crusher.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "vivatech:minimal_crusher" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "type": "minecraft:block" +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/minimal_electric_furnace.json b/src/main/resources/data/vivatech/loot_tables/blocks/minimal_electric_furnace.json new file mode 100644 index 0000000..ae8d2d8 --- /dev/null +++ b/src/main/resources/data/vivatech/loot_tables/blocks/minimal_electric_furnace.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "vivatech:minimal_electric_furnace" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "type": "minecraft:block" +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/press.json b/src/main/resources/data/vivatech/loot_tables/blocks/minimal_press.json similarity index 86% rename from src/main/resources/data/vivatech/loot_tables/blocks/press.json rename to src/main/resources/data/vivatech/loot_tables/blocks/minimal_press.json index e320d54..a6774e4 100644 --- a/src/main/resources/data/vivatech/loot_tables/blocks/press.json +++ b/src/main/resources/data/vivatech/loot_tables/blocks/minimal_press.json @@ -5,7 +5,7 @@ "entries": [ { "type": "minecraft:item", - "name": "vivatech:press" + "name": "vivatech:minimal_press" } ], "conditions": [ diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/normal_crusher.json b/src/main/resources/data/vivatech/loot_tables/blocks/normal_crusher.json new file mode 100644 index 0000000..82b7244 --- /dev/null +++ b/src/main/resources/data/vivatech/loot_tables/blocks/normal_crusher.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "vivatech:normal_crusher" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "type": "minecraft:block" +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/normal_electric_furnace.json b/src/main/resources/data/vivatech/loot_tables/blocks/normal_electric_furnace.json new file mode 100644 index 0000000..af9c683 --- /dev/null +++ b/src/main/resources/data/vivatech/loot_tables/blocks/normal_electric_furnace.json @@ -0,0 +1,19 @@ +{ + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "vivatech:normal_electric_furnace" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "type": "minecraft:block" +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/loot_tables/blocks/crusher.json b/src/main/resources/data/vivatech/loot_tables/blocks/normal_press.json similarity index 86% rename from src/main/resources/data/vivatech/loot_tables/blocks/crusher.json rename to src/main/resources/data/vivatech/loot_tables/blocks/normal_press.json index cd43d59..92275e4 100644 --- a/src/main/resources/data/vivatech/loot_tables/blocks/crusher.json +++ b/src/main/resources/data/vivatech/loot_tables/blocks/normal_press.json @@ -5,7 +5,7 @@ "entries": [ { "type": "minecraft:item", - "name": "vivatech:crusher" + "name": "vivatech:normal_press" } ], "conditions": [ diff --git a/src/main/resources/data/vivatech/recipes/advanced_crusher.json b/src/main/resources/data/vivatech/recipes/advanced_crusher.json new file mode 100644 index 0000000..331ad12 --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/advanced_crusher.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": ["A", "B", "C"], + "key": { + "A": { + "item": "vivatech:heavy_machine_chassis" + }, + "B": { + "item": "vivatech:normal_crusher" + }, + "C": { + "item": "vivatech:battery" + } + }, + "result": { + "item": "vivatech:advanced_crusher" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/advanced_electric_furnace.json b/src/main/resources/data/vivatech/recipes/advanced_electric_furnace.json new file mode 100644 index 0000000..415f9ed --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/advanced_electric_furnace.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": ["A", "B", "C"], + "key": { + "A": { + "item": "vivatech:heavy_machine_chassis" + }, + "B": { + "item": "vivatech:normal_electric_furnace" + }, + "C": { + "item": "vivatech:battery" + } + }, + "result": { + "item": "vivatech:advanced_electric_furnace" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/advanced_press.json b/src/main/resources/data/vivatech/recipes/advanced_press.json new file mode 100644 index 0000000..04ddd8d --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/advanced_press.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": ["A", "B", "C"], + "key": { + "A": { + "item": "vivatech:heavy_machine_chassis" + }, + "B": { + "item": "vivatech:normal_press" + }, + "C": { + "item": "vivatech:battery" + } + }, + "result": { + "item": "vivatech:advanced_press" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/coal_generator.json b/src/main/resources/data/vivatech/recipes/coal_generator.json index 2564814..2556529 100644 --- a/src/main/resources/data/vivatech/recipes/coal_generator.json +++ b/src/main/resources/data/vivatech/recipes/coal_generator.json @@ -7,7 +7,7 @@ "item": "minecraft:furnace" }, "B": { - "item": "vivatech:machine_chassis" + "item": "vivatech:light_machine_chassis" }, "C": { "item": "minecraft:redstone" diff --git a/src/main/resources/data/vivatech/recipes/crusher.json b/src/main/resources/data/vivatech/recipes/crusher.json deleted file mode 100644 index adb466d..0000000 --- a/src/main/resources/data/vivatech/recipes/crusher.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "vivatech", - "pattern": ["AAA", "ABA", "CDC"], - "key": { - "A": { - "item": "minecraft:flint" - }, - "B": { - "item": "vivatech:machine_chassis" - }, - "C": { - "item": "minecraft:redstone" - }, - "D": { - "tag": "c:cobalt_nugget" - } - }, - "result": { - "item": "vivatech:crusher" - } -} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/energy_bank.json b/src/main/resources/data/vivatech/recipes/energy_bank.json index bcc418a..ad3dba2 100644 --- a/src/main/resources/data/vivatech/recipes/energy_bank.json +++ b/src/main/resources/data/vivatech/recipes/energy_bank.json @@ -10,7 +10,7 @@ "tag": "c:cobalt_plate" }, "C": { - "item": "vivatech:machine_chassis" + "item": "vivatech:light_machine_chassis" }, "D": { "tag": "c:gold_plate" diff --git a/src/main/resources/data/vivatech/recipes/heavy_machine_chassis.json b/src/main/resources/data/vivatech/recipes/heavy_machine_chassis.json new file mode 100644 index 0000000..f2cb337 --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/heavy_machine_chassis.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": ["CAC", "ABA", "CAC"], + "key": { + "A": { + "tag": "c:steel_plate" + }, + "B": { + "tag": "c:tungsten_gear" + }, + "C": { + "item": "minecraft:gold_ingot" + } + }, + "result": { + "item": "vivatech:heavy_machine_chassis" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/light_machine_chassis.json b/src/main/resources/data/vivatech/recipes/light_machine_chassis.json new file mode 100644 index 0000000..86daefc --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/light_machine_chassis.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": ["CAC", "ABA", "CAC"], + "key": { + "A": { + "item": "minecraft:glass_pane" + }, + "B": { + "tag": "c:iron_gear" + }, + "C": { + "item": "minecraft:brick" + } + }, + "result": { + "item": "vivatech:light_machine_chassis" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/minimal_crusher.json b/src/main/resources/data/vivatech/recipes/minimal_crusher.json new file mode 100644 index 0000000..e394e36 --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/minimal_crusher.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": [" A ", "BBB", " C "], + "key": { + "A": { + "item": "vivatech:light_machine_chassis" + }, + "B": { + "item": "minecraft:flint" + }, + "C": { + "item": "vivatech:battery" + } + }, + "result": { + "item": "vivatech:minimal_crusher" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/minimal_electric_furnace.json b/src/main/resources/data/vivatech/recipes/minimal_electric_furnace.json index 87d2358..19074f7 100644 --- a/src/main/resources/data/vivatech/recipes/minimal_electric_furnace.json +++ b/src/main/resources/data/vivatech/recipes/minimal_electric_furnace.json @@ -1,28 +1,19 @@ { "type": "minecraft:crafting_shaped", "group": "vivatech", - "pattern": ["AAA", "BCD", "EFE"], + "pattern": ["A", "B", "C"], "key": { "A": { - "tag": "c:copper_ingot" + "item": "vivatech:light_machine_chassis" }, "B": { - "item": "minecraft:smoker" + "item": "minecraft:furnace" }, "C": { - "item": "vivatech:machine_chassis" - }, - "D": { - "item": "minecraft:blast_furnace" - }, - "E": { - "item": "minecraft:redstone" - }, - "F": { - "tag": "c:cobalt_nugget" + "item": "vivatech:battery" } }, "result": { - "item": "vivatech:electric_furnace" + "item": "vivatech:minimal_electric_furnace" } } \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/minimal_press.json b/src/main/resources/data/vivatech/recipes/minimal_press.json new file mode 100644 index 0000000..c41f16a --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/minimal_press.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": [" A ", "BBB", " C "], + "key": { + "A": { + "item": "vivatech:light_machine_chassis" + }, + "B": { + "item": "minecraft:obsidian" + }, + "C": { + "item": "vivatech:battery" + } + }, + "result": { + "item": "vivatech:minimal_press" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/normal_crusher.json b/src/main/resources/data/vivatech/recipes/normal_crusher.json new file mode 100644 index 0000000..4806210 --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/normal_crusher.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": ["A", "B", "C"], + "key": { + "A": { + "item": "vivatech:regular_machine_chassis" + }, + "B": { + "item": "vivatech:minimal_crusher" + }, + "C": { + "item": "vivatech:battery" + } + }, + "result": { + "item": "vivatech:normal_crusher" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/normal_electric_furnace.json b/src/main/resources/data/vivatech/recipes/normal_electric_furnace.json new file mode 100644 index 0000000..18a88c1 --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/normal_electric_furnace.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": ["A", "B", "C"], + "key": { + "A": { + "item": "vivatech:regular_machine_chassis" + }, + "B": { + "item": "vivatech:minimal_electric_furnace" + }, + "C": { + "item": "vivatech:battery" + } + }, + "result": { + "item": "vivatech:normal_electric_furnace" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/normal_press.json b/src/main/resources/data/vivatech/recipes/normal_press.json new file mode 100644 index 0000000..e8cad08 --- /dev/null +++ b/src/main/resources/data/vivatech/recipes/normal_press.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "vivatech", + "pattern": ["A", "B", "C"], + "key": { + "A": { + "item": "vivatech:regular_machine_chassis" + }, + "B": { + "item": "vivatech:minimal_press" + }, + "C": { + "item": "vivatech:battery" + } + }, + "result": { + "item": "vivatech:normal_press" + } +} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/press.json b/src/main/resources/data/vivatech/recipes/press.json deleted file mode 100644 index fe11b21..0000000 --- a/src/main/resources/data/vivatech/recipes/press.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "group": "vivatech", - "pattern": ["AAA", "BCB", "DED"], - "key": { - "A": { - "tag": "c:copper_nugget" - }, - "B": { - "item": "minecraft:obsidian" - }, - "C": { - "item": "vivatech:machine_chassis" - }, - "D": { - "item": "minecraft:redstone" - }, - "E": { - "tag": "c:cobalt_nugget" - } - }, - "result": { - "item": "vivatech:press" - } -} \ No newline at end of file diff --git a/src/main/resources/data/vivatech/recipes/machine_chassis.json b/src/main/resources/data/vivatech/recipes/regular_machine_chassis.json similarity index 50% rename from src/main/resources/data/vivatech/recipes/machine_chassis.json rename to src/main/resources/data/vivatech/recipes/regular_machine_chassis.json index 65b9f3a..462bace 100644 --- a/src/main/resources/data/vivatech/recipes/machine_chassis.json +++ b/src/main/resources/data/vivatech/recipes/regular_machine_chassis.json @@ -1,16 +1,19 @@ { "type": "minecraft:crafting_shaped", "group": "vivatech", - "pattern": [" A ", "ABA", " A "], + "pattern": ["CAC", "ABA", "CAC"], "key": { "A": { "tag": "c:iron_plate" }, "B": { - "tag": "c:cobalt_plate" + "tag": "c:cobalt_gear" + }, + "C": { + "tag": "c:steel_ingot" } }, "result": { - "item": "vivatech:machine_chassis" + "item": "vivatech:regular_machine_chassis" } } \ No newline at end of file From c6a352a9c9a398f5b4ce4825a366754c778fea60 Mon Sep 17 00:00:00 2001 From: Falkreon Date: Sat, 15 Jun 2019 21:05:21 -0500 Subject: [PATCH 08/11] Battery texture --- .../assets/vivatech/textures/item/battery.png | Bin 399 -> 517 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/vivatech/textures/item/battery.png b/src/main/resources/assets/vivatech/textures/item/battery.png index 460325488752257d8bb463880685a92a56cd7a7b..34e7a6e467f2c920b250e43b9e55378f2d7e98ff 100644 GIT binary patch delta 492 zcmVTBYy$RNkls1s{T zz+q|!nMm;!ocILd$R}{(tfQESB^B)?lqOp6ha^bJO>PoWu%-E1PE4rUdv(Er!(s2m z+3T!rB;kh#n-KxLe06U8YUcjDFp;NX1i9@7FP=Z*d;J-Kkbg8|E|*jG$!A@^_eqt* zLmeL^bbOG|MJkOKoc`BF7lBE0V>k1Tjn9ZuwZcCC% zrIPkbCDm#*Nm8%dRj=36=ElZfBBALhp->2nq1)+@N~O4&N}=6dz8OO|8f82j5(1v=Qsf5t5pWTN<7YFGVvF4mw3eh0000G1djudBYyw{XF*Lt006O%3;baP00009a7bBm000ic000ic0Tn1pfB*mh z7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%hhNHvLWs=l}o#4M{{nR5(waQrQZ^Kn$$M zANao(&-b<vZT7Msc9Pd&a%u1fIle!@|jB~#%-~n zcs{2zO(_V1?*g!lsRwS{&1Q0Lm%q%iRntlqbW3hYu1ZjVZ-wts3Ke` TpIh8g00000NkvXXu0mjf$JCX= From 2ebb740500bd4f3ba234a3006ed0c9bba96a575d Mon Sep 17 00:00:00 2001 From: Falkreon Date: Sat, 15 Jun 2019 21:23:35 -0500 Subject: [PATCH 09/11] Cleanup battery texture --- .../assets/vivatech/textures/item/battery.png | Bin 517 -> 386 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/vivatech/textures/item/battery.png b/src/main/resources/assets/vivatech/textures/item/battery.png index 34e7a6e467f2c920b250e43b9e55378f2d7e98ff..e8b247026bbfcd2c2991590db19b0d3f3f972c05 100644 GIT binary patch delta 359 zcmV-t0hs=U1cC#QB!5XsL_t(I%Z*b%OT$1MeUS>+C3Gn5<{*B6%ysZHRIb(0G5G)v z;wE+N2XN?GYN6m#rw(q_A%RY=kys4W;SM27;JGxR#^%q1gX8Y^9`ASedj?75;o`hb z0GP}oBe#g;p9L`>#DM*-p#Hk%``Z!wUBPT!vTD0xM*W^wH-DE{xG^4|fxC|fl;I%R zIF3U`w^+Dwdf7a75gk5ZGK3C#Pj)H1GVgd)*3)^DCgI24x*TMIAj7FnTKFZsFrc#Qp%OzK<6@A~& zodJ^nvmm9UQYsaaQs$CL!q}I_-Laicr$$j0jG{PK!7ol&6mVu;O5Okf002ovPDHLk FV1jD)sU`pb delta 491 zcmVTB!A3FL_t(I%Z-!GYEw}Zg};-OwxQlT2p2*eb-{weVeiG+ z>#S`g;fDvC5dpk>b#DA>=Kj1ek*8t=x$OoooQVFq3I~0Pza2n+v$)>rMQ_&q1|1+8ACT3Wjq`b3Wxno zltjDLV#%_I0)JnPAq;$o#TdFSH@e+_{DLtoSr!1rVvz@o9Ubwb-}e{r z+HGvx#%(rf)a$GQ3-LH_Jr973(^E!+fxp1~;^K4`u2~lEV=?eNRvm})YL!|d!BwIA zEl9R)(>ysLnM^Y0H~{3URR+LHJkDe?@fWx_JDYjox@0b2em#8!sO9rGj)TVI;3VEk zrzJ`KeqV)rUT+EoeXLZ}YBrT#UJee@l$lIMUaKWZvqryWNtmmQxxKa~V+^CgfY*C_ hCTN#T&^rGQegcvuWEl*Xc*Ot!002ovPDHLkV1h<8>e~PS From 2eac06241b84aacf28fe005c002518629945b824 Mon Sep 17 00:00:00 2001 From: Falkreon Date: Sun, 16 Jun 2019 12:01:23 -0500 Subject: [PATCH 10/11] Add optional 'tier' key in machine recipes to set a minimum MachineTier --- .../java/vivatech/recipe/CrushingRecipe.java | 5 ++- .../java/vivatech/recipe/PressingRecipe.java | 5 ++- .../vivatech/recipe/ProcessingRecipe.java | 43 +++++++++++++------ src/main/java/vivatech/util/MachineTier.java | 19 +++++--- 4 files changed, 49 insertions(+), 23 deletions(-) diff --git a/src/main/java/vivatech/recipe/CrushingRecipe.java b/src/main/java/vivatech/recipe/CrushingRecipe.java index cc36463..2f377de 100644 --- a/src/main/java/vivatech/recipe/CrushingRecipe.java +++ b/src/main/java/vivatech/recipe/CrushingRecipe.java @@ -7,12 +7,13 @@ import net.minecraft.util.Identifier; import vivatech.Vivatech; import vivatech.init.VivatechRecipes; +import vivatech.util.MachineTier; public class CrushingRecipe extends ProcessingRecipe { public static final Identifier ID = new Identifier(Vivatech.MODID, "crushing"); - public CrushingRecipe(Identifier id, Ingredient input, ItemStack output, float exp, int processTime, Identifier bonusLootTable) { - super(id, input, output, exp, processTime, bonusLootTable); + public CrushingRecipe(Identifier id, Ingredient input, ItemStack output, MachineTier minTier, float exp, int processTime, Identifier bonusLootTable) { + super(id, input, output, minTier, exp, processTime, bonusLootTable); } @Override diff --git a/src/main/java/vivatech/recipe/PressingRecipe.java b/src/main/java/vivatech/recipe/PressingRecipe.java index daaf93f..a5c978e 100644 --- a/src/main/java/vivatech/recipe/PressingRecipe.java +++ b/src/main/java/vivatech/recipe/PressingRecipe.java @@ -7,12 +7,13 @@ import net.minecraft.util.Identifier; import vivatech.Vivatech; import vivatech.init.VivatechRecipes; +import vivatech.util.MachineTier; public class PressingRecipe extends ProcessingRecipe { public static final Identifier ID = new Identifier(Vivatech.MODID, "pressing"); - public PressingRecipe(Identifier id, Ingredient input, ItemStack output, float exp, int processTime, Identifier bonusLootTable) { - super(id, input, output, exp, processTime, bonusLootTable); + public PressingRecipe(Identifier id, Ingredient input, ItemStack output, MachineTier minTier, float exp, int processTime, Identifier bonusLootTable) { + super(id, input, output, minTier, exp, processTime, bonusLootTable); } @Override diff --git a/src/main/java/vivatech/recipe/ProcessingRecipe.java b/src/main/java/vivatech/recipe/ProcessingRecipe.java index d2d3d45..ff19641 100644 --- a/src/main/java/vivatech/recipe/ProcessingRecipe.java +++ b/src/main/java/vivatech/recipe/ProcessingRecipe.java @@ -13,11 +13,12 @@ import net.minecraft.world.World; import net.minecraft.world.loot.LootManager; import net.minecraft.world.loot.context.LootContext; +import vivatech.util.MachineTier; import java.util.Collections; import java.util.List; -import static net.minecraft.util.JsonHelper.*; +import net.minecraft.util.JsonHelper; /** * Implements a generic machine processing recipe with optional loot table for bonus items. @@ -29,6 +30,7 @@ * "ingredient": { * "item": "minecraft:iron_ore" * }, + * "tier": "minimal", * "processtime": 200, * "experience": 0.35, * "result": { @@ -45,14 +47,16 @@ public abstract class ProcessingRecipe implements Recipe { protected final Identifier id; protected final Ingredient input; protected final ItemStack output; + protected final MachineTier minTier; protected final float exp; protected final int processTime; protected final Identifier bonusLootTable; - public ProcessingRecipe(Identifier id, Ingredient input, ItemStack output, float exp, int processTime, Identifier bonusLootTable) { + public ProcessingRecipe(Identifier id, Ingredient input, ItemStack output, MachineTier minTier, float exp, int processTime, Identifier bonusLootTable) { this.id = id; this.input = input; this.output = output; + this.minTier = minTier; this.exp = exp; this.processTime = processTime; this.bonusLootTable = bonusLootTable; @@ -71,7 +75,11 @@ public Ingredient getInput() { public ItemStack getOutput() { return output; } - + + public MachineTier getMinTier() { + return minTier; + } + public float getExperience() { return exp; } @@ -112,7 +120,7 @@ public DefaultedList getPreviewInputs() { @FunctionalInterface public interface Factory { - R create(Identifier id, Ingredient input, ItemStack output, float exp, int processTime, Identifier bonusLootTable); + R create(Identifier id, Ingredient input, ItemStack output, MachineTier minTier, float exp, int processTime, Identifier bonusLootTable); } public static class Serializer implements RecipeSerializer { @@ -128,36 +136,45 @@ public Serializer(Factory factory, int defaultProcessTime) { @Override public R read(Identifier id, JsonObject jsonObject) { Ingredient input = Ingredient.fromJson( - hasArray(jsonObject, "ingredient") - ? getArray(jsonObject, "ingredient") - : getObject(jsonObject, "ingredient") + JsonHelper.hasArray(jsonObject, "ingredient") + ? JsonHelper.getArray(jsonObject, "ingredient") + : JsonHelper.getObject(jsonObject, "ingredient") ); - ItemStack output = ShapedRecipe.getItemStack(getObject(jsonObject, "result")); - float exp = getFloat(jsonObject, "experience", 0.0F); - int processTime = getInt(jsonObject, "processtime", this.defaultProcessTime); + ItemStack output = ShapedRecipe.getItemStack(JsonHelper.getObject(jsonObject, "result")); + + MachineTier minTier = JsonHelper.hasString(jsonObject, "tier") + ? MachineTier.forAffix(JsonHelper.getString(jsonObject, "tier")) + : MachineTier.MINIMAL; + + float exp = JsonHelper.getFloat(jsonObject, "experience", 0.0F); + int processTime = JsonHelper.getInt(jsonObject, "processtime", this.defaultProcessTime); - String bonusLoot = getString(jsonObject, "bonus", null); + String bonusLoot = JsonHelper.getString(jsonObject, "bonus", null); Identifier bonusLootId = bonusLoot == null ? null : new Identifier(bonusLoot); - return factory.create(id, input, output, exp, processTime, bonusLootId); + return factory.create(id, input, output, minTier, exp, processTime, bonusLootId); } @Override public R read(Identifier id, PacketByteBuf buffer) { Ingredient input = Ingredient.fromPacket(buffer); ItemStack output = buffer.readItemStack(); + MachineTier minTier = MachineTier.MINIMAL; + int tierInt = buffer.readByte(); + if (tierInt>=0 && tierInt Date: Sun, 16 Jun 2019 13:29:43 -0500 Subject: [PATCH 11/11] Display energy cost and tier when relevant in REI, cleanup localization --- .../block/AbstractTieredMachineBlock.java | 2 +- .../java/vivatech/entity/CrusherEntity.java | 4 +- .../entity/ElectricFurnaceEntity.java | 1 - .../java/vivatech/entity/PressEntity.java | 4 +- .../java/vivatech/recipe/CrushingRecipe.java | 6 ++ .../java/vivatech/recipe/PressingRecipe.java | 6 ++ .../vivatech/recipe/ProcessingRecipe.java | 4 ++ .../java/vivatech/rei/BaseRecipeCategory.java | 43 ++++++++++++--- .../java/vivatech/rei/CrushingDisplay.java | 40 +------------- .../java/vivatech/rei/PressingDisplay.java | 48 ++-------------- .../vivatech/rei/TieredMachineDisplay.java | 55 +++++++++++++++++++ .../java/vivatech/rei/widget/LabelWidget.java | 32 +++++++++++ .../resources/assets/vivatech/lang/en_us.json | 19 ++++--- 13 files changed, 163 insertions(+), 101 deletions(-) create mode 100644 src/main/java/vivatech/rei/TieredMachineDisplay.java create mode 100644 src/main/java/vivatech/rei/widget/LabelWidget.java diff --git a/src/main/java/vivatech/block/AbstractTieredMachineBlock.java b/src/main/java/vivatech/block/AbstractTieredMachineBlock.java index 5e3651a..d45dcdd 100644 --- a/src/main/java/vivatech/block/AbstractTieredMachineBlock.java +++ b/src/main/java/vivatech/block/AbstractTieredMachineBlock.java @@ -35,7 +35,7 @@ public String getTranslationKey() { @Override public void buildTooltip(ItemStack itemStack_1, BlockView blockView_1, List list_1, TooltipContext tooltipContext_1) { - Component tierLine = new TranslatableComponent("machine_tier.tier", new TranslatableComponent("machine_tier."+(tier.toString().toLowerCase()))); + Component tierLine = new TranslatableComponent("info.vivatech.tier", new TranslatableComponent("info.vivatech.tier."+(tier.toString().toLowerCase()))); tierLine.applyFormat(ChatFormat.GRAY); list_1.add(tierLine); diff --git a/src/main/java/vivatech/entity/CrusherEntity.java b/src/main/java/vivatech/entity/CrusherEntity.java index 7c4f1cd..bccb247 100644 --- a/src/main/java/vivatech/entity/CrusherEntity.java +++ b/src/main/java/vivatech/entity/CrusherEntity.java @@ -15,8 +15,8 @@ public class CrusherEntity extends AbstractTieredMachineEntity { - private static final int CONSUME_PER_TICK = 1; - private static final int TICK_PER_CONSUME = 5; + public static final int CONSUME_PER_TICK = 1; + public static final int TICK_PER_CONSUME = 5; private int crushTime = 0; private int crushTimeTotal = 0; private final PropertyDelegate propertyDelegate = new PropertyDelegate() { diff --git a/src/main/java/vivatech/entity/ElectricFurnaceEntity.java b/src/main/java/vivatech/entity/ElectricFurnaceEntity.java index ce0354d..5b9f4a3 100644 --- a/src/main/java/vivatech/entity/ElectricFurnaceEntity.java +++ b/src/main/java/vivatech/entity/ElectricFurnaceEntity.java @@ -7,7 +7,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.recipe.AbstractCookingRecipe; -import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeType; import net.minecraft.recipe.SmeltingRecipe; import net.minecraft.util.math.Direction; diff --git a/src/main/java/vivatech/entity/PressEntity.java b/src/main/java/vivatech/entity/PressEntity.java index 451378d..17706c3 100644 --- a/src/main/java/vivatech/entity/PressEntity.java +++ b/src/main/java/vivatech/entity/PressEntity.java @@ -15,8 +15,8 @@ public class PressEntity extends AbstractTieredMachineEntity { - private static final int TICK_PER_CONSUME = 5; - private static final int CONSUME_PER_TICK = 1; + public static final int TICK_PER_CONSUME = 5; + public static final int CONSUME_PER_TICK = 1; private int pressTime = 0; private int pressTimeTotal = 0; private final PropertyDelegate propertyDelegate = new PropertyDelegate() { diff --git a/src/main/java/vivatech/recipe/CrushingRecipe.java b/src/main/java/vivatech/recipe/CrushingRecipe.java index 2f377de..ce59e29 100644 --- a/src/main/java/vivatech/recipe/CrushingRecipe.java +++ b/src/main/java/vivatech/recipe/CrushingRecipe.java @@ -6,6 +6,7 @@ import net.minecraft.recipe.RecipeType; import net.minecraft.util.Identifier; import vivatech.Vivatech; +import vivatech.entity.CrusherEntity; import vivatech.init.VivatechRecipes; import vivatech.util.MachineTier; @@ -25,4 +26,9 @@ public RecipeType getType() { public RecipeSerializer getSerializer() { return VivatechRecipes.CRUSHING_SERIALIZER; } + + @Override + public int getEnergyCost() { + return (processTime / CrusherEntity.TICK_PER_CONSUME) * CrusherEntity.TICK_PER_CONSUME; + } } diff --git a/src/main/java/vivatech/recipe/PressingRecipe.java b/src/main/java/vivatech/recipe/PressingRecipe.java index a5c978e..c82d9a8 100644 --- a/src/main/java/vivatech/recipe/PressingRecipe.java +++ b/src/main/java/vivatech/recipe/PressingRecipe.java @@ -6,6 +6,7 @@ import net.minecraft.recipe.RecipeType; import net.minecraft.util.Identifier; import vivatech.Vivatech; +import vivatech.entity.PressEntity; import vivatech.init.VivatechRecipes; import vivatech.util.MachineTier; @@ -25,4 +26,9 @@ public RecipeSerializer getSerializer() { public RecipeType getType() { return VivatechRecipes.PRESSING; } + + @Override + public int getEnergyCost() { + return (processTime / PressEntity.TICK_PER_CONSUME) * PressEntity.TICK_PER_CONSUME; + } } diff --git a/src/main/java/vivatech/recipe/ProcessingRecipe.java b/src/main/java/vivatech/recipe/ProcessingRecipe.java index ff19641..5e8ff46 100644 --- a/src/main/java/vivatech/recipe/ProcessingRecipe.java +++ b/src/main/java/vivatech/recipe/ProcessingRecipe.java @@ -87,6 +87,10 @@ public float getExperience() { public int getProcessTime() { return processTime; } + + public int getEnergyCost() { + return 0; + } public Identifier getBonusLootTable() { return bonusLootTable; diff --git a/src/main/java/vivatech/rei/BaseRecipeCategory.java b/src/main/java/vivatech/rei/BaseRecipeCategory.java index 5cabab7..7659bd0 100644 --- a/src/main/java/vivatech/rei/BaseRecipeCategory.java +++ b/src/main/java/vivatech/rei/BaseRecipeCategory.java @@ -5,13 +5,20 @@ import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.gui.widget.Widget; +import net.minecraft.ChatFormat; import net.minecraft.client.resource.language.I18n; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.recipe.Recipe; import net.minecraft.util.Identifier; import vivatech.rei.widget.CottonSlotWidget; +import vivatech.rei.widget.LabelWidget; import vivatech.rei.widget.ProgressBarWidget; +import vivatech.util.MachineTier; import java.awt.Rectangle; +import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; @@ -39,12 +46,34 @@ public List setupDisplay(Supplier>> recipeDispla RecipeDisplay display = recipeDisplaySupplier.get(); int x = (int) bounds.getCenterX(); int y = (int) bounds.getCenterY() - 9; - - return ImmutableList.of( - new RecipeBaseWidget(bounds), - new ProgressBarWidget(x - 18 - 5, y, 40, 18, 200), - new CottonSlotWidget(x - 2 * 18 - 9, y, display.getInput().get(0), true, true), - CottonSlotWidget.createBig(x + 2 * 18 - 9, y, display.getOutput(), true, true) - ); + + MachineTier tier = MachineTier.MINIMAL; + int energyCost = 0; + if (display instanceof TieredMachineDisplay) { + tier = ((TieredMachineDisplay) display).getMinTier(); + energyCost = ((TieredMachineDisplay)display).getEnergyCost(); + } + + ArrayList widgets = new ArrayList<>(); + widgets.add(new RecipeBaseWidget(bounds)); + widgets.add(new ProgressBarWidget(x - 18 - 5, y, 40, 18, 200)); + widgets.add(new CottonSlotWidget(x - 2 * 18 - 9, y, display.getInput().get(0), true, true)); + widgets.add(CottonSlotWidget.createBig(x + 2 * 18 - 9, y, display.getOutput(), true, true)); + + if (energyCost!=0) { + Component energyComponent = new TranslatableComponent("info.vivatech.energy_cost", energyCost) + .applyFormat(ChatFormat.DARK_GRAY); + widgets.add(new LabelWidget(x - (2*18) - 7, y + (2*18), energyComponent)); + } + + if (tier!=MachineTier.MINIMAL) { + Component tierComponent = new TranslatableComponent("info.vivatech.tier", new TranslatableComponent("info.vivatech.tier."+tier.getAffix())) + .applyFormat(ChatFormat.DARK_GRAY); + widgets.add(new LabelWidget(x - (2*18) - 7, y + (3*18), tierComponent)); + } + + + + return ImmutableList.copyOf(widgets); } } diff --git a/src/main/java/vivatech/rei/CrushingDisplay.java b/src/main/java/vivatech/rei/CrushingDisplay.java index 1f1306b..e8c5ba6 100644 --- a/src/main/java/vivatech/rei/CrushingDisplay.java +++ b/src/main/java/vivatech/rei/CrushingDisplay.java @@ -1,52 +1,16 @@ package vivatech.rei; -import me.shedaniel.rei.api.RecipeDisplay; -import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import vivatech.recipe.CrushingRecipe; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -final class CrushingDisplay implements RecipeDisplay { - private final CrushingRecipe recipe; - private final List> input; - private final List output; -// private final List bonusStacks; +final class CrushingDisplay extends TieredMachineDisplay { CrushingDisplay(CrushingRecipe recipe) { - this.recipe = recipe; - input = recipe.getPreviewInputs().stream() - .map(ingredient -> Arrays.asList(ingredient.getStackArray())) - .collect(Collectors.toList()); - output = Collections.singletonList(recipe.getOutput()); - //bonusStacks = LootUtils.getAllStacks(recipe.getBonusLootTable()); - } - - @Override - public Optional getRecipe() { - return Optional.of(recipe); - } - - @Override - public List> getInput() { - return input; - } - - @Override - public List getOutput() { - return output; + super(recipe); } @Override public Identifier getRecipeCategory() { return VivatechREIPlugin.CRUSHING; } - - /*public List getBonusStacks() { - return bonusStacks; - }*/ } diff --git a/src/main/java/vivatech/rei/PressingDisplay.java b/src/main/java/vivatech/rei/PressingDisplay.java index a69f6ac..f717508 100644 --- a/src/main/java/vivatech/rei/PressingDisplay.java +++ b/src/main/java/vivatech/rei/PressingDisplay.java @@ -1,50 +1,14 @@ package vivatech.rei; -import com.google.common.collect.ImmutableList; -import me.shedaniel.rei.api.RecipeDisplay; -import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; import vivatech.recipe.PressingRecipe; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -final class PressingDisplay implements RecipeDisplay { - private final PressingRecipe recipe; - private final List> input; - private final List output; - - PressingDisplay(PressingRecipe recipe) { - this.recipe = recipe; - input = recipe.getPreviewInputs().stream() - .map(ingredient -> Arrays.asList(ingredient.getStackArray())) - .collect(Collectors.toList()); - - output = ImmutableList.of(recipe.getOutput()); - } - - @Override - public Optional getRecipe() { - return Optional.of(recipe); - } - - @Override - public List> getInput() { - return input; - } - - @Override - public List getOutput() { - return output; - } - - @Override - public List> getRequiredItems() { - return input; - } - +final class PressingDisplay extends TieredMachineDisplay { + + public PressingDisplay(PressingRecipe recipe) { + super(recipe); + } + @Override public Identifier getRecipeCategory() { return VivatechREIPlugin.PRESSING; diff --git a/src/main/java/vivatech/rei/TieredMachineDisplay.java b/src/main/java/vivatech/rei/TieredMachineDisplay.java new file mode 100644 index 0000000..79efdd6 --- /dev/null +++ b/src/main/java/vivatech/rei/TieredMachineDisplay.java @@ -0,0 +1,55 @@ +package vivatech.rei; + +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import com.google.common.collect.ImmutableList; + +import me.shedaniel.rei.api.RecipeDisplay; +import net.minecraft.item.ItemStack; +import vivatech.recipe.ProcessingRecipe; +import vivatech.util.MachineTier; + +public abstract class TieredMachineDisplay implements RecipeDisplay { + protected final T recipe; + protected final List> input; + List output; + + public TieredMachineDisplay(T recipe) { + this.recipe = recipe; + input = recipe.getPreviewInputs().stream() + .map(ingredient -> Arrays.asList(ingredient.getStackArray())) + .collect(Collectors.toList()); + output = ImmutableList.of(recipe.getOutput()); + } + + @Override + public Optional getRecipe() { + return Optional.of(recipe); + } + + @Override + public List> getInput() { + return input; + } + + @Override + public List getOutput() { + return output; + } + + @Override + public List> getRequiredItems() { + return input; + } + + public MachineTier getMinTier() { + return recipe.getMinTier(); + } + + public int getEnergyCost() { + return recipe.getEnergyCost(); + } +} diff --git a/src/main/java/vivatech/rei/widget/LabelWidget.java b/src/main/java/vivatech/rei/widget/LabelWidget.java new file mode 100644 index 0000000..cc262a8 --- /dev/null +++ b/src/main/java/vivatech/rei/widget/LabelWidget.java @@ -0,0 +1,32 @@ +package vivatech.rei.widget; + +import java.util.Collections; +import java.util.List; + +import me.shedaniel.rei.gui.widget.Widget; +import net.minecraft.client.gui.Element; +import net.minecraft.network.chat.Component; + +public class LabelWidget extends Widget { + protected int x; + protected int y; + protected Component text; + + public LabelWidget(int x, int y, Component component) { + this.text = component; + this.x = x; + this.y = y; + } + + @Override + public void render(int mouseX, int mouseY, float delta) { + font.draw(text.getFormattedText(), x, y, 0x666666); + } + + + @Override + public List children() { + return Collections.emptyList(); + } + +} diff --git a/src/main/resources/assets/vivatech/lang/en_us.json b/src/main/resources/assets/vivatech/lang/en_us.json index c2c0ce5..b0d5937 100644 --- a/src/main/resources/assets/vivatech/lang/en_us.json +++ b/src/main/resources/assets/vivatech/lang/en_us.json @@ -1,25 +1,28 @@ { "itemGroup.vivatech.item_group": "Vivatech", - "info.vivatech.energy": "%d J", - "info.vivatech.energy_with_max": "%d/%d J", - "block.vivatech.energy_conduit": "Energy Conduit", - "block.vivatech.coal_generator": "Coal Generator", "block.vivatech.light_machine_chassis" : "Light Machine Chassis", "block.vivatech.regular_machine_chassis": "Regular Machine Chassis", "block.vivatech.heavy_machine_chassis" : "Heavy Machine Chassis", + "block.vivatech.coal_generator": "Coal Generator", "block.vivatech.crusher": "Crusher", "block.vivatech.electric_furnace": "Electric Furnace", "block.vivatech.press": "Press", "block.vivatech.energy_bank": "Energy Bank", + "block.vivatech.energy_conduit": "Energy Conduit", "item.vivatech.battery" : "Battery", + "gui.vivatech.crushing" : "Crushing", "gui.vivatech.pressing" : "Pressing", - "machine_tier.tier" : "Tier: %s", - "machine_tier.minimal" : "Minimal", - "machine_tier.normal" : "Normal", - "machine_tier.advanced" : "Advanced" + "info.vivatech.energy": "%d J", + "info.vivatech.energy_with_max": "%d/%d J", + "info.vivatech.energy_cost" : "Energy: %d J", + + "info.vivatech.tier" : "Tier: %s", + "info.vivatech.tier.minimal" : "Minimal", + "info.vivatech.tier.normal" : "Normal", + "info.vivatech.tier.advanced" : "Advanced" }