diff --git a/changelog b/changelog index a9bebc540..ff72aae47 100644 --- a/changelog +++ b/changelog @@ -1,2 +1,10 @@ +## Changed +* Updated the trinitite ore textures + * The ore spots are now smaller and more shard-like + * Each trinitite ore block now has four randomized texture variants +* Trinitite ores now spawn fewer particles +* The radiation effect caused by walking on trinitite ore is now much shorter but more intense to compensate + ## Fixed -* Fixed burner press GUI offsets being incorrect \ No newline at end of file +* Fixed burner press GUI offsets being incorrect +* Potentially fixed an issue with journey map where slaked sellafite would sometimes get the wrong color in the minimap \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fad72e397..4f4bb29d8 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1649,8 +1649,8 @@ public class ModBlocks { waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); - waste_trinitite = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); - waste_trinitite_red = new BlockOre(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); + waste_trinitite = new BlockTrinitite(Material.sand).noFortune().setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); + waste_trinitite_red = new BlockTrinitite(Material.sand).noFortune().setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F); waste_leaves = new WasteLeaves(Material.leaves).setBlockName("waste_leaves").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setBlockTextureName(RefStrings.MODID + ":waste_leaves"); waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks"); @@ -1962,7 +1962,7 @@ public class ModBlocks { custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); cm_anchor = new BlockCMAnchor().setBlockName("custom_machine_anchor").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); - pile_brick = new BlockGenericTooltip(Material.iron).setBlockName("pile_brick").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pile_brick"); + pile_brick = new BlockPileBrick().setBlockName("pile_brick").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pile_brick"); pile_block = new BlockPile().setBlockName("pile_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pile_block"); pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 9e613c75b..c621053d3 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -159,7 +159,7 @@ public class BlockOre extends Block { living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 2)); } if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) { - living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 0)); + living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 5 * 20, 2)); } if(this == ModBlocks.brick_jungle_ooze) { living.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 9)); @@ -178,8 +178,12 @@ public class BlockOre extends Block { public void randomDisplayTick(World world, int x, int y, int z, Random rand) { super.randomDisplayTick(world, x, y, z, rand); - if(this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red || this == ModBlocks.block_trinitite || this == ModBlocks.block_waste) { - world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.1F, z + rand.nextFloat(), 0.0D, 0.0D, 0.0D); + if(this == ModBlocks.block_trinitite || this == ModBlocks.block_waste) { + world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.0625, z + rand.nextFloat(), 0, 0, 0); + } + + if((this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red) && rand.nextInt(5) == 0) { + world.spawnParticle("townaura", x + rand.nextFloat(), y + 1.0625, z + rand.nextFloat(), 0, 0, 0); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java index be264d979..c382bb0d8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldSlaked.java @@ -41,7 +41,7 @@ public class BlockSellafieldSlaked extends Block { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { icons = new IIcon[4]; - icons[0] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked"); + this.blockIcon = icons[0] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked"); icons[1] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_1"); icons[2] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_2"); icons[3] = reg.registerIcon(RefStrings.MODID + ":sellafield_slaked_3"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockTrinitite.java b/src/main/java/com/hbm/blocks/generic/BlockTrinitite.java new file mode 100644 index 000000000..437218f38 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockTrinitite.java @@ -0,0 +1,41 @@ +package com.hbm.blocks.generic; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockTrinitite extends BlockOre { + + public IIcon[] icons; + + public BlockTrinitite(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[0]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons = new IIcon[4]; + + for(int i = 0; i < 4; i++) icons[i] = reg.registerIcon(this.getTextureName() + "." + i); + this.blockIcon = icons[0]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + return icons[(int)(Math.abs(i) % icons.length)]; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 61b9930dc..10de4e22d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -187,7 +187,7 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv errored = true; } - private void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { + public static void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { if(player instanceof EntityPlayerMP) { NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java b/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java new file mode 100644 index 000000000..2faef09a7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java @@ -0,0 +1,117 @@ +package com.hbm.blocks.machine.pile; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.MachinePWRController; +import com.hbm.lib.RefStrings; + +import api.hbm.block.IToolable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockPileBrick extends Block implements IToolable { + + @SideOnly(Side.CLIENT) protected IIcon iconTop; + @SideOnly(Side.CLIENT) protected IIcon iconSide; + + public static int MAX_SIZE = 15; + + public BlockPileBrick() { + super(Material.rock); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.iconTop = reg.registerIcon(RefStrings.MODID + ":pile_brick_top"); + this.iconSide = reg.registerIcon(RefStrings.MODID + ":pile_brick_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + if(side == 0 || side == 1) return this.iconTop; + if(side == 4 || side == 5) return this.iconSide; + return this.blockIcon; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool == tool.HAND_DRILL) { + if(side == 0 || side == 1) return false; + if(world.isRemote) return true; + + ForgeDirection dir = ForgeDirection.getOrientation(side).getOpposite(); + + int negHeight = 0; + int posHeight = 0; + int left = 0; + int right = 0; + int depth = 0; + + for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x, y + i, z) != this) break; posHeight = i; } + for(int i = 1; i <= MAX_SIZE - posHeight - 1; i++) { if(world.getBlock(x, y - i, z) != this) break; negHeight = i; } + + ForgeDirection dirLeft = dir.getRotation(ForgeDirection.DOWN); + for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x + dirLeft.offsetX * i, y, z + dirLeft.offsetZ * i) != this) break; left = i; } + for(int i = 1; i <= MAX_SIZE - left - 1; i++) { if(world.getBlock(x - dirLeft.offsetX * i, y, z - dirLeft.offsetZ * i) != this) break; right = i; } + + for(int i = 1; i <= MAX_SIZE; i++) { if(world.getBlock(x + dir.offsetX * i, y, z + dir.offsetZ * i) != this) break; depth = i; } + + if(posHeight + negHeight + 1 < 5) { + MachinePWRController.sendError(world, x, y + posHeight, z, "Height too low (<5)", player); + MachinePWRController.sendError(world, x, y - negHeight, z, "Height too low (<5)", player); + return true; + } + + if(left + right + 1 < 5) { + MachinePWRController.sendError(world, x + dirLeft.offsetX * left, y, z + dirLeft.offsetZ * right, "Width too low (<5)", player); + MachinePWRController.sendError(world, x - dirLeft.offsetX * right, y, z - dirLeft.offsetZ * right, "Width too low (<5)", player); + return true; + } + + if(depth + 1 < 5) { + MachinePWRController.sendError(world, x + dir.offsetX * depth, y, z + dir.offsetZ * depth, "Depth too low (<5)", player); + return true; + } + + for(int h = -negHeight; h <= posHeight; h++) { + for(int v = -left; v <= right; v++) { + for(int d = 0; d <= depth; d++) { + int iX = x - dirLeft.offsetX * v + dir.offsetX * d; + int iY = y + h; + int iZ = z - dirLeft.offsetZ * v + dir.offsetZ * d; + + if(world.getBlock(iX, iY, iZ) != this) { + MachinePWRController.sendError(world, iX, iY, iZ, "Graphite block missing", player); + return true; + } + } + } + } + + for(int h = -negHeight; h <= posHeight; h++) { + for(int v = -left; v <= right; v++) { + for(int d = 0; d <= depth; d++) { + int iX = x - dirLeft.offsetX * v + dir.offsetX * d; + int iY = y + h; + int iZ = z - dirLeft.offsetZ * v + dir.offsetZ * d; + world.setBlock(iX, iY, iZ, ModBlocks.pile_block); + } + } + } + + return true; + } + + return false; + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/pile_block_control_top_ct.png b/src/main/resources/assets/hbm/textures/blocks/pile_block_control_top_ct.png new file mode 100644 index 000000000..267661c46 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pile_block_control_top_ct.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pile_block_input_ct.png b/src/main/resources/assets/hbm/textures/blocks/pile_block_input_ct.png new file mode 100644 index 000000000..26124e645 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pile_block_input_ct.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pile_block_output_ct.png b/src/main/resources/assets/hbm/textures/blocks/pile_block_output_ct.png new file mode 100644 index 000000000..c4095696e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pile_block_output_ct.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pile_brick_side.png b/src/main/resources/assets/hbm/textures/blocks/pile_brick_side.png new file mode 100644 index 000000000..d9b1fe0d0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pile_brick_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pile_brick_top.png b/src/main/resources/assets/hbm/textures/blocks/pile_brick_top.png new file mode 100644 index 000000000..bd1c077f2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pile_brick_top.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.0.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.0.png new file mode 100644 index 000000000..9e4868251 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.1.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.1.png new file mode 100644 index 000000000..b09ee977b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.2.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.2.png new file mode 100644 index 000000000..5dc352720 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.3.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.3.png new file mode 100644 index 000000000..07f93c3f3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite.3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.0.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.0.png new file mode 100644 index 000000000..4e5717677 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.1.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.1.png new file mode 100644 index 000000000..b7c38c244 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.2.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.2.png new file mode 100644 index 000000000..d188b5bc2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.3.png b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.3.png new file mode 100644 index 000000000..14794a073 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/waste_trinitite_red.3.png differ