burned old textures, better sludge
10
changelog
@ -9,6 +9,16 @@
|
||||
* Fat mines now have a base damage of exactly 100, being identical to demolition mini nukes
|
||||
* Fat mines now gib affected entities
|
||||
* IV bags now use `setHealth` operations instead of dealing damage, preventing health duplication by just avoiding the damage
|
||||
* The settings tool can now copy and paste the "paint" from paintable cables and fluid ducts
|
||||
* Changed the way taint works
|
||||
* Instead of neon purple vines, taint is bow a greyish sludge
|
||||
* Taint now actively replaces blocks instead of growing along them
|
||||
* Taint is still limited in spread, however taint spread is lower underground, taint decays three times faster in intensity if the block is not exposed to air, making taint spread more along the surface
|
||||
* Taint has a 25% chance of splashing down when replacing a block with no supports, causing structures to collapse and taint to spread faster
|
||||
* Similar to soil sand, entities will sink in taint and get slowed down
|
||||
* The sludge consumeth
|
||||
|
||||
## Fixed
|
||||
* Fixed animation error on the MAS-36
|
||||
* Fixed drone docks, requester and provider crates not dropping their contents when broken
|
||||
* Fixed all missing texture errors that appear in the startup log
|
||||
@ -2177,7 +2177,7 @@ public class ModBlocks {
|
||||
mass_storage = new BlockMassStorage().setBlockName("mass_storage").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
|
||||
boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar");
|
||||
boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat");
|
||||
boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":asphalt");
|
||||
|
||||
machine_well = new MachineOilWell().setBlockName("machine_well").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_well");
|
||||
machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack");
|
||||
@ -2279,7 +2279,7 @@ public class ModBlocks {
|
||||
crystal_virus = new CrystalVirus(Material.iron).setBlockName("crystal_virus").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_virus");
|
||||
crystal_hardened = new BlockGeneric(Material.iron).setBlockName("crystal_hardened").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_hardened");
|
||||
crystal_pulsar = new CrystalPulsar(Material.iron).setBlockName("crystal_pulsar").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_pulsar");
|
||||
taint = new BlockTaint(Material.iron).setBlockName("taint").setHardness(15.0F).setResistance(10.0F).setCreativeTab(null);
|
||||
taint = new BlockTaint(Material.iron).setBlockName("taint").setHardness(15.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":taint");
|
||||
|
||||
vent_chlorine = new BlockVent(Material.iron).setBlockName("vent_chlorine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_chlorine");
|
||||
vent_cloud = new BlockVent(Material.iron).setBlockName("vent_cloud").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vent_cloud");
|
||||
@ -3476,7 +3476,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(crystal_virus, crystal_virus.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crystal_hardened, crystal_hardened.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crystal_pulsar, crystal_pulsar.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(taint, ItemTaintBlock.class, taint.getUnlocalizedName());
|
||||
register(taint);
|
||||
GameRegistry.registerBlock(cheater_virus, cheater_virus.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(cheater_virus_seed, cheater_virus_seed.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(ntm_dirt, ntm_dirt.getUnlocalizedName());
|
||||
|
||||
@ -4,169 +4,71 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.entity.mob.EntityTaintCrab;
|
||||
import com.hbm.entity.mob.EntityCreeperTainted;
|
||||
import com.hbm.entity.mob.EntityTeslaCrab;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockFalling;
|
||||
import net.minecraft.block.material.MapColor;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityFallingBlock;
|
||||
import net.minecraft.entity.monster.EntityCreeper;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockTaint extends Block/*Container*/ {
|
||||
public class BlockTaint extends Block implements ITooltipProvider {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon[] icons;
|
||||
|
||||
public BlockTaint(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
this.setTickRandomly(true);
|
||||
public BlockTaint(Material mat) {
|
||||
super(mat);
|
||||
this.setTickRandomly(true);
|
||||
}
|
||||
|
||||
/*@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityTaint();
|
||||
}*/
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int p_149691_1_, int meta)
|
||||
{
|
||||
return this.icons[meta % this.icons.length];
|
||||
}
|
||||
|
||||
public int damageDropped(int meta)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static int func_150032_b(int p_150032_0_)
|
||||
{
|
||||
return func_150031_c(p_150032_0_);
|
||||
}
|
||||
|
||||
public static int func_150031_c(int p_150031_0_)
|
||||
{
|
||||
return p_150031_0_ & 15;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List p_149666_3_)
|
||||
{
|
||||
for (int i = 0; i < 16; ++i)
|
||||
{
|
||||
p_149666_3_.add(new ItemStack(p_149666_1_, 1, i));
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister p_149651_1_)
|
||||
{
|
||||
this.icons = new IIcon[16];
|
||||
|
||||
for (int i = 0; i < this.icons.length; ++i)
|
||||
{
|
||||
this.icons[i] = p_149651_1_.registerIcon("hbm:taint_" + i);
|
||||
}
|
||||
}
|
||||
|
||||
public MapColor getMapColor(int p_149728_1_)
|
||||
{
|
||||
return MapColor.purpleColor;
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
@Override public MapColor getMapColor(int meta) { return MapColor.grayColor; }
|
||||
@Override public Item getItemDropped(int i, Random rand, int j) { return null; }
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return renderID;
|
||||
}
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if(meta >= 15) return;
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
for(int i = -3; i <= 3; i++) for(int j = -3; j <= 3; j++) for(int k = -3; k <= 3; k++) {
|
||||
if(Math.abs(i) + Math.abs(j) + Math.abs(k) > 4) continue;
|
||||
if(rand.nextFloat() > 0.25F) continue;
|
||||
Block b = world.getBlock(x + i, y + j, z + k);
|
||||
if(!b.isNormalCube() || b.isAir(world, x + i, y + j, z + k)) continue;
|
||||
int targetMeta = meta + 1;
|
||||
boolean hasAir = false;
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
if(world.getBlock(x + i + dir.offsetX, y + j + dir.offsetY, z + k + dir.offsetZ).isAir(world, x + i + dir.offsetX, y + j + dir.offsetY, z + k + dir.offsetZ)) {
|
||||
hasAir = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!hasAir) targetMeta = meta + 3;
|
||||
if(targetMeta > 15) continue;
|
||||
if(b == this && world.getBlockMetadata(x + i, y + j, z + k) >= targetMeta) continue;
|
||||
world.setBlock(x + i, y + j, z + k, this, targetMeta, 3);
|
||||
if(rand.nextFloat() < 0.25F && BlockFalling.func_149831_e(world, x + i, y + j - 1, z + k)) {
|
||||
EntityFallingBlock falling = new EntityFallingBlock(world, x + i + 0.5, y + j + 0.5, z + k + 0.5, this, targetMeta);
|
||||
world.spawnEntityInWorld(falling);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, Block b)
|
||||
{
|
||||
if(!hasPosNeightbour(world, x, y, z) && !world.isRemote)
|
||||
world.setBlockToAir(x, y, z);
|
||||
}
|
||||
|
||||
public void updateTick(World world, int x, int y, int z, Random rand)
|
||||
{
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if(!world.isRemote && meta < 15) {
|
||||
|
||||
for(int i = 0; i < 15; i++) {
|
||||
int a = rand.nextInt(11) + x - 5;
|
||||
int b = rand.nextInt(11) + y - 5;
|
||||
int c = rand.nextInt(11) + z - 5;
|
||||
if(world.getBlock(a, b, c).isReplaceable(world, a, b, c) && hasPosNeightbour(world, a, b, c))
|
||||
world.setBlock(a, b, c, ModBlocks.taint, meta + 1, 2);
|
||||
}
|
||||
|
||||
for(int i = 0; i < 85; i++) {
|
||||
int a = rand.nextInt(7) + x - 3;
|
||||
int b = rand.nextInt(7) + y - 3;
|
||||
int c = rand.nextInt(7) + z - 3;
|
||||
if(world.getBlock(a, b, c).isReplaceable(world, a, b, c) && hasPosNeightbour(world, a, b, c))
|
||||
world.setBlock(a, b, c, ModBlocks.taint, meta + 1, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean hasPosNeightbour(World world, int x, int y, int z) {
|
||||
Block b0 = world.getBlock(x + 1, y, z);
|
||||
Block b1 = world.getBlock(x, y + 1, z);
|
||||
Block b2 = world.getBlock(x, y, z + 1);
|
||||
Block b3 = world.getBlock(x - 1, y, z);
|
||||
Block b4 = world.getBlock(x, y - 1, z);
|
||||
Block b5 = world.getBlock(x, y, z - 1);
|
||||
boolean b = (b0.renderAsNormalBlock() && b0.getMaterial().isOpaque()) ||
|
||||
(b1.renderAsNormalBlock() && b1.getMaterial().isOpaque()) ||
|
||||
(b2.renderAsNormalBlock() && b2.getMaterial().isOpaque()) ||
|
||||
(b3.renderAsNormalBlock() && b3.getMaterial().isOpaque()) ||
|
||||
(b4.renderAsNormalBlock() && b4.getMaterial().isOpaque()) ||
|
||||
(b5.renderAsNormalBlock() && b5.getMaterial().isOpaque());
|
||||
return b;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
|
||||
{
|
||||
return AxisAlignedBB.getBoundingBox(par2, par3, par4, par2, par3, par4);
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.75, z + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -175,35 +77,42 @@ public class BlockTaint extends Block/*Container*/ {
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
int level = 15 - meta;
|
||||
|
||||
List<ItemStack> list = new ArrayList<ItemStack>();
|
||||
PotionEffect effect = new PotionEffect(HbmPotion.taint.id, 15 * 20, level);
|
||||
effect.setCurativeItems(list);
|
||||
entity.motionX *= 0.6;
|
||||
entity.motionZ *= 0.6;
|
||||
|
||||
if(entity instanceof EntityLivingBase) {
|
||||
if(world.rand.nextInt(50) == 0) {
|
||||
((EntityLivingBase)entity).addPotionEffect(effect);
|
||||
}
|
||||
}
|
||||
List<ItemStack> list = new ArrayList<ItemStack>();
|
||||
PotionEffect effect = new PotionEffect(HbmPotion.taint.id, 15 * 20, level);
|
||||
effect.setCurativeItems(list);
|
||||
|
||||
if(entity != null && entity.getClass().equals(EntityCreeper.class)) {
|
||||
EntityCreeperTainted creep = new EntityCreeperTainted(world);
|
||||
creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch);
|
||||
if(entity instanceof EntityLivingBase) {
|
||||
if(world.rand.nextInt(50) == 0) {
|
||||
((EntityLivingBase) entity).addPotionEffect(effect);
|
||||
}
|
||||
}
|
||||
|
||||
if(!world.isRemote) {
|
||||
entity.setDead();
|
||||
world.spawnEntityInWorld(creep);
|
||||
}
|
||||
}
|
||||
if(entity != null && entity.getClass().equals(EntityCreeper.class)) {
|
||||
EntityCreeperTainted creep = new EntityCreeperTainted(world);
|
||||
creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch);
|
||||
|
||||
if(entity instanceof EntityTeslaCrab) {
|
||||
EntityTaintCrab crab = new EntityTaintCrab(world);
|
||||
crab.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch);
|
||||
if(!world.isRemote) {
|
||||
entity.setDead();
|
||||
world.spawnEntityInWorld(creep);
|
||||
}
|
||||
}
|
||||
|
||||
if(!world.isRemote) {
|
||||
entity.setDead();
|
||||
world.spawnEntityInWorld(crab);
|
||||
}
|
||||
}
|
||||
if(entity instanceof EntityTeslaCrab) {
|
||||
EntityTaintCrab crab = new EntityTaintCrab(world);
|
||||
crab.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch);
|
||||
|
||||
if(!world.isRemote) {
|
||||
entity.setDead();
|
||||
world.spawnEntityInWorld(crab);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
list.add("DO NOT TOUCH, BREATHE OR STARE AT.");
|
||||
}
|
||||
}
|
||||
|
||||
@ -18,6 +18,6 @@ public class BlockGenericStairs extends BlockStairs {
|
||||
|
||||
recipeGen.add(new Object[] {block, meta, this});
|
||||
|
||||
this.setBlockTextureName(RefStrings.MODID + ":concrete_smooth");
|
||||
this.setBlockTextureName(RefStrings.MODID + ":concrete");
|
||||
}
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ public class BlockMultiSlab extends BlockSlab implements IStepTickReceiver {
|
||||
}
|
||||
}
|
||||
|
||||
this.setBlockTextureName(RefStrings.MODID + ":concrete_smooth");
|
||||
this.setBlockTextureName(RefStrings.MODID + ":concrete");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -4,11 +4,11 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.bomb.BlockDetonatable;
|
||||
import com.hbm.blocks.bomb.BlockTaint;
|
||||
import com.hbm.blocks.machine.BlockFluidBarrel;
|
||||
import com.hbm.entity.item.EntityTNTPrimedBase;
|
||||
import com.hbm.explosion.ExplosionThermo;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
@ -68,7 +68,8 @@ public class RedBarrel extends BlockDetonatable {
|
||||
int a = rand.nextInt(9) - 4 + ix;
|
||||
int b = rand.nextInt(9) - 4 + iy;
|
||||
int c = rand.nextInt(9) - 4 + iz;
|
||||
if(world.getBlock(a, b, c).isReplaceable(world, a, b, c) && BlockTaint.hasPosNeightbour(world, a, b, c)) {
|
||||
Block block = world.getBlock(a, b, c);
|
||||
if(block.isNormalCube() && !block.isAir(world, a, b, c)) {
|
||||
world.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(3) + 4, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.blocks.network;
|
||||
|
||||
import api.hbm.block.IToolable;
|
||||
import com.hbm.blocks.IBlockMultiPass;
|
||||
import com.hbm.interfaces.ICopiable;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.render.block.RenderBlockMultipass;
|
||||
import com.hbm.tileentity.network.TileEntityCableBaseNT;
|
||||
@ -124,7 +125,7 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB
|
||||
return IBlockMultiPass.getRenderType();
|
||||
}
|
||||
|
||||
public static class TileEntityCablePaintable extends TileEntityCableBaseNT {
|
||||
public static class TileEntityCablePaintable extends TileEntityCableBaseNT implements ICopiable {
|
||||
|
||||
private Block block;
|
||||
private int meta;
|
||||
@ -168,5 +169,23 @@ public class BlockCablePaintable extends BlockContainer implements IToolable, IB
|
||||
if(block != null) nbt.setInteger("block", Block.getIdFromBlock(block));
|
||||
nbt.setInteger("meta", meta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||
NBTTagCompound nbt = new NBTTagCompound();
|
||||
if(block != null) {
|
||||
nbt.setInteger("paintblock", Block.getIdFromBlock(block));
|
||||
nbt.setInteger("paintmeta", meta);
|
||||
}
|
||||
return nbt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||
if(nbt.hasKey("paintblock")) {
|
||||
this.block = Block.getBlockById(nbt.getInteger("paintblock"));
|
||||
this.meta = nbt.getInteger("paintmeta");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,16 +9,21 @@ import com.hbm.tileentity.network.TileEntityDroneRequester;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class DroneDock extends BlockContainer implements ITooltipProvider {
|
||||
|
||||
@ -69,4 +74,53 @@ public class DroneDock extends BlockContainer implements ITooltipProvider {
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||
if(this == ModBlocks.drone_dock) this.dropContents(world, x, y, z, block, meta, 0, 9);
|
||||
if(this == ModBlocks.drone_crate_provider) this.dropContents(world, x, y, z, block, meta, 0, 9);
|
||||
if(this == ModBlocks.drone_crate_requester) this.dropContents(world, x, y, z, block, meta, 9, 18);
|
||||
super.breakBlock(world, x, y, z, block, meta);
|
||||
}
|
||||
|
||||
private final Random rand = new Random();
|
||||
public void dropContents(World world, int x, int y, int z, Block block, int meta, int start, int end) {
|
||||
ISidedInventory sidedInventory = (ISidedInventory) world.getTileEntity(x, y, z);
|
||||
|
||||
if(sidedInventory != null) {
|
||||
|
||||
for(int i1 = start; i1 < end; ++i1) {
|
||||
ItemStack stack = sidedInventory.getStackInSlot(i1);
|
||||
|
||||
if(stack != null) {
|
||||
float f = this.rand.nextFloat() * 0.8F + 0.1F;
|
||||
float f1 = this.rand.nextFloat() * 0.8F + 0.1F;
|
||||
float f2 = this.rand.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while(stack.stackSize > 0) {
|
||||
int j1 = this.rand.nextInt(21) + 10;
|
||||
|
||||
if(j1 > stack.stackSize) {
|
||||
j1 = stack.stackSize;
|
||||
}
|
||||
|
||||
stack.stackSize -= j1;
|
||||
EntityItem entity = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(stack.getItem(), j1, stack.getItemDamage()));
|
||||
|
||||
if(stack.hasTagCompound()) {
|
||||
entity.getEntityItem().setTagCompound((NBTTagCompound) stack.getTagCompound().copy());
|
||||
}
|
||||
|
||||
float f3 = 0.05F;
|
||||
entity.motionX = (float) this.rand.nextGaussian() * f3;
|
||||
entity.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F;
|
||||
entity.motionZ = (float) this.rand.nextGaussian() * f3;
|
||||
world.spawnEntityInWorld(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
world.func_147453_f(x, y, z, block);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.blocks.network;
|
||||
import api.hbm.block.IToolable;
|
||||
import com.hbm.blocks.IBlockMultiPass;
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.interfaces.ICopiable;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.render.block.RenderBlockMultipass;
|
||||
import com.hbm.tileentity.network.TileEntityPipeBaseNT;
|
||||
@ -163,7 +164,7 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
|
||||
public static class TileEntityPipePaintable extends TileEntityPipeBaseNT {
|
||||
public static class TileEntityPipePaintable extends TileEntityPipeBaseNT implements ICopiable {
|
||||
|
||||
private Block block;
|
||||
private int meta;
|
||||
@ -195,5 +196,23 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo
|
||||
if(block != null) nbt.setInteger("block", Block.getIdFromBlock(block));
|
||||
nbt.setInteger("meta", meta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||
NBTTagCompound nbt = new NBTTagCompound();
|
||||
if(block != null) {
|
||||
nbt.setInteger("paintblock", Block.getIdFromBlock(block));
|
||||
nbt.setInteger("paintmeta", meta);
|
||||
}
|
||||
return nbt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||
if(nbt.hasKey("paintblock")) {
|
||||
this.block = Block.getBlockById(nbt.getInteger("paintblock"));
|
||||
this.meta = nbt.getInteger("paintmeta");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.bomb.BlockTaint;
|
||||
import com.hbm.entity.effect.EntityNukeTorex;
|
||||
import com.hbm.entity.logic.EntityBalefire;
|
||||
import com.hbm.entity.logic.EntityNukeExplosionMK5;
|
||||
@ -22,6 +21,7 @@ import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType;
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import api.hbm.entity.IRadarDetectableNT;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@ -211,7 +211,8 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo
|
||||
int a = rand.nextInt(r) + (int) posX - (r / 2 - 1);
|
||||
int b = rand.nextInt(r) + (int) posY - (r / 2 - 1);
|
||||
int c = rand.nextInt(r) + (int) posZ - (r / 2 - 1);
|
||||
if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) {
|
||||
Block block = worldObj.getBlock(a, b, c);
|
||||
if(block.isNormalCube() && !block.isAir(worldObj, a, b, c)) {
|
||||
worldObj.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(3) + 4, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.bomb.BlockTaint;
|
||||
import com.hbm.config.BombConfig;
|
||||
import com.hbm.entity.effect.EntityBlackHole;
|
||||
import com.hbm.entity.effect.EntityCloudFleija;
|
||||
@ -128,7 +127,10 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT {
|
||||
int a = rand.nextInt(11) + (int) this.posX - 5;
|
||||
int b = rand.nextInt(11) + (int) this.posY - 5;
|
||||
int c = rand.nextInt(11) + (int) this.posZ - 5;
|
||||
if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) worldObj.setBlock(a, b, c, ModBlocks.taint);
|
||||
Block block = worldObj.getBlock(a, b, c);
|
||||
if(block.isNormalCube() && !block.isAir(worldObj, a, b, c)) {
|
||||
worldObj.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(3) + 4, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.powder_spark_mix, 1); }
|
||||
|
||||
@ -55,8 +55,8 @@ public class EntityCreeperTainted extends EntityCreeper implements IRadiationImm
|
||||
int a = rand.nextInt(15) + (int) posX - 7;
|
||||
int b = rand.nextInt(15) + (int) posY - 7;
|
||||
int c = rand.nextInt(15) + (int) posZ - 7;
|
||||
|
||||
if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && hasPosNeightbour(worldObj, a, b, c)) {
|
||||
Block block = worldObj.getBlock(a, b, c);
|
||||
if(block.isNormalCube() && !block.isAir(worldObj, a, b, c)) {
|
||||
if(!GeneralConfig.enableHardcoreTaint) {
|
||||
worldObj.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(3) + 5, 2);
|
||||
} else {
|
||||
@ -71,8 +71,8 @@ public class EntityCreeperTainted extends EntityCreeper implements IRadiationImm
|
||||
int a = rand.nextInt(7) + (int) posX - 3;
|
||||
int b = rand.nextInt(7) + (int) posY - 3;
|
||||
int c = rand.nextInt(7) + (int) posZ - 3;
|
||||
|
||||
if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && hasPosNeightbour(worldObj, a, b, c)) {
|
||||
Block block = worldObj.getBlock(a, b, c);
|
||||
if(block.isNormalCube() && !block.isAir(worldObj, a, b, c)) {
|
||||
if(!GeneralConfig.enableHardcoreTaint) {
|
||||
worldObj.setBlock(a, b, c, ModBlocks.taint, rand.nextInt(6) + 10, 2);
|
||||
} else {
|
||||
|
||||
@ -14,12 +14,10 @@ import com.hbm.util.ItemStackUtil;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.WeightedRandomChestContent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect;
|
||||
@ -177,13 +175,4 @@ public class SatelliteHandler extends TemplateRecipeHandler implements ICompatNH
|
||||
return getCycledIngredients(cycleticks / 20, stacks);
|
||||
}
|
||||
}
|
||||
|
||||
private static HashMap<ItemStack, ItemStack> getRecipeMap() {
|
||||
HashMap<ItemStack, ItemStack> recipeMap = new HashMap<>();
|
||||
ItemStack minerStack = new ItemStack(ModItems.sat_miner);
|
||||
ItemStack lunarMinerStack = new ItemStack(ModItems.sat_lunar_miner);
|
||||
Arrays.stream(ItemPool.getPool(ItemPoolsSatellite.POOL_SAT_MINER)).forEach(poolEntry -> recipeMap.put(minerStack, poolEntry.theItemId));
|
||||
Arrays.stream(ItemPool.getPool(ItemPoolsSatellite.POOL_SAT_LUNAR)).forEach(poolEntry -> recipeMap.put(lunarMinerStack, poolEntry.theItemId));
|
||||
return recipeMap;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3830,7 +3830,7 @@ public class ModItems {
|
||||
gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt");
|
||||
gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92");
|
||||
gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo");
|
||||
gun_cryocannon = new ItemCryoCannon(GunEnergyFactory.getCryoCannonConfig()).setUnlocalizedName("gun_cryocannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryocannon");
|
||||
gun_cryocannon = new ItemCryoCannon(GunEnergyFactory.getCryoCannonConfig()).setUnlocalizedName("gun_cryocannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter");
|
||||
gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext");
|
||||
|
||||
ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0);
|
||||
|
||||
@ -1,40 +0,0 @@
|
||||
package com.hbm.items.block;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.bomb.BlockTaint;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
public class ItemTaintBlock extends ItemBlock
|
||||
{
|
||||
public ItemTaintBlock(Block p_i45358_1_)
|
||||
{
|
||||
super(p_i45358_1_);
|
||||
this.setMaxDamage(0);
|
||||
this.setHasSubtypes(true);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIconFromDamage(int p_77617_1_)
|
||||
{
|
||||
return this.field_150939_a.func_149735_b(2, BlockTaint.func_150032_b(p_77617_1_));
|
||||
}
|
||||
|
||||
public int getMetadata(int p_77647_1_)
|
||||
{
|
||||
return p_77647_1_;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool)
|
||||
{
|
||||
list.add("DO NOT TOUCH, BREATHE OR STARE AT.");
|
||||
}
|
||||
}
|
||||
@ -54,7 +54,7 @@ public class ItemAmmoHIMARS extends Item {
|
||||
public ItemAmmoHIMARS() {
|
||||
this.setHasSubtypes(true);
|
||||
this.setCreativeTab(MainRegistry.weaponTab);
|
||||
this.setTextureName(RefStrings.MODID + ":ammo_rocket");
|
||||
this.setTextureName(RefStrings.MODID + ":ammo_standard.rocket_he");
|
||||
this.setMaxStackSize(1);
|
||||
init();
|
||||
}
|
||||
|
||||
@ -771,7 +771,6 @@ public class ClientProxy extends ServerProxy {
|
||||
@Override
|
||||
public void registerBlockRenderer() {
|
||||
|
||||
RenderingRegistry.registerBlockHandler(new RenderTaintBlock());
|
||||
RenderingRegistry.registerBlockHandler(new RenderScaffoldBlock());
|
||||
RenderingRegistry.registerBlockHandler(new RenderTapeBlock());
|
||||
RenderingRegistry.registerBlockHandler(new RenderSteelBeam());
|
||||
|
||||
@ -3,7 +3,6 @@ package com.hbm.potion;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.bomb.BlockTaint;
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.config.PotionConfig;
|
||||
import com.hbm.entity.mob.EntityTaintCrab;
|
||||
@ -19,6 +18,7 @@ import com.hbm.util.ContaminationUtil.HazardType;
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.passive.EntityCow;
|
||||
@ -109,15 +109,13 @@ public class HbmPotion extends Potion {
|
||||
|
||||
if(GeneralConfig.enableHardcoreTaint && !entity.worldObj.isRemote) {
|
||||
|
||||
int x = (int)(entity.posX - 1);
|
||||
int y = (int)entity.posY;
|
||||
int z = (int)(entity.posZ);
|
||||
int x = (int) Math.floor(entity.posX);
|
||||
int y = (int) Math.floor(entity.posY);
|
||||
int z = (int) Math.floor(entity.posZ);
|
||||
|
||||
if(entity.worldObj.getBlock(x, y, z)
|
||||
.isReplaceable(entity.worldObj, x, y, z) &&
|
||||
BlockTaint.hasPosNeightbour(entity.worldObj, x, y, z)) {
|
||||
|
||||
entity.worldObj.setBlock(x, y, z, ModBlocks.taint, 14, 2);
|
||||
Block b = entity.worldObj.getBlock(x, y - 1, z);
|
||||
if(y > 1 && b.isNormalCube() && !b.isAir(entity.worldObj, x, y - 1, z)) {
|
||||
entity.worldObj.setBlock(x, y - 1, z, ModBlocks.taint, 14, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,124 +0,0 @@
|
||||
package com.hbm.render.block;
|
||||
|
||||
import com.hbm.blocks.bomb.BlockTaint;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public class RenderTaintBlock implements ISimpleBlockRenderingHandler {
|
||||
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { }
|
||||
|
||||
@Override
|
||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
|
||||
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z));
|
||||
|
||||
if (renderer.hasOverrideBlockTexture())
|
||||
{
|
||||
iicon = renderer.overrideBlockTexture;
|
||||
}
|
||||
|
||||
boolean ceil = world.getBlock(x, y + 1, z).isNormalCube();
|
||||
boolean floor = world.getBlock(x, y - 1, z).isNormalCube();
|
||||
boolean side1 = world.getBlock(x, y, z + 1).isNormalCube();
|
||||
boolean side2 = world.getBlock(x - 1, y, z).isNormalCube();
|
||||
boolean side3 = world.getBlock(x, y, z - 1).isNormalCube();
|
||||
boolean side4 = world.getBlock(x + 1, y, z).isNormalCube();
|
||||
|
||||
tessellator.setBrightness(block.getMixedBrightnessForBlock(renderer.blockAccess, x, y, z));
|
||||
int l = block.colorMultiplier(renderer.blockAccess, x, y, z);
|
||||
float f = (float)(l >> 16 & 255) / 255.0F;
|
||||
float f1 = (float)(l >> 8 & 255) / 255.0F;
|
||||
float f2 = (float)(l & 255) / 255.0F;
|
||||
tessellator.setColorOpaque_F(f, f1, f2);
|
||||
double d3 = (double)iicon.getMinU();
|
||||
double d4 = (double)iicon.getMinV();
|
||||
double d0 = (double)iicon.getMaxU();
|
||||
double d1 = (double)iicon.getMaxV();
|
||||
double d2 = 0.05D;
|
||||
renderer.blockAccess.getBlockMetadata(x, y, z);
|
||||
|
||||
if (side2)
|
||||
{
|
||||
tessellator.addVertexWithUV((double)x + d2, (double)(y + 1), (double)(z + 1), d3, d4);
|
||||
tessellator.addVertexWithUV((double)x + d2, (double)(y + 0), (double)(z + 1), d3, d1);
|
||||
tessellator.addVertexWithUV((double)x + d2, (double)(y + 0), (double)(z + 0), d0, d1);
|
||||
tessellator.addVertexWithUV((double)x + d2, (double)(y + 1), (double)(z + 0), d0, d4);
|
||||
tessellator.addVertexWithUV((double)x + d2, (double)(y + 1), (double)(z + 0), d0, d4);
|
||||
tessellator.addVertexWithUV((double)x + d2, (double)(y + 0), (double)(z + 0), d0, d1);
|
||||
tessellator.addVertexWithUV((double)x + d2, (double)(y + 0), (double)(z + 1), d3, d1);
|
||||
tessellator.addVertexWithUV((double)x + d2, (double)(y + 1), (double)(z + 1), d3, d4);
|
||||
}
|
||||
|
||||
if (side4)
|
||||
{
|
||||
tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 0), (double)(z + 1), d0, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 1), (double)(z + 1), d0, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 1), (double)(z + 0), d3, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 0), (double)(z + 0), d3, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 0), (double)(z + 0), d3, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 1), (double)(z + 0), d3, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 1), (double)(z + 1), d0, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 0), (double)(z + 1), d0, d1);
|
||||
}
|
||||
|
||||
if (side3)
|
||||
{
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0), (double)z + d2, d0, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1), (double)z + d2, d0, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1), (double)z + d2, d3, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)z + d2, d3, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)z + d2, d3, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1), (double)z + d2, d3, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1), (double)z + d2, d0, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0), (double)z + d2, d0, d1);
|
||||
}
|
||||
|
||||
if (side1)
|
||||
{
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1), (double)(z + 1) - d2, d3, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0), (double)(z + 1) - d2, d3, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)(z + 1) - d2, d0, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1), (double)(z + 1) - d2, d0, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1), (double)(z + 1) - d2, d0, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)(z + 1) - d2, d0, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0), (double)(z + 1) - d2, d3, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1), (double)(z + 1) - d2, d3, d4);
|
||||
}
|
||||
|
||||
if (ceil)
|
||||
{
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1) - d2, (double)(z + 0), d3, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1) - d2, (double)(z + 1), d3, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1) - d2, (double)(z + 1), d0, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1) - d2, (double)(z + 0), d0, d4);
|
||||
}
|
||||
|
||||
if (floor)
|
||||
{
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0) + d2, (double)(z + 0), d0, d4);
|
||||
tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0) + d2, (double)(z + 1), d0, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0) + d2, (double)(z + 1), d3, d1);
|
||||
tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0) + d2, (double)(z + 0), d3, d4);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRender3DInInventory(int modelId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderId() {
|
||||
return BlockTaint.renderID;
|
||||
}
|
||||
|
||||
}
|
||||
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 350 B |
|
Before Width: | Height: | Size: 371 B |
|
Before Width: | Height: | Size: 391 B |
|
Before Width: | Height: | Size: 370 B |
|
Before Width: | Height: | Size: 348 B |
|
Before Width: | Height: | Size: 339 B |
|
Before Width: | Height: | Size: 348 B |
BIN
src/main/resources/assets/hbm/textures/blocks/taint.png
Normal file
|
After Width: | Height: | Size: 731 B |
|
Before Width: | Height: | Size: 476 B |
|
Before Width: | Height: | Size: 512 B |
|
Before Width: | Height: | Size: 487 B |
|
Before Width: | Height: | Size: 489 B |
|
Before Width: | Height: | Size: 477 B |
|
Before Width: | Height: | Size: 479 B |
|
Before Width: | Height: | Size: 463 B |
|
Before Width: | Height: | Size: 458 B |
|
Before Width: | Height: | Size: 482 B |
|
Before Width: | Height: | Size: 499 B |
|
Before Width: | Height: | Size: 499 B |
|
Before Width: | Height: | Size: 502 B |
|
Before Width: | Height: | Size: 497 B |
|
Before Width: | Height: | Size: 499 B |
|
Before Width: | Height: | Size: 486 B |
|
Before Width: | Height: | Size: 483 B |
|
Before Width: | Height: | Size: 509 B |
|
Before Width: | Height: | Size: 431 B |
|
Before Width: | Height: | Size: 427 B |
|
Before Width: | Height: | Size: 197 B |
|
Before Width: | Height: | Size: 254 B |
|
Before Width: | Height: | Size: 193 B |
|
Before Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 454 B |
|
Before Width: | Height: | Size: 608 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 208 B |
|
Before Width: | Height: | Size: 320 B |
|
Before Width: | Height: | Size: 297 B |
|
Before Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 309 B |
|
Before Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 306 B |
|
Before Width: | Height: | Size: 341 B |
|
Before Width: | Height: | Size: 405 B |
|
Before Width: | Height: | Size: 201 B |
|
Before Width: | Height: | Size: 194 B |
|
Before Width: | Height: | Size: 233 B |
|
Before Width: | Height: | Size: 276 B |
|
Before Width: | Height: | Size: 360 B |
|
Before Width: | Height: | Size: 318 B |
|
Before Width: | Height: | Size: 156 B |
|
Before Width: | Height: | Size: 315 B |
|
Before Width: | Height: | Size: 304 B |
|
Before Width: | Height: | Size: 244 B |
|
Before Width: | Height: | Size: 278 B |
|
Before Width: | Height: | Size: 318 B |
|
Before Width: | Height: | Size: 234 B |
|
Before Width: | Height: | Size: 335 B |
|
Before Width: | Height: | Size: 243 B |
|
Before Width: | Height: | Size: 332 B |
|
Before Width: | Height: | Size: 392 B |
|
Before Width: | Height: | Size: 353 B |
|
Before Width: | Height: | Size: 321 B |
|
Before Width: | Height: | Size: 257 B |
|
Before Width: | Height: | Size: 259 B |
|
Before Width: | Height: | Size: 245 B |
|
Before Width: | Height: | Size: 309 B |
|
Before Width: | Height: | Size: 276 B |
|
Before Width: | Height: | Size: 479 B |
|
Before Width: | Height: | Size: 244 B |
|
Before Width: | Height: | Size: 280 B |
|
Before Width: | Height: | Size: 335 B |
|
Before Width: | Height: | Size: 270 B |
|
Before Width: | Height: | Size: 299 B |
|
Before Width: | Height: | Size: 327 B |