From ff87b1a062c773f3ba465c955e79939a7e8b7f76 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 28 Mar 2022 23:55:03 +0200 Subject: [PATCH] proper sulfuric acid --- src/main/java/com/hbm/blocks/ModBlocks.java | 11 +- .../com/hbm/blocks/fluid/GenericFluid.java | 31 ++++++ .../hbm/blocks/fluid/GenericFluidBlock.java | 96 ++++++++++++++++++ .../com/hbm/blocks/fluid/SchrabidicBlock.java | 6 +- .../blocks/stone_resource.asbestos.png | Bin 320 -> 325 bytes ...ric_flow.png => sulfuric_acid_flowing.png} | Bin ...cmeta => sulfuric_acid_flowing.png.mcmeta} | 0 ...uric_still.png => sulfuric_acid_still.png} | Bin ....mcmeta => sulfuric_acid_still.png.mcmeta} | 0 9 files changed, 133 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/fluid/GenericFluid.java create mode 100644 src/main/java/com/hbm/blocks/fluid/GenericFluidBlock.java rename src/main/resources/assets/hbm/textures/blocks/{sulfuric_flow.png => sulfuric_acid_flowing.png} (100%) rename src/main/resources/assets/hbm/textures/blocks/{sulfuric_flow.png.mcmeta => sulfuric_acid_flowing.png.mcmeta} (100%) rename src/main/resources/assets/hbm/textures/blocks/{sulfuric_still.png => sulfuric_acid_still.png} (100%) rename src/main/resources/assets/hbm/textures/blocks/{sulfuric_still.png.mcmeta => sulfuric_acid_still.png.mcmeta} (100%) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f204f84b6..d355520dd 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2218,16 +2218,9 @@ public class ModBlocks { FluidRegistry.registerFluid(volcanic_lava_fluid); volcanic_lava_block = new VolcanicBlock(volcanic_lava_fluid, Material.lava).setBlockName("volcanic_lava_block").setResistance(500F); - sulfuric_acid_fluid = new SchrabidicFluid().setDensity(1840).setViscosity(1000).setTemperature(273).setUnlocalizedName("sulfuric_acid_fluid"); + sulfuric_acid_fluid = new GenericFluid("sulfuric_acid_fluid").setDensity(1840).setViscosity(1000).setTemperature(273); FluidRegistry.registerFluid(sulfuric_acid_fluid); - sulfuric_acid_block = new SchrabidicBlock(sulfuric_acid_fluid, Material.water, ModDamageSource.acid) { //TODO: make a new block class - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister register) { - stillIcon = register.registerIcon(RefStrings.MODID + ":sulfuric_acid_still"); - flowingIcon = register.registerIcon(RefStrings.MODID + ":sulfuric_acid_flowing"); - } - }.setBlockName("sulfuric_acid_block").setResistance(500F); + sulfuric_acid_block = new GenericFluidBlock(sulfuric_acid_fluid, Material.water, "sulfuric_acid_still", "sulfuric_acid_flowing").setDamage(ModDamageSource.acid, 5F).setBlockName("sulfuric_acid_block").setResistance(500F); dummy_block_flare = new DummyBlockFlare(Material.iron, false).setBlockName("dummy_block_flare").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); dummy_port_flare = new DummyBlockFlare(Material.iron, true).setBlockName("dummy_port_flare").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); diff --git a/src/main/java/com/hbm/blocks/fluid/GenericFluid.java b/src/main/java/com/hbm/blocks/fluid/GenericFluid.java new file mode 100644 index 000000000..d3005cb2d --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/GenericFluid.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.fluid; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.Fluid; + +public class GenericFluid extends Fluid { + + public GenericFluid(String name) { + super("corium_fluid"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon() { + return getStillIcon(); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getStillIcon() { + return this.block.getIcon(0, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getFlowingIcon() { + return this.block.getIcon(1, 0); + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/GenericFluidBlock.java b/src/main/java/com/hbm/blocks/fluid/GenericFluidBlock.java new file mode 100644 index 000000000..ebd04d324 --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/GenericFluidBlock.java @@ -0,0 +1,96 @@ +package com.hbm.blocks.fluid; + +import java.util.Random; + +import com.hbm.lib.ModDamageSource; +import com.hbm.lib.RefStrings; +import com.hbm.util.ArmorUtil; + +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.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.passive.EntitySquid; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; + +public class GenericFluidBlock extends BlockFluidClassic { + + @SideOnly(Side.CLIENT) + public static IIcon stillIcon; + @SideOnly(Side.CLIENT) + public static IIcon flowingIcon; + public Random rand = new Random(); + + private String stillName; + private String flowingName; + + public float damage; + public DamageSource damageSource; + + public GenericFluidBlock(Fluid fluid, Material material, String still, String flowing) { + super(fluid, material); + setCreativeTab(null); + stillName = still; + flowingName = flowing; + displacements.put(this, false); + } + + public GenericFluidBlock setDamage(DamageSource source, float amount) { + damageSource = source; + damage = amount; + return this; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1) ? stillIcon : flowingIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister register) { + stillIcon = register.registerIcon(RefStrings.MODID + ":" + stillName); + flowingIcon = register.registerIcon(RefStrings.MODID + ":" + flowingName); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + + if(damageSource != null) { + + if(entity instanceof EntityItem) { + + entity.motionX = 0; + entity.motionY = 0; + entity.motionZ = 0; + + if(entity.ticksExisted % 20 == 0 && !world.isRemote) { + entity.attackEntityFrom(damageSource, damage * 0.1F); + } + if(entity.ticksExisted % 5 == 0) { + world.spawnParticle("cloud", entity.posX, entity.posY, entity.posZ, 0.0, 0.0, 0.0); + } + } else { + + if(entity.motionY < -0.2) + entity.motionY *= 0.5; + + if(!world.isRemote) { + entity.attackEntityFrom(damageSource, damage); + } + } + + if(entity.ticksExisted % 5 == 0) { + world.playSoundAtEntity(entity, "random.fizz", 0.2F, 1F); + } + } + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/SchrabidicBlock.java b/src/main/java/com/hbm/blocks/fluid/SchrabidicBlock.java index cb656986c..57e9b7b1a 100644 --- a/src/main/java/com/hbm/blocks/fluid/SchrabidicBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/SchrabidicBlock.java @@ -77,7 +77,9 @@ public class SchrabidicBlock extends BlockFluidClassic { @Override public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { - entity.setInWeb(); + + if(this.getMaterial() == ModBlocks.fluidschrabidic) + entity.setInWeb(); if(entity instanceof EntityLivingBase) ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1.0F); @@ -97,7 +99,7 @@ public class SchrabidicBlock extends BlockFluidClassic { } public boolean reactToBlocks(World world, int x, int y, int z) { - if(world.getBlock(x, y, z).getMaterial() != ModBlocks.fluidschrabidic) { + if(world.getBlock(x, y, z).getMaterial() != this.getMaterial()) { if(world.getBlock(x, y, z).getMaterial().isLiquid()) { return true; } diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_resource.asbestos.png b/src/main/resources/assets/hbm/textures/blocks/stone_resource.asbestos.png index 956204a9b016e702815ccaca6814a79c7a2da17c..d3c7c886c4694217b467ef77b7b22079c08a81fa 100644 GIT binary patch delta 282 zcmV+#0puK5G=Ka_L_t(IjeS$WjRYYK^CBup4XJ?|rsUL+_x(0Cq=nnZ$jFCg z4+$Z_3APhn@AuDdW&!}#TBs_xJGy&M05CIfxI3x}W`+?F$jl97keTht01XC!s=^?E zgF(vR3DezhcMNxjyYEA#$`KJDPMMe)rs|>uu4GeHkLTTeOMl?2Tr+bUsmbXTaovr{ zgYN$G5?$7NdZAUDG>QS5UH8h6cM)-$_~e7iI%!|mwUciX*IFAyhqW)BN?27Gs`d2Y zH1}KqVE$MC(-*e6J~FiS%&v_^u$gU{%5bt#)IXZ2$lO07*qoM6N<$g2oVqTmS$7 delta 277 zcmV+w0qXw60>A>0G=KL=L_t(IjeS$W4FfR>N%y2qwjIkt3EmX2mN zyOBgh;DjLwcgLlwdOT4*byrRks7g>2o6J1EPYLR(7!h#ynSZ3>5wWl&iKYjVOQ+0S zWGT8k>eQNCS3<2`@0FpxjWNC^o_wgXcG~xS&*Ia>-unc};eUIfiCk6d?!#{G9s!{J zoB!^MHnujo>g-j$E|$P%Hf2_ZO^Z@ZtRUShn`(TMA-{Bsf&SFWGBdvts_T+e!S!Aj b3jjWWxbq9|vkr%u00000NkvXXu0mjf3^Ilf diff --git a/src/main/resources/assets/hbm/textures/blocks/sulfuric_flow.png b/src/main/resources/assets/hbm/textures/blocks/sulfuric_acid_flowing.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/sulfuric_flow.png rename to src/main/resources/assets/hbm/textures/blocks/sulfuric_acid_flowing.png diff --git a/src/main/resources/assets/hbm/textures/blocks/sulfuric_flow.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/sulfuric_acid_flowing.png.mcmeta similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/sulfuric_flow.png.mcmeta rename to src/main/resources/assets/hbm/textures/blocks/sulfuric_acid_flowing.png.mcmeta diff --git a/src/main/resources/assets/hbm/textures/blocks/sulfuric_still.png b/src/main/resources/assets/hbm/textures/blocks/sulfuric_acid_still.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/sulfuric_still.png rename to src/main/resources/assets/hbm/textures/blocks/sulfuric_acid_still.png diff --git a/src/main/resources/assets/hbm/textures/blocks/sulfuric_still.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/sulfuric_acid_still.png.mcmeta similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/sulfuric_still.png.mcmeta rename to src/main/resources/assets/hbm/textures/blocks/sulfuric_acid_still.png.mcmeta