more grenade crap

This commit is contained in:
Bob 2026-04-06 20:09:10 +02:00
parent d03abeecdd
commit 759903158b
22 changed files with 172 additions and 54 deletions

View File

@ -1150,10 +1150,6 @@ public class ModBlocks {
public static Block gas_explosive;
public static Block vacuum;
@Deprecated public static Block absorber;
@Deprecated public static Block absorber_red;
@Deprecated public static Block absorber_green;
@Deprecated public static Block absorber_pink;
public static Block rad_absorber;
public static Block decon;
@ -2288,11 +2284,6 @@ public class ModBlocks {
gas_explosive = new BlockGasExplosive().setBlockName("gas_explosive").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_explosive");
vacuum = new BlockVacuum().setBlockName("vacuum").setResistance(1000000F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vacuum");
absorber = new BlockGeneric(Material.iron).setBlockName("absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
absorber_red = new BlockGeneric(Material.iron).setBlockName("absorber_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
absorber_green = new BlockGeneric(Material.iron).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
absorber_pink = new BlockGeneric(Material.iron).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
rad_absorber = new BlockAbsorber(Material.iron).setBlockName("rad_absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
decon = new BlockDecon(Material.iron).setBlockName("decon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":decon_side");
@ -3312,10 +3303,6 @@ public class ModBlocks {
GameRegistry.registerBlock(struct_icf_core, struct_icf_core.getUnlocalizedName());
//Absorbers
GameRegistry.registerBlock(absorber, absorber.getUnlocalizedName());
GameRegistry.registerBlock(absorber_red, absorber_red.getUnlocalizedName());
GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName());
GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName());
GameRegistry.registerBlock(rad_absorber, ItemBlockBase.class, rad_absorber.getUnlocalizedName());
GameRegistry.registerBlock(decon, decon.getUnlocalizedName());

View File

@ -110,4 +110,5 @@ public class EntityGrenadeUniversal extends EntityThrowableInterp {
}
@Override protected int groundDespawn() { return 0; }
@Override public boolean fullBlockCollisions() { return true; }
}

View File

@ -248,9 +248,13 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile {
float drag = this.getAirDrag();
double gravity = this.getGravityVelocity();
if(fullBlockCollisions()) {
this.moveEntity(this.motionX * motionMult(), this.motionY * motionMult(), this.motionZ * motionMult());
} else {
this.posX += this.motionX * motionMult();
this.posY += this.motionY * motionMult();
this.posZ += this.motionZ * motionMult();
}
if(this.isInWater()) {
for(int i = 0; i < 4; ++i) {
@ -269,6 +273,10 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile {
}
}
public boolean fullBlockCollisions() {
return false;
}
public boolean doesImpactEntities() {
return true;
}

View File

@ -9,6 +9,7 @@ import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.explosion.vanillant.interfaces.ICustomDamageHandler;
import com.hbm.explosion.vanillant.interfaces.IEntityProcessor;
import com.hbm.explosion.vanillant.interfaces.IEntityRangeMutator;
import com.hbm.interfaces.NotableComments;
import net.minecraft.enchantment.EnchantmentProtection;
import net.minecraft.entity.Entity;
@ -22,6 +23,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
@NotableComments
/** The amount of good decisions in NTM is few and far between, but the VNT explosion surely is one of them. */
public class EntityProcessorCross implements IEntityProcessor {

View File

@ -5,6 +5,7 @@ import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import com.hbm.entity.effect.EntityFireLingering;
import com.hbm.entity.grenade.EntityGrenadeUniversal;
import com.hbm.entity.projectile.EntityBulletBaseMK4;
import com.hbm.explosion.vanillant.ExplosionVNT;
@ -14,13 +15,22 @@ import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth;
import com.hbm.explosion.vanillant.standard.ExplosionEffectTiny;
import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon;
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
import com.hbm.handler.threading.PacketThreading;
import com.hbm.items.ItemEnumMulti;
import com.hbm.items.weapon.grenade.ItemGrenadeShell.EnumGrenadeShell;
import static com.hbm.items.weapon.grenade.ItemGrenadeShell.EnumGrenadeShell.*;
import com.hbm.items.weapon.sedna.BulletConfig;
import com.hbm.items.weapon.sedna.factory.Lego;
import com.hbm.main.NTMSounds;
import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.util.DamageResistanceHandler.DamageClass;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class ItemGrenadeFilling extends ItemEnumMulti {
@ -38,8 +48,10 @@ public class ItemGrenadeFilling extends ItemEnumMulti {
HE(EXPLODE_HE, 0x595533, 0xA49D62, FRAG, STICK), // high explosive
HE_FRAG(EXPLODE_FRAG, 0x595533, 0xE0BA29, FRAG, STICK), // high explosive with fragmentation
DEMO(EXPLODE_DEMO, 0x595533, 0xDD4029, FRAG, STICK), // demolition
INC(null, 0x5A5A5A, 0xFF5F21, FRAG, STICK), // incendiary
INC(EXPLODE_INC, 0x5A5A5A, 0xFF5F21, FRAG, STICK), // incendiary
CLUSTER(EXPLODE_CLUSTER, 0x5A5A5A, 0xFFC711, FRAG, STICK), // explosive pellets
EMP(EXPLODE_EMP, 0x93A1AC, 0x00FFFF, TECH), // tesla
PLASMA(EXPLODE_PLASMA, 0x655B2C, 0x4CFF00, TECH), // EMP but more oomph
NUCLEAR(null, 0, 0, NUKE); // nuka grenade
// and more which i haven't decided. probably plasma, EMP, perhaps laser(?)
@ -57,13 +69,9 @@ public class ItemGrenadeFilling extends ItemEnumMulti {
}
}
public static Consumer<EntityGrenadeUniversal> EXPLODE_POWDER = (grenade) -> {
standardExplode(grenade, 5F, 10F, 5F, 0F);
};
public static Consumer<EntityGrenadeUniversal> EXPLODE_POWDER = (grenade) -> { standardExplode(grenade, 5F, 10F, 5F, 0F); };
public static Consumer<EntityGrenadeUniversal> EXPLODE_HE = (grenade) -> {
standardExplode(grenade, 7.5F, 25F, 10F, 0.1F);
};
public static Consumer<EntityGrenadeUniversal> EXPLODE_HE = (grenade) -> { standardExplode(grenade, 7.5F, 25F, 10F, 0.1F); };
public static Consumer<EntityGrenadeUniversal> EXPLODE_FRAG = (grenade) -> {
standardExplode(grenade, 7.5F, 15F, 10F, 0.1F);
@ -100,6 +108,57 @@ public class ItemGrenadeFilling extends ItemEnumMulti {
vnt.explode();
};
public static Consumer<EntityGrenadeUniversal> EXPLODE_INC = (grenade) -> {
World world = grenade.worldObj;
standardExplode(grenade, 3F, 10F);
EntityFireLingering fire = new EntityFireLingering(world).setArea(6, 2).setDuration(200).setType(EntityFireLingering.TYPE_DIESEL);
fire.setPosition(grenade.posX, grenade.posY, grenade.posZ);
world.spawnEntityInWorld(fire);
for(int dx = -2; dx <= 2; dx++) for(int dy = -2; dy <= 2; dy++) for(int dz = -2; dz <= 2; dz++) {
int x = (int) Math.floor(grenade.posX) + dx;
int y = (int) Math.floor(grenade.posY) + dy;
int z = (int) Math.floor(grenade.posZ) + dz;
if(world.getBlock(x, y, z).isAir(grenade.worldObj, x, y, z)) {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isFlammable(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite())) {
world.setBlock(x, y, z, Blocks.fire);
break;
}
}
}
}
};
public static Consumer<EntityGrenadeUniversal> EXPLODE_EMP = (grenade) -> {
explodeStandardEnergy(grenade, 30F, 3F, DamageClass.ELECTRIC, 0.5F, 0.5F, 1F, 3F);
};
public static Consumer<EntityGrenadeUniversal> EXPLODE_PLASMA = (grenade) -> {
explodeStandardEnergy(grenade, 50F, 5F, DamageClass.PLASMA, 0.5F, 1F, 0.5F, 4F);
};
public static void explodeStandardEnergy(EntityGrenadeUniversal grenade, float damage, float range, DamageClass damageClass, float r, float g, float b, float scale) {
ExplosionVNT vnt = new ExplosionVNT(grenade.worldObj, grenade.posX, grenade.posY, grenade.posZ, range, grenade.getThrower());
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, damage).setDamageClass(damageClass));
vnt.setPlayerProcessor(new PlayerProcessorStandard());
vnt.explode();
grenade.worldObj.playSoundEffect(grenade.posX, grenade.posY, grenade.posZ, "hbm:entity.ufoBlast", 5.0F, 0.9F + grenade.worldObj.rand.nextFloat() * 0.2F);
grenade.worldObj.playSoundEffect(grenade.posX, grenade.posY, grenade.posZ, NTMSounds.VANILLA_FIREWORKS_BANG, 5.0F, 0.5F);
float yaw = grenade.worldObj.rand.nextFloat() * 180F;
for(int i = 0; i < 3; i++) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "plasmablast");
data.setFloat("r", r);
data.setFloat("g", g);
data.setFloat("b", b);
data.setFloat("pitch", -60F + 60F * i);
data.setFloat("yaw", yaw);
data.setFloat("scale", scale);
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, grenade.posX, grenade.posY + 0.125, grenade.posZ), new TargetPoint(grenade.dimension, grenade.posX, grenade.posY, grenade.posZ, 100));
}
}
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_TINY_EXPLODE = (bullet, mop) -> {
if(bullet.ticksExisted < 2) return;
Lego.tinyExplode(bullet, mop, 1.5F);
@ -118,7 +177,7 @@ public class ItemGrenadeFilling extends ItemEnumMulti {
public static void tinyExplode(EntityGrenadeUniversal grenade, float range, float damage) { tinyExplode(grenade, range, damage, 0F, 0F); }
public static void tinyExplode(EntityGrenadeUniversal grenade, float range, float damage, float dt, float dr) {
ExplosionVNT vnt = new ExplosionVNT(grenade.worldObj, grenade.posX, grenade.posY, grenade.posZ, range, grenade.getThrower());
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, damage).setupPiercing(dt, dr).setKnockback(0.25D));
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, damage).setupPiercing(dt, dr).setKnockback(0.25D));
vnt.setPlayerProcessor(new PlayerProcessorStandard());
vnt.setSFX(new ExplosionEffectTiny());
vnt.explode();

View File

@ -31,11 +31,9 @@ public class ItemGrenadeShell extends ItemEnumMulti {
public static enum EnumGrenadeShell {
FRAG(4, 20, 0.5D), // bonus fragmentation
STICK(4, 20, 0.25D), // thrown father
STICK(4, 20, 0.25D), // thrown farther
TECH(2, 20, 0.5D), // casing with electronics for EMP/plasma
NUKE(1, 20, 0.25D); // nuka grenade casing for high yield grenades
/* ^
* nice */
private int stackLimit;
private int drawDuration;

View File

@ -134,6 +134,8 @@ public class ItemGrenadeUniversal extends Item implements IEquipReceiver {
for(EnumGrenadeShell shell : EnumGrenadeShell.values()) for(EnumGrenadeFilling filling : EnumGrenadeFilling.values()) {
if(filling.compatibleShells.contains(shell)) for(EnumGrenadeFuze fuze : EnumGrenadeFuze.values()) list.add(make(shell, filling, fuze));
}
list.add(make(EnumGrenadeShell.TECH, EnumGrenadeFilling.HE, EnumGrenadeFuze.S3));
}
@SideOnly(Side.CLIENT)

View File

@ -30,6 +30,7 @@ public class ConfettiUtil {
if(entity.isEntityAlive()) return;
if(source.damageType.equals(DamageClass.LASER.name().toLowerCase(Locale.US))) pulverize(entity);
if(source.damageType.equals(DamageClass.ELECTRIC.name().toLowerCase(Locale.US))) pulverize(entity);
if(source.damageType.equals(DamageClass.PLASMA.name().toLowerCase(Locale.US))) cremate(entity);
if(source.isExplosion()) gib(entity);
if(source.isFireDamage()) cremate(entity);
}

View File

@ -299,7 +299,7 @@ public class Lego {
double y = mop.hitVec.yCoord + dir.offsetY * 0.25D;
double z = mop.hitVec.zCoord + dir.offsetZ * 0.25D;
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, x, y, z, range, bullet.getThrower());
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod)
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, bullet.damage * damageMod)
.setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent).setKnockback(0.25D));
vnt.setPlayerProcessor(new PlayerProcessorStandard());
vnt.setSFX(new ExplosionEffectTiny());

