more grenade crap
@ -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());
|
||||
|
||||
|
||||
@ -110,4 +110,5 @@ public class EntityGrenadeUniversal extends EntityThrowableInterp {
|
||||
}
|
||||
|
||||
@Override protected int groundDespawn() { return 0; }
|
||||
@Override public boolean fullBlockCollisions() { return true; }
|
||||
}
|
||||
|
||||
@ -248,9 +248,13 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile {
|
||||
float drag = this.getAirDrag();
|
||||
double gravity = this.getGravityVelocity();
|
||||
|
||||
this.posX += this.motionX * motionMult();
|
||||
this.posY += this.motionY * motionMult();
|
||||
this.posZ += this.motionZ * motionMult();
|
||||
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;
|
||||
}
|
||||
|
||||
@ -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 {
|
||||
|
||||
|
||||
@ -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);
|
||||
@ -99,6 +107,57 @@ public class ItemGrenadeFilling extends ItemEnumMulti {
|
||||
vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F));
|
||||
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;
|
||||
@ -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();
|
||||
|
||||
@ -30,12 +30,10 @@ public class ItemGrenadeShell extends ItemEnumMulti {
|
||||
}
|
||||
|
||||
public static enum EnumGrenadeShell {
|
||||
FRAG(4, 20, 0.5D), // bonus fragmentation
|
||||
STICK(4, 20, 0.25D), // thrown father
|
||||
TECH(2, 20, 0.5D), // casing with electronics for EMP/plasma
|
||||
NUKE(1, 20, 0.25D); // nuka grenade casing for high yield grenades
|
||||
/* ^
|
||||
* nice */
|
||||
FRAG(4, 20, 0.5D), // bonus fragmentation
|
||||
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
|
||||
|
||||
private int stackLimit;
|
||||
private int drawDuration;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -1517,7 +1517,11 @@ 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);
|
||||
remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
|
Before Width: | Height: | Size: 669 B After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 950 B |
|
After Width: | Height: | Size: 171 B |
|
After Width: | Height: | Size: 391 B |
|
Before Width: | Height: | Size: 796 B After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 410 B |
|
After Width: | Height: | Size: 158 B |
|
After Width: | Height: | Size: 226 B |