dess is gaster and also a toilet theory
10
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
|
||||
* 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
|
||||
@ -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");
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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");
|
||||
|
||||
41
src/main/java/com/hbm/blocks/generic/BlockTrinitite.java
Normal file
@ -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)];
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
|
||||
117
src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 276 B |
BIN
src/main/resources/assets/hbm/textures/blocks/pile_brick_top.png
Normal file
|
After Width: | Height: | Size: 214 B |
|
After Width: | Height: | Size: 894 B |
|
After Width: | Height: | Size: 896 B |
|
After Width: | Height: | Size: 915 B |
|
After Width: | Height: | Size: 890 B |
|
After Width: | Height: | Size: 797 B |
|
After Width: | Height: | Size: 790 B |
|
After Width: | Height: | Size: 806 B |
|
After Width: | Height: | Size: 784 B |