From 801b497d86784a39824edf9bbae15404e92c5320 Mon Sep 17 00:00:00 2001 From: TheDoctorSoda Date: Sun, 13 Mar 2016 22:25:06 -0700 Subject: [PATCH] Update some texture paths, fix ore harvestibility, and fix ore recipes --- .../java/techreborn/blocks/BlockOre2.java | 2 +- .../advanced_machine/BlockBlastFurnace.java | 65 +++++ .../advanced_machine/BlockCentrifuge.java | 60 ++++ .../BlockDistillationTower.java | 42 +++ .../BlockImplosionCompressor.java | 60 ++++ .../BlockIndustrialElectrolyzer.java | 60 ++++ .../BlockIndustrialGrinder.java | 64 +++++ .../BlockIndustrialSawmill.java | 64 +++++ .../iron_machines/BlockAlloyFurnace.java | 74 +++++ .../iron_machines/BlockIronFurnace.java | 112 ++++++++ .../blocks/machine/BlockChunkLoader.java | 58 ++++ .../blocks/tier1/BlockAlloySmelter.java | 60 ++++ .../blocks/tier1/BlockCompressor.java | 61 +++++ .../blocks/tier1/BlockElectricFurnace.java | 61 +++++ .../blocks/tier1/BlockExtractor.java | 61 +++++ .../techreborn/blocks/tier1/BlockGrinder.java | 56 ++++ .../blocks/tier1/BlockRecycler.java | 61 +++++ src/main/java/techreborn/init/ModRecipes.java | 2 + src/main/java/techreborn/world/TROreGen.java | 259 ++++++++++++++++++ .../textures/blocks/metal_shelf_books.png | Bin 0 -> 501 bytes .../textures/blocks/metal_shelf_cans.png | Bin 0 -> 456 bytes .../textures/blocks/metal_shelf_empty.png | Bin 0 -> 423 bytes .../textures/blocks/metal_shelf_paper.png | Bin 0 -> 421 bytes .../textures/blocks/reinforcedglass.png | Bin 0 -> 569 bytes .../textures/blocks/wood_shelf_books.png | Bin 0 -> 305 bytes .../textures/blocks/wood_shelf_cans.png | Bin 0 -> 245 bytes .../textures/blocks/wood_shelf_empty.png | Bin 0 -> 228 bytes .../textures/blocks/wood_shelf_paper.png | Bin 0 -> 217 bytes .../textures/blocks/wood_shelf_side.png | Bin 0 -> 194 bytes 29 files changed, 1281 insertions(+), 1 deletion(-) create mode 100644 src/main/java/techreborn/blocks/advanced_machine/BlockBlastFurnace.java create mode 100644 src/main/java/techreborn/blocks/advanced_machine/BlockCentrifuge.java create mode 100644 src/main/java/techreborn/blocks/advanced_machine/BlockDistillationTower.java create mode 100644 src/main/java/techreborn/blocks/advanced_machine/BlockImplosionCompressor.java create mode 100644 src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialElectrolyzer.java create mode 100644 src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialGrinder.java create mode 100644 src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialSawmill.java create mode 100644 src/main/java/techreborn/blocks/iron_machines/BlockAlloyFurnace.java create mode 100644 src/main/java/techreborn/blocks/iron_machines/BlockIronFurnace.java create mode 100644 src/main/java/techreborn/blocks/machine/BlockChunkLoader.java create mode 100644 src/main/java/techreborn/blocks/tier1/BlockAlloySmelter.java create mode 100644 src/main/java/techreborn/blocks/tier1/BlockCompressor.java create mode 100644 src/main/java/techreborn/blocks/tier1/BlockElectricFurnace.java create mode 100644 src/main/java/techreborn/blocks/tier1/BlockExtractor.java create mode 100644 src/main/java/techreborn/blocks/tier1/BlockGrinder.java create mode 100644 src/main/java/techreborn/blocks/tier1/BlockRecycler.java create mode 100644 src/main/java/techreborn/world/TROreGen.java create mode 100644 src/main/resources/assets/techreborn/textures/blocks/metal_shelf_books.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/metal_shelf_cans.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/metal_shelf_empty.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/metal_shelf_paper.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/reinforcedglass.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/wood_shelf_books.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/wood_shelf_cans.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/wood_shelf_empty.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/wood_shelf_paper.png create mode 100644 src/main/resources/assets/techreborn/textures/blocks/wood_shelf_side.png diff --git a/src/main/java/techreborn/blocks/BlockOre2.java b/src/main/java/techreborn/blocks/BlockOre2.java index 4de3c1d7d..72302e95a 100644 --- a/src/main/java/techreborn/blocks/BlockOre2.java +++ b/src/main/java/techreborn/blocks/BlockOre2.java @@ -62,7 +62,7 @@ public class BlockOre2 extends BaseBlock implements ITexturedBlock, IOreNameProv setUnlocalizedName("techreborn.ore2"); setCreativeTab(TechRebornCreativeTabMisc.instance); setHardness(2.0f); - setHarvestLevel("pickaxe", 2); + setHarvestLevel("pickaxe", 1); this.setDefaultState(this.blockState.getBaseState().withProperty(METADATA, 0)); } diff --git a/src/main/java/techreborn/blocks/advanced_machine/BlockBlastFurnace.java b/src/main/java/techreborn/blocks/advanced_machine/BlockBlastFurnace.java new file mode 100644 index 000000000..98c175447 --- /dev/null +++ b/src/main/java/techreborn/blocks/advanced_machine/BlockBlastFurnace.java @@ -0,0 +1,65 @@ +package techreborn.blocks.advanced_machine; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileBlastFurnace; + +public class BlockBlastFurnace extends BlockMachineBase implements IRotationTexture { + + public BlockBlastFurnace(Material material) { + super(); + setUnlocalizedName("techreborn.blastfurnace"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World world, int p_149915_2_) { + return new TileBlastFurnace(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.blastFurnaceID, world, x, y, z); + return true; + } + + @Override + public boolean isAdvanced() { + return true; + } + + private final String prefix = "techreborn:blocks/machine/advanced_machines/"; + + @Override + public String getFrontOff() { + return prefix + "industrial_blast_furnace_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "industrial_blast_furnace_front_on"; + } + + @Override + public String getSide() { + return prefix + "advanced_machine_side"; + } + + @Override + public String getTop() { + return prefix + "advanced_machine_top"; + } + + @Override + public String getBottom() { + return prefix + "advanced_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/advanced_machine/BlockCentrifuge.java b/src/main/java/techreborn/blocks/advanced_machine/BlockCentrifuge.java new file mode 100644 index 000000000..8ffd3a3b4 --- /dev/null +++ b/src/main/java/techreborn/blocks/advanced_machine/BlockCentrifuge.java @@ -0,0 +1,60 @@ +package techreborn.blocks.advanced_machine; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileCentrifuge; + +public class BlockCentrifuge extends BlockMachineBase implements IRotationTexture { + + public BlockCentrifuge() { + super(); + setUnlocalizedName("techreborn.centrifuge"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileCentrifuge(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) { + player.openGui(Core.INSTANCE, GuiHandler.centrifugeID, world, x, y, z); + } + return true; + } + + private final String prefix = "techreborn:blocks/machine/advanced_machines/"; + + @Override + public String getFrontOff() { + return prefix + "industrial_centrifuge_side_off"; + } + + @Override + public String getFrontOn() { + return prefix + "industrial_centrifuge_side_on"; + } + + @Override + public String getSide() { + return getFrontOff(); + } + + @Override + public String getTop() { + return prefix + "industrial_centrifuge_top_off"; + } + + @Override + public String getBottom() { + return prefix + "industrial_centrifuge_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/advanced_machine/BlockDistillationTower.java b/src/main/java/techreborn/blocks/advanced_machine/BlockDistillationTower.java new file mode 100644 index 000000000..1adc3b48d --- /dev/null +++ b/src/main/java/techreborn/blocks/advanced_machine/BlockDistillationTower.java @@ -0,0 +1,42 @@ +package techreborn.blocks.advanced_machine; + +import net.minecraft.block.material.Material; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.client.TechRebornCreativeTab; + +public class BlockDistillationTower extends BlockMachineBase implements IRotationTexture { + + public BlockDistillationTower(Material material) { + super(); + setUnlocalizedName("techreborn.distillationtower"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + private final String prefix = "techreborn:blocks/machine/advanced_machines/"; + + @Override + public String getFrontOff() { + return prefix + "distillation_tower_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "distillation_tower_front_off"; + } + + @Override + public String getSide() { + return prefix + "advanced_machine_side"; + } + + @Override + public String getTop() { + return prefix + "industrial_centrifuge_top_off"; + } + + @Override + public String getBottom() { + return prefix + "industrial_centrifuge_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/advanced_machine/BlockImplosionCompressor.java b/src/main/java/techreborn/blocks/advanced_machine/BlockImplosionCompressor.java new file mode 100644 index 000000000..a40ac2cdf --- /dev/null +++ b/src/main/java/techreborn/blocks/advanced_machine/BlockImplosionCompressor.java @@ -0,0 +1,60 @@ +package techreborn.blocks.advanced_machine; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileImplosionCompressor; + +public class BlockImplosionCompressor extends BlockMachineBase implements IRotationTexture { + + public BlockImplosionCompressor(Material material) { + super(); + setUnlocalizedName("techreborn.implosioncompressor"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileImplosionCompressor(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.implosionCompresserID, world, x, y, z); + return true; + } + + private final String prefix = "techreborn:blocks/machine/advanced_machines/"; + + @Override + public String getFrontOff() { + return prefix + "implosion_compressor_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "implosion_compressor_front_on"; + } + + @Override + public String getSide() { + return prefix + "advanced_machine_side"; + } + + @Override + public String getTop() { + return prefix + "industrial_centrifuge_top_off"; + } + + @Override + public String getBottom() { + return prefix + "implosion_compressor_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialElectrolyzer.java b/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialElectrolyzer.java new file mode 100644 index 000000000..aca563760 --- /dev/null +++ b/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialElectrolyzer.java @@ -0,0 +1,60 @@ +package techreborn.blocks.advanced_machine; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileIndustrialElectrolyzer; + +public class BlockIndustrialElectrolyzer extends BlockMachineBase implements IRotationTexture { + + public BlockIndustrialElectrolyzer(Material material) { + super(); + setUnlocalizedName("techreborn.industrialelectrolyzer"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World world, int p_149915_2_) { + return new TileIndustrialElectrolyzer(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.industrialElectrolyzerID, world, x, y, z); + return true; + } + + private final String prefix = "techreborn:blocks/machine/advanced_machines/"; + + @Override + public String getFrontOff() { + return prefix + "industrial_electrolyzer_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "industrial_electrolyzer_front_on"; + } + + @Override + public String getSide() { + return prefix + "industrial_electrolyzer_front_off"; + } + + @Override + public String getTop() { + return prefix + "machine_top"; + } + + @Override + public String getBottom() { + return prefix + "machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialGrinder.java b/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialGrinder.java new file mode 100644 index 000000000..ea480b3fc --- /dev/null +++ b/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialGrinder.java @@ -0,0 +1,64 @@ +package techreborn.blocks.advanced_machine; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileIndustrialGrinder; + +public class BlockIndustrialGrinder extends BlockMachineBase implements IRotationTexture { + + public BlockIndustrialGrinder(Material material) { + super(); + setUnlocalizedName("techreborn.industrialgrinder"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileIndustrialGrinder(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(fillBlockWithFluid(world, new BlockPos(x, y, z), player)){ + return true; + } + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.industrialGrinderID, world, x, y, z); + return true; + } + + private final String prefix = "techreborn:blocks/machine/advanced_machines/"; + + @Override + public String getFrontOff() { + return prefix + "industrial_grinder_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "industrial_grinder_front_on"; + } + + @Override + public String getSide() { + return prefix + "machine_side"; + } + + @Override + public String getTop() { + return prefix + "industrial_grinder_top_off"; + } + + @Override + public String getBottom() { + return prefix + "industrial_centrifuge_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialSawmill.java b/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialSawmill.java new file mode 100644 index 000000000..a8e1d7abf --- /dev/null +++ b/src/main/java/techreborn/blocks/advanced_machine/BlockIndustrialSawmill.java @@ -0,0 +1,64 @@ +package techreborn.blocks.advanced_machine; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileIndustrialSawmill; + +public class BlockIndustrialSawmill extends BlockMachineBase implements IRotationTexture { + + public BlockIndustrialSawmill(Material material) { + super(); + setUnlocalizedName("techreborn.industrialsawmill"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World world, int p_149915_2_) { + return new TileIndustrialSawmill(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(fillBlockWithFluid(world, new BlockPos(x, y, z), player)){ + return true; + } + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.sawMillID, world, x, y, z); + return true; + } + + private final String prefix = "techreborn:blocks/machine/advanced_machines/"; + + @Override + public String getFrontOff() { + return prefix + "industrial_sawmill_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "industrial_sawmill_front_on"; + } + + @Override + public String getSide() { + return prefix + "advanced_machine_side"; + } + + @Override + public String getTop() { + return prefix + "advanced_machine_side"; + } + + @Override + public String getBottom() { + return prefix + "advanced_machine_side"; + } +} diff --git a/src/main/java/techreborn/blocks/iron_machines/BlockAlloyFurnace.java b/src/main/java/techreborn/blocks/iron_machines/BlockAlloyFurnace.java new file mode 100644 index 000000000..a4668b702 --- /dev/null +++ b/src/main/java/techreborn/blocks/iron_machines/BlockAlloyFurnace.java @@ -0,0 +1,74 @@ +package techreborn.blocks.iron_machines; + +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileAlloyFurnace; + +import java.util.ArrayList; +import java.util.List; + +public class BlockAlloyFurnace extends BlockMachineBase implements IRotationTexture { + + public BlockAlloyFurnace(Material material) { + super(); + setUnlocalizedName("techreborn.alloyfurnace"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World world, int p_149915_2_) { + return new TileAlloyFurnace(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.alloyFurnaceID, world, x, y, z); + return true; + } + + @Override + public List getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { + List items = new ArrayList(); + items.add(new ItemStack(this)); + return items; + } + + private final String prefix = "techreborn:blocks/machine/iron_machines/"; + + @Override + public String getFrontOff() { + return prefix + "alloy_furnace_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "alloy_furnace_front_on"; + } + + @Override + public String getSide() { + return prefix + "iron_machine_side"; + } + + @Override + public String getTop() { + return prefix + "iron_machine_top"; + } + + @Override + public String getBottom() { + return prefix + "iron_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/iron_machines/BlockIronFurnace.java b/src/main/java/techreborn/blocks/iron_machines/BlockIronFurnace.java new file mode 100644 index 000000000..a431741c2 --- /dev/null +++ b/src/main/java/techreborn/blocks/iron_machines/BlockIronFurnace.java @@ -0,0 +1,112 @@ +package techreborn.blocks.iron_machines; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumParticleTypes; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileIronFurnace; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class BlockIronFurnace extends BlockMachineBase implements IRotationTexture { + + public BlockIronFurnace() { + super(); + setUnlocalizedName("techreborn.ironfurnace"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World world, int p_149915_2_) { + return new TileIronFurnace(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.ironFurnace, world, x, y, z); + return true; + } + + @Override + public List getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { + List items = new ArrayList(); + items.add(new ItemStack(this)); + return items; + } + + @SideOnly(Side.CLIENT) + @SuppressWarnings("incomplete-switch") + public void randomDisplayTick(World worldIn, BlockPos pos, IBlockState state, Random rand) + { + if (this.isActive(state)) + { + EnumFacing enumfacing = (EnumFacing)state.getValue(FACING); + double d0 = (double)pos.getX() + 0.5D; + double d1 = (double)pos.getY() + rand.nextDouble() * 6.0D / 16.0D; + double d2 = (double)pos.getZ() + 0.5D; + double d3 = 0.52D; + double d4 = rand.nextDouble() * 0.6D - 0.3D; + + switch (enumfacing) + { + case WEST: + worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 - d3, d1, d2 + d4, 0.0D, 0.0D, 0.0D, new int[0]); + worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 - d3, d1, d2 + d4, 0.0D, 0.0D, 0.0D, new int[0]); + break; + case EAST: + worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d3, d1, d2 + d4, 0.0D, 0.0D, 0.0D, new int[0]); + worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + d3, d1, d2 + d4, 0.0D, 0.0D, 0.0D, new int[0]); + break; + case NORTH: + worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d4, d1, d2 - d3, 0.0D, 0.0D, 0.0D, new int[0]); + worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + d4, d1, d2 - d3, 0.0D, 0.0D, 0.0D, new int[0]); + break; + case SOUTH: + worldIn.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, d0 + d4, d1, d2 + d3, 0.0D, 0.0D, 0.0D, new int[0]); + worldIn.spawnParticle(EnumParticleTypes.FLAME, d0 + d4, d1, d2 + d3, 0.0D, 0.0D, 0.0D, new int[0]); + } + } + } + + private final String prefix = "techreborn:blocks/machine/iron_machines/"; + + @Override + public String getFrontOff() { + return prefix + "iron_furnace_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "iron_furnace_front_on"; + } + + @Override + public String getSide() { + return prefix + "iron_machine_side"; + } + + @Override + public String getTop() { + return prefix + "iron_machine_top"; + } + + @Override + public String getBottom() { + return prefix + "iron_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/machine/BlockChunkLoader.java b/src/main/java/techreborn/blocks/machine/BlockChunkLoader.java new file mode 100644 index 000000000..c0faae1fc --- /dev/null +++ b/src/main/java/techreborn/blocks/machine/BlockChunkLoader.java @@ -0,0 +1,58 @@ +package techreborn.blocks.machine; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IAdvancedRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileChunkLoader; + +public class BlockChunkLoader extends BlockMachineBase implements IAdvancedRotationTexture { + + + public BlockChunkLoader(Material material) { + super(); + setUnlocalizedName("techreborn.chunkloader"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World world, int p_149915_2_) { + return new TileChunkLoader(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, + EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.chunkloaderID, world, x, y, + z); + return true; + } + + private final String prefix = "techreborn:blocks/machine/greg_machines/"; + + @Override + public String getFront(boolean isActive) { + return prefix + "industrial_chunk_loader_side"; + } + + @Override + public String getSide(boolean isActive) { + return prefix + "industrial_chunk_loader_side" ; + } + + @Override + public String getTop(boolean isActive) { + return prefix + "machine_top"; + } + + @Override + public String getBottom(boolean isActive) { + return prefix + "machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/tier1/BlockAlloySmelter.java b/src/main/java/techreborn/blocks/tier1/BlockAlloySmelter.java new file mode 100644 index 000000000..32b9c1c04 --- /dev/null +++ b/src/main/java/techreborn/blocks/tier1/BlockAlloySmelter.java @@ -0,0 +1,60 @@ +package techreborn.blocks.tier1; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.TileAlloySmelter; + +public class BlockAlloySmelter extends BlockMachineBase implements IRotationTexture { + + public BlockAlloySmelter(Material material) { + super(); + setUnlocalizedName("techreborn.alloysmelter"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World world, int p_149915_2_) { + return new TileAlloySmelter(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) + player.openGui(Core.INSTANCE, GuiHandler.alloySmelterID, world, x, y, z); + return true; + } + + private final String prefix = "techreborn:blocks/machine/tier1_machines/"; + + @Override + public String getFrontOff() { + return prefix + "electric_alloy_furnace_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "electric_alloy_furnace_front_on"; + } + + @Override + public String getSide() { + return prefix + "tier1_machine_side"; + } + + @Override + public String getTop() { + return prefix + "tier1_machine_top"; + } + + @Override + public String getBottom() { + return prefix + "tier1_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/tier1/BlockCompressor.java b/src/main/java/techreborn/blocks/tier1/BlockCompressor.java new file mode 100644 index 000000000..4baf139e7 --- /dev/null +++ b/src/main/java/techreborn/blocks/tier1/BlockCompressor.java @@ -0,0 +1,61 @@ +package techreborn.blocks.tier1; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.teir1.TileCompressor; + +public class BlockCompressor extends BlockMachineBase implements IRotationTexture{ + + public BlockCompressor(Material material) { + super(); + setUnlocalizedName("techreborn.compressor"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileCompressor(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()){ + player.openGui(Core.INSTANCE, GuiHandler.compressorID, world, x, y, z); + } + return true; + } + + private final String prefix = "techreborn:blocks/machine/tier1_machines/"; + + @Override + public String getFrontOff() { + return prefix + "compressor_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "compressor_front_on"; + } + + @Override + public String getSide() { + return prefix + "tier1_machine_side"; + } + + @Override + public String getTop() { + return prefix + "tier1_machine_top"; + } + + @Override + public String getBottom() { + return prefix + "tier1_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/tier1/BlockElectricFurnace.java b/src/main/java/techreborn/blocks/tier1/BlockElectricFurnace.java new file mode 100644 index 000000000..528791efa --- /dev/null +++ b/src/main/java/techreborn/blocks/tier1/BlockElectricFurnace.java @@ -0,0 +1,61 @@ +package techreborn.blocks.tier1; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.teir1.TileElectricFurnace; + +public class BlockElectricFurnace extends BlockMachineBase implements IRotationTexture{ + + public BlockElectricFurnace(Material material) { + super(); + setUnlocalizedName("techreborn.electricfurnace"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileElectricFurnace(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()){ + player.openGui(Core.INSTANCE, GuiHandler.electricFurnaceID, world, x, y, z); + } + return true; + } + + private final String prefix = "techreborn:blocks/machine/tier1_machines/"; + + @Override + public String getFrontOff() { + return prefix + "electric_furnace_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "electric_furnace_front_on"; + } + + @Override + public String getSide() { + return prefix + "tier1_machine_side" ; + } + + @Override + public String getTop() { + return prefix + "tier1_machine_top"; + } + + @Override + public String getBottom() { + return prefix + "tier1_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/tier1/BlockExtractor.java b/src/main/java/techreborn/blocks/tier1/BlockExtractor.java new file mode 100644 index 000000000..c620d5599 --- /dev/null +++ b/src/main/java/techreborn/blocks/tier1/BlockExtractor.java @@ -0,0 +1,61 @@ +package techreborn.blocks.tier1; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.teir1.TileExtractor; + +public class BlockExtractor extends BlockMachineBase implements IRotationTexture{ + + public BlockExtractor(Material material) { + super(); + setUnlocalizedName("techreborn.extractor"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileExtractor(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()){ + player.openGui(Core.INSTANCE, GuiHandler.extractorID, world, x, y, z); + } + return true; + } + + private final String prefix = "techreborn:blocks/machine/tier1_machines/"; + + @Override + public String getFrontOff() { + return prefix + "extractor_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "extractor_front_on"; + } + + @Override + public String getSide() { + return prefix + "tier1_machine_side"; + } + + @Override + public String getTop() { + return prefix + "tier1_machine_top"; + } + + @Override + public String getBottom() { + return prefix + "tier1_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/tier1/BlockGrinder.java b/src/main/java/techreborn/blocks/tier1/BlockGrinder.java new file mode 100644 index 000000000..fe40f878e --- /dev/null +++ b/src/main/java/techreborn/blocks/tier1/BlockGrinder.java @@ -0,0 +1,56 @@ +package techreborn.blocks.tier1; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IAdvancedRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.teir1.TileGrinder; + +public class BlockGrinder extends BlockMachineBase implements IAdvancedRotationTexture{ + + public BlockGrinder(Material material) { + super(); + setUnlocalizedName("techreborn.grinder"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileGrinder(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()){ + player.openGui(Core.INSTANCE, GuiHandler.grinderID, world, x, y, z); + } + return true; + } + + private final String prefix = "techreborn:blocks/machine/tier1_machines/"; + + @Override + public String getFront(boolean isActive) { + return isActive ? prefix + "grinder_front_on" : prefix + "grinder_front_off"; + } + + @Override + public String getSide(boolean isActive) { + return prefix + "tier1_machine_side"; + } + + @Override + public String getTop(boolean isActive) { + return isActive ? prefix + "grinder_top_on" : prefix + "grinder_top_off"; + } + + @Override + public String getBottom(boolean isActive) { + return prefix + "tier1_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/blocks/tier1/BlockRecycler.java b/src/main/java/techreborn/blocks/tier1/BlockRecycler.java new file mode 100644 index 000000000..f001fd3e2 --- /dev/null +++ b/src/main/java/techreborn/blocks/tier1/BlockRecycler.java @@ -0,0 +1,61 @@ +package techreborn.blocks.tier1; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import reborncore.common.blocks.BlockMachineBase; +import reborncore.common.blocks.IRotationTexture; +import techreborn.Core; +import techreborn.client.GuiHandler; +import techreborn.client.TechRebornCreativeTab; +import techreborn.tiles.teir1.TileRecycler; + +public class BlockRecycler extends BlockMachineBase implements IRotationTexture{ + + public BlockRecycler(Material material) { + super(); + setUnlocalizedName("techreborn.recycler"); + setCreativeTab(TechRebornCreativeTab.instance); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileRecycler(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()){ + player.openGui(Core.INSTANCE, GuiHandler.recyclerID, world, x, y, z); + } + return true; + } + + private final String prefix = "techreborn:blocks/machine/tier1_machines/"; + + @Override + public String getFrontOff() { + return prefix + "recycler_front_off"; + } + + @Override + public String getFrontOn() { + return prefix + "recycler_front_on"; + } + + @Override + public String getSide() { + return prefix + "tier1_machine_side"; + } + + @Override + public String getTop() { + return prefix + "tier1_machine_top"; + } + + @Override + public String getBottom() { + return prefix + "tier1_machine_bottom"; + } +} diff --git a/src/main/java/techreborn/init/ModRecipes.java b/src/main/java/techreborn/init/ModRecipes.java index bc73e45b8..3d89a8dd4 100644 --- a/src/main/java/techreborn/init/ModRecipes.java +++ b/src/main/java/techreborn/init/ModRecipes.java @@ -694,6 +694,8 @@ public class ModRecipes { GameRegistry.addSmelting(ItemDusts.getDustByName("gold", 1), new ItemStack(Items.gold_ingot), 1F); GameRegistry.addSmelting(ItemParts.getPartByName("rubberSap"), ItemParts.getPartByName("rubber"), 1F); GameRegistry.addSmelting(new ItemStack(Items.iron_ingot), ItemIngots.getIngotByName("refinediron"), 1F); + GameRegistry.addSmelting(BlockOre2.getOreByName("copper"), ItemIngots.getIngotByName("copper"), 1F); + GameRegistry.addSmelting(BlockOre2.getOreByName("tin"), ItemIngots.getIngotByName("tin"), 1F); Core.logHelper.info("Smelting Recipes Added"); } diff --git a/src/main/java/techreborn/world/TROreGen.java b/src/main/java/techreborn/world/TROreGen.java new file mode 100644 index 000000000..6de36c982 --- /dev/null +++ b/src/main/java/techreborn/world/TROreGen.java @@ -0,0 +1,259 @@ +package techreborn.world; + +import java.util.Random; + +import net.minecraft.util.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraftforge.fml.common.IWorldGenerator; +import techreborn.Core; +import techreborn.config.ConfigTechReborn; +import techreborn.init.ModBlocks; + +public class TROreGen implements IWorldGenerator { + public static ConfigTechReborn config; + + WorldGenMinable oreGalena; + WorldGenMinable oreIridium; + WorldGenMinable oreRuby; + WorldGenMinable oreSapphire; + WorldGenMinable oreBauxite; + WorldGenMinable orePyrite; + WorldGenMinable oreCinnabar; + WorldGenMinable oreSphalerite; + WorldGenMinable oreTungston; + WorldGenMinable oreSheldonite; + WorldGenMinable orePeridot; + WorldGenMinable oreSodalite; + WorldGenMinable oreTetrahedrite; + WorldGenMinable oreCassiterite; + WorldGenMinable oreLead; + WorldGenMinable oreSilver; + WorldGenMinable oreCopper; + WorldGenMinable oreTin; + + public TROreGen() { + // World + oreGalena = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Galena"), ConfigTechReborn.GalenaOreRare); + oreIridium = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Iridium"), ConfigTechReborn.IridiumOreRare); + oreRuby = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Ruby"), ConfigTechReborn.RubyOreRare); + oreSapphire = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Sapphire"), ConfigTechReborn.SapphireOreRare); + oreBauxite = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Bauxite"), ConfigTechReborn.BauxiteOreRare); + oreTetrahedrite = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Tetrahedrite"), ConfigTechReborn.TetrahedriteOreRare); + oreCassiterite = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Cassiterite"), ConfigTechReborn.CassiteriteOreRare); + oreLead = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Lead"), ConfigTechReborn.LeadOreRare); + oreSilver = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Silver"), ConfigTechReborn.SilverOreRare); + oreCopper = new WorldGenMinable(ModBlocks.ore2.getBlockStateFromName("copper"), ConfigTechReborn.CopperOreRare); + oreTin = new WorldGenMinable(ModBlocks.ore2.getBlockStateFromName("tin"), ConfigTechReborn.TinOreRare); + + // Nether + orePyrite = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Pyrite"), ConfigTechReborn.PyriteOreRare); + oreCinnabar = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Cinnabar"), ConfigTechReborn.CinnabarOreRare); + oreSphalerite = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Sphalerite"), ConfigTechReborn.SphaleriteOreRare); + + // End + oreTungston = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Tungston"), ConfigTechReborn.TungstenOreRare); + oreSheldonite = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Sheldonite"), ConfigTechReborn.SheldoniteOreRare); + orePeridot = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Peridot"), ConfigTechReborn.PeridotOreRare); + oreSodalite = new WorldGenMinable(ModBlocks.ore.getBlockStateFromName("Sodalite"), ConfigTechReborn.SodaliteOreRare); + + Core.logHelper.info("WorldGen Loaded"); + } + + public void retroGen(Random random, int chunkX, int chunkZ, World world) { + //TODO + generateUndergroundOres(random, chunkX, chunkZ, world); + generateHellOres(random, chunkX, chunkZ, world); + generateEndOres(random, chunkX, chunkZ, world); + world.getChunkFromChunkCoords(chunkX, chunkZ).setChunkModified(); + } + + @Override + public void generate(Random random, int xChunk, int zChunk, World world, + IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { + + if (world.provider.isSurfaceWorld()) { + generateUndergroundOres(random, xChunk * 16, zChunk * 16, world); + } else if (world.provider.getDimensionId() == 0) { + generateHellOres(random, xChunk * 16, zChunk * 16, world); + } else if (world.provider.getDimensionId() == 1) { + generateEndOres(random, xChunk * 16, zChunk * 16, world); + } + + } + + void generateUndergroundOres(Random random, int xChunk, int zChunk, World world) { + int xPos, yPos, zPos; + if (config.GalenaOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreGalena.generate(world, random, pos); + } + } + if (config.IridiumOreTrue) { + for (int i = 0; i <= 1; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(1); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreIridium.generate(world, random, pos); + } + } + if (config.RubyOreTrue) { + for (int i = 0; i <= 3; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreRuby.generate(world, random, pos); + } + } + if (config.SapphireOreTrue) { + for (int i = 0; i <= 3; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreSapphire.generate(world, random, pos); + } + } + if (config.BauxiteOreTrue) { + for (int i = 0; i <= 10; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreBauxite.generate(world, random, pos); + } + } + if (config.TetrahedriteOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreTetrahedrite.generate(world, random, pos); + } + } + if (config.CassiteriteOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 20); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreCassiterite.generate(world, random, pos); + } + } + if (config.LeadOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 20); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreLead.generate(world, random, pos); + } + } + if (config.SilverOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 20); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreSilver.generate(world, random, pos); + } + } + if (config.CopperOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 20); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreCopper.generate(world, random, pos); + } + } + if (config.TinOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 20); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreTin.generate(world, random, pos); + } + } + } + + void generateHellOres(Random random, int xChunk, int zChunk, World world) { + int xPos, yPos, zPos; + if (config.PyriteOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + orePyrite.generate(world, random, pos); + } + } + if (config.CinnabarOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreCinnabar.generate(world, random, pos); + } + } + if (config.SphaleriteOreTrue) { + for (int i = 0; i <= 16; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreSphalerite.generate(world, random, pos); + } + } + } + + void generateEndOres(Random random, int xChunk, int zChunk, World world) { + int xPos, yPos, zPos; + if (config.TungstenOreTrue) { + for (int i = 0; i <= 2; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreTungston.generate(world, random, pos); + } + } + if (config.SheldoniteOreTrue) { + for (int i = 0; i <= 3; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreSheldonite.generate(world, random, pos); + } + } + if (config.PeridotOreTrue) { + for (int i = 0; i <= 3; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + orePeridot.generate(world, random, pos); + } + } + if (config.SodaliteOreTrue) { + for (int i = 0; i <= 3; i++) { + xPos = xChunk + random.nextInt(16); + yPos = 10 + random.nextInt(60 - 10); + zPos = zChunk + random.nextInt(16); + BlockPos pos = new BlockPos(xPos, yPos, zPos); + oreSodalite.generate(world, random, pos); + } + } + } +} diff --git a/src/main/resources/assets/techreborn/textures/blocks/metal_shelf_books.png b/src/main/resources/assets/techreborn/textures/blocks/metal_shelf_books.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8905ecfbba44faaa751a9e51350cffb889850d GIT binary patch literal 501 zcmV zp2O1A$JW@{>+Ia_?}>g0iHV7uq^O*wsXsqIcQ6N{t+1$@3aPZWt+~9Do1e12!Lz@@ zwY9ak#mBkF$$Ec;z01wN&CkHj(8AEtV<-j0)76%rqt4&p(&OaT=jhky>DcM&hc*a@ zkCUINth~z1dx3_&%+8aXpn->sh>(=R(bI#8j)aPj#njfu)z^%an8?@J$=TY<+S|1ZIkQp%6_ zZhz1}gHFCOzRb>zm6?y1o5Il2!qL;Bt+1r8vc=Ta#?{xU zw6}$fkjdHF%G%q^+}(tVkB5(w*5~Ng=;_$$>XV$Hh>(9>euM$(&Oa0$H~0P%+}}VjFgy- zm6?c;l!uR#go=-YiH?DXjD?Jldx3_+(9+%S@ROXNkC&Tze}uO4Fn$040GvrgK~#8N zRgOij15pqI{a~0GgUrnE;r^G(M9QXn*|J@QdVSb>gPu9*Xxd`ZHjt~TR72kZgWlW{ zxe&IHmckg|JM4v@cpi`KxsYIrRFxI-Ad1rI*cL;piJ?H9^jqBJoOc6v)|w^Qd=R5A z!Y~VX^s&R9R)$Ea#{-}qN1Uj~85int#f^^MQBv#^C374<%=9p;eyi;7{|)x$6R%{2 R$a(+(002ovPDHLkV1h^oQ5QBdQ<#}yckJL&f*Tg0j9#Dp zppnv%Vreo)sYTcdH_!FXjw=Oarr_orO?YobQ`E_&Rg~bfYA^B>)$4Qj{><_TrpY)C z{2&Mhp&!N31|8MW1yvm*%v8q^ebsTqL3M0ltBxLQMu=r-S3}ePbZvnLX<#3G0;fIB P00000NkvXXu0mjf`8?(E literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/blocks/reinforcedglass.png b/src/main/resources/assets/techreborn/textures/blocks/reinforcedglass.png new file mode 100644 index 0000000000000000000000000000000000000000..16a8ad7f59eff4e73cccbd03be1b2bf19430de71 GIT binary patch literal 569 zcmV-90>=G`P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;(#7eog=Y0jfzvK~y+TP19#?8$k>O;5p75AV^P~xGFA^ z%gXAqWT!gyYzdId=r9v}3@G>q!C8{;J(4q9#)G|fH|@9E$yu9S9)|fApI#h*F>#-*4T?PAfj{$Gi3C;;4Qa?u6Z4yr|!22le-#zwPT}uYMW54ObL2B)F3Vx-(SA0x9896X0vGukO1=^yVn8wF+Z#yu3m*964zB(k58Khkn)5J=`S^LBE4}=W*%^U{3y;;#rfg-rI2IEtzGGpnB?yuGjtnT~vaw8)*)d00000NkvXX Hu0mjf>yY*m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_books.png b/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_books.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a488386de98f79fc9bb7291491534c6fe06e48 GIT binary patch literal 305 zcmV-10nYx3P)E8hm0t5sqso9uX=| zdWngNwY9Z}HV8>cNlZN^sGABuKR=0n2zM|CV<-iBx4+H+005OqL_t(|UNw#f3Ij0= z1l8Qj)%5)TossOzf-M+UXh1}gK4vDd2@*F=Epg1KAcyGpS`e|8)*0M+tOjyWumV{_ z!Tps(tK~cd_yRo#Yw*?3^$7%soQ38j0%47$G(_|R-bSK%_}x4zS>er@eW00000NkvXXu0mjf D#9eS4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_cans.png b/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_cans.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd7a0606d237ccbb9e54f140530b9f9c71ba157 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VtGb-vo*7AwhEm0GmJ=4Q zpWotZrX@Ok^)?+P;Vl!QwjDW^8Df0+(v{n9-`VR))Fj#Y*s9g1sa*nUul00s45^3< z?epYoao}NooU`}vpZ{AY^KrB+?NW^oVp+hNrgp=3#gvsdOZi<(A0HGv{K52hGxtO5 zhMxD0<~b~3p?c;#LXy@(b6q!ZM0roNNcp<8!uHPIIKxRLJ3d#)q^=G9#*pna4g8<2(K^vOHyD(wX#D8t4!PPgg&ebxsLQ0C~(^V*mgE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_empty.png b/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..677d4c6a6cc79c7b7cddab4ea07713d3e8b03d44 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv3GfMVRhJXgQ4%)O61CTpa5R+i zu~o|qF)og?tVyz)-{QMvLe!oaNfpx$cLUW|d%8G=a6~8H*qic9=48lG$MqaaC1uadH1PU586Yjvk%8&_-8Rw&S#9 z*||A;vz~pKYb>eO)XO+CdC3wM6R$}NITHJfIu@SYz_LO%W0Lp@nRM|DmZF)tPg4_L ZGHkI^?MvL*b`$6f22WQ%mvv4FO#sg;P`3a8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_paper.png b/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_paper.png new file mode 100644 index 0000000000000000000000000000000000000000..59c3c659d6fadbdec9ec7b41a1f81341a22b8b22 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF3h)VWRhJXgQ4%)O61CTpa5R+i zu~o|qF)og?tVyz)-{QMvLe!oaNw?p=`~UyHdDi+JKwVj$E{-7_vdK60W`937^Xl$$ zqnwn41c8)<2`M);G&EK$S)y}t!V(s?S3I-dH8q+Yo?@Kv;N%8YrAKE2=1rT%cjPIL zb^5tD)8b#}X7UIhJl1f=Fer#gO7&zwOX4}94$C-?XCX_rPMzMml$qg|lug>Yp7o(X PTNylE{an^LB{Ts5!z@w# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_side.png b/src/main/resources/assets/techreborn/textures/blocks/wood_shelf_side.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9505ca6dea9a70c5f85950865f6288bd5cee7d GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ^|4jU3^6W_v#d$7o8RKQ zWkS@R8A+Btdip>G8J;eVAsn)-4hMOe40()|mq^D5d{1vZ^_F2pBEyr4|AGQX?%o#r zqgkYTFy(HpqFb7q$`ReOznazuiE?f~dfUydr^n;Q{=2D-caCZx q_8;51)-J|i`<|R9#`h|1kIAbED}7LZT^S0rlfl!~&t;ucLK6Tui$|0I literal 0 HcmV?d00001