View File

@ -1517,6 +1517,10 @@ public class MainRegistry {
ignoreMappings.add("hbm:item.euphemium_capacitor");
ignoreMappings.add("hbm:item.toolbox_legacy");
ignoreMappings.add("hbm:item.crucible_template");
ignoreMappings.add("hbm:tile.absorber");
ignoreMappings.add("hbm:tile.absorber_red");
ignoreMappings.add("hbm:tile.absorber_green");
ignoreMappings.add("hbm:tile.absorber_pink");
/// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);

View File

@ -1078,21 +1078,6 @@ public class ModEventHandler {
event.getChunk().func_150807_a(x, y, z, Blocks.air, 0);
}
}*/
for(int x = 0; x < 16; x++) for(int y = 0; y < 255; y++) for(int z = 0; z < 16; z++) {
if(event.getChunk().getBlock(x, y, z) == ModBlocks.absorber) {
event.getChunk().func_150807_a(x, y, z, ModBlocks.rad_absorber, 0);
}
else if(event.getChunk().getBlock(x, y, z) == ModBlocks.absorber_red) {
event.getChunk().func_150807_a(x, y, z, ModBlocks.rad_absorber, 1);
}
else if(event.getChunk().getBlock(x, y, z) == ModBlocks.absorber_green) {
event.getChunk().func_150807_a(x, y, z, ModBlocks.rad_absorber, 2);
}
else if(event.getChunk().getBlock(x, y, z) == ModBlocks.absorber_pink) {
event.getChunk().func_150807_a(x, y, z, ModBlocks.rad_absorber, 3);
}
}
}
@SubscribeEvent

View File

@ -1109,7 +1109,13 @@ public class ResourceManager {
public static final ResourceLocation grenade_frag_label_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/frag_label.png");
public static final ResourceLocation grenade_frag_fuze_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/frag_fuze.png");
public static final ResourceLocation grenade_stick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/stick.png");
public static final ResourceLocation grenade_stick_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/stick_body.png");
public static final ResourceLocation grenade_stick_label_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/stick_label.png");
public static final ResourceLocation grenade_stick_fuze_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/stick_fuze.png");
public static final ResourceLocation grenade_tech_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/tech.png");
public static final ResourceLocation grenade_tech_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/tech_body.png");
public static final ResourceLocation grenade_tech_lights_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/tech_lights.png");
public static final ResourceLocation grenade_tech_fuze_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/tech_fuze.png");
public static final ResourceLocation grenade_nuka_tex = new ResourceLocation(RefStrings.MODID, "textures/models/grenades/nuka.png");
public static final ResourceLocation bj_eyepatch = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_eyepatch.png");

View File

@ -8,6 +8,7 @@ import org.lwjgl.opengl.GL11;
import com.hbm.items.weapon.grenade.ItemGrenadeUniversal;
import com.hbm.main.ResourceManager;
import com.hbm.render.tileentity.RenderArcFurnace;
import com.hbm.util.ColorUtil;
import net.minecraft.client.Minecraft;
@ -85,14 +86,17 @@ public class ItemRenderGrenade implements IItemRenderer {
}
if(shell == EnumGrenadeShell.STICK) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_stick_tex);
ResourceManager.grenades.renderPart("Stick");
renderStickBody(stack);
EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack);
GL11.glColor3f(ColorUtil.fr(filling.bodyColor), ColorUtil.fg(filling.bodyColor), ColorUtil.fb(filling.bodyColor));
bind(ResourceManager.grenade_stick_body_tex);
ResourceManager.grenades.renderPart("StickCap");
GL11.glColor3f(1F, 1F, 1F);
}
if(shell == EnumGrenadeShell.TECH) {
renderTechBody(stack);
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_tech_tex);
ResourceManager.grenades.renderPart("Tech");
ResourceManager.grenades.renderPart("TechRing");
}
@ -134,10 +138,13 @@ public class ItemRenderGrenade implements IItemRenderer {
if(renderType == null) {
GL11.glTranslated(0, -2, 0);
}
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_stick_tex);
ResourceManager.grenades.renderPart("Stick");
renderStickBody(stack);
if(renderType != null) {
EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack);
GL11.glColor3f(ColorUtil.fr(filling.bodyColor), ColorUtil.fg(filling.bodyColor), ColorUtil.fb(filling.bodyColor));
bind(ResourceManager.grenade_stick_body_tex);
ResourceManager.grenades.renderPart("StickCap");
GL11.glColor3f(1F, 1F, 1F);
}
}
@ -154,9 +161,9 @@ public class ItemRenderGrenade implements IItemRenderer {
GL11.glScaled(1.5, 1.5, 1.5);
GL11.glTranslated(0, -1, 0);
}
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_tech_tex);
ResourceManager.grenades.renderPart("Tech");
renderTechBody(stack);
if(renderType != null) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.grenade_tech_tex);
ResourceManager.grenades.renderPart("TechRing");
}
}
@ -210,6 +217,62 @@ public class ItemRenderGrenade implements IItemRenderer {
GL11.glDisable(GL11.GL_BLEND);
}
public static void renderStickBody(ItemStack stack) {
EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack);
EnumGrenadeFuze fuze = ItemGrenadeUniversal.getFuze(stack);
bind(ResourceManager.grenade_stick_tex);
ResourceManager.grenades.renderPart("Stick");
GL11.glEnable(GL11.GL_BLEND);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
GL11.glColor3f(ColorUtil.fr(filling.bodyColor), ColorUtil.fg(filling.bodyColor), ColorUtil.fb(filling.bodyColor));
bind(ResourceManager.grenade_stick_body_tex);
ResourceManager.grenades.renderPart("Stick");
GL11.glColor3f(ColorUtil.fr(filling.labelColor), ColorUtil.fg(filling.labelColor), ColorUtil.fb(filling.labelColor));
bind(ResourceManager.grenade_stick_label_tex);
ResourceManager.grenades.renderPart("Stick");
GL11.glColor3f(ColorUtil.fr(fuze.bandColor), ColorUtil.fg(fuze.bandColor), ColorUtil.fb(fuze.bandColor));
bind(ResourceManager.grenade_stick_fuze_tex);
ResourceManager.grenades.renderPart("Stick");
GL11.glColor3f(1F, 1F, 1F);
GL11.glDisable(GL11.GL_BLEND);
}
public static void renderTechBody(ItemStack stack) {
EnumGrenadeFilling filling = ItemGrenadeUniversal.getFilling(stack);
EnumGrenadeFuze fuze = ItemGrenadeUniversal.getFuze(stack);
bind(ResourceManager.grenade_tech_tex);
ResourceManager.grenades.renderPart("Tech");
GL11.glEnable(GL11.GL_BLEND);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
GL11.glColor3f(ColorUtil.fr(filling.bodyColor), ColorUtil.fg(filling.bodyColor), ColorUtil.fb(filling.bodyColor));
bind(ResourceManager.grenade_tech_body_tex);
ResourceManager.grenades.renderPart("Tech");
GL11.glColor3f(ColorUtil.fr(fuze.bandColor), ColorUtil.fg(fuze.bandColor), ColorUtil.fb(fuze.bandColor));
bind(ResourceManager.grenade_tech_fuze_tex);
ResourceManager.grenades.renderPart("Tech");
RenderArcFurnace.fullbright(true);
GL11.glColor3f(ColorUtil.fr(filling.labelColor), ColorUtil.fg(filling.labelColor), ColorUtil.fb(filling.labelColor));
bind(ResourceManager.grenade_tech_lights_tex);
ResourceManager.grenades.renderPart("Tech");
RenderArcFurnace.fullbright(false);
GL11.glColor3f(1F, 1F, 1F);
GL11.glDisable(GL11.GL_BLEND);
}
public static void bind(ResourceLocation res) {
Minecraft.getMinecraft().getTextureManager().bindTexture(res);
}

View File

@ -409,6 +409,7 @@ public class DamageResistanceHandler {
FIRE,
EXPLOSIVE,
ELECTRIC,
PLASMA,
LASER,
MICROWAVE,
SUBATOMIC,
@ -457,6 +458,7 @@ public class DamageResistanceHandler {
if(source.isFireDamage()) return CATEGORY_FIRE;
if(source.isProjectile()) return CATEGORY_PHYSICAL;
if(source.damageType.toLowerCase(Locale.US).equals(DamageClass.LASER.name().toLowerCase(Locale.US))) return CATEGORY_ENERGY;
if(source.damageType.toLowerCase(Locale.US).equals(DamageClass.PLASMA.name().toLowerCase(Locale.US))) return CATEGORY_ENERGY;
if(source.damageType.toLowerCase(Locale.US).equals(DamageClass.MICROWAVE.name().toLowerCase(Locale.US))) return CATEGORY_ENERGY;
if(source.damageType.toLowerCase(Locale.US).equals(DamageClass.SUBATOMIC.name().toLowerCase(Locale.US))) return CATEGORY_ENERGY;
if(source.damageType.toLowerCase(Locale.US).equals(DamageClass.ELECTRIC.name().toLowerCase(Locale.US))) return CATEGORY_ENERGY;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 669 B

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 796 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B