mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-02-23 14:30:51 +00:00
ok that's enough
This commit is contained in:
parent
e20baf4293
commit
04708e8c90
@ -35,6 +35,11 @@
|
||||
* Reduced mask man's projectile resistance from 75% to 50%
|
||||
* Reduced maskman's resistance to damage above 50 from 75% to 50%
|
||||
* Remnants power armor can now use the melee controller, allowing Sergeant Arch Dornan to beat the snot out of people
|
||||
* Improved gibbing
|
||||
* All cybercrab variants can now be gibbed, turning into metal fragments
|
||||
* Iron golems now also turn into metal instead of fleshy chunks
|
||||
* Slimes can now be gibbed, turning into slime globs
|
||||
* Creepers now also gib into slime instead of blood
|
||||
|
||||
# Fixed
|
||||
* Fixed proxy tiles that do not use electricity at all visually connecting to cables
|
||||
|
||||
@ -40,7 +40,7 @@ public class ArmorNCRPAMelee implements IPAMelee {
|
||||
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D);
|
||||
|
||||
if(mop != null) {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY) {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit.isEntityAlive()) {
|
||||
float damage = swings ? 15F : 35F;
|
||||
float knockback = swings ? 0F : 1.5F;
|
||||
float dt = swings ? 5F : 15F;
|
||||
|
||||
@ -34,7 +34,7 @@ public class ArmorRPAMelee implements IPAMelee {
|
||||
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
|
||||
|
||||
boolean swings = type == GunAnimation.CYCLE && (timer == 3 || timer == 9);
|
||||
boolean slap = type == GunAnimation.ALT_CYCLE && timer == 3;
|
||||
boolean slap = type == GunAnimation.ALT_CYCLE && timer == 8;
|
||||
|
||||
if((swings || slap) && ctx.getPlayer() != null) {
|
||||
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D);
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.items.weapon.sedna.factory;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.hbm.entity.mob.*;
|
||||
import com.hbm.entity.mob.botprime.EntityBOTPrimeBase;
|
||||
import com.hbm.handler.threading.PacketThreading;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.particle.helper.AshesCreator;
|
||||
@ -11,8 +12,13 @@ import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntityBlaze;
|
||||
import net.minecraft.entity.monster.EntityCreeper;
|
||||
import net.minecraft.entity.monster.EntityIronGolem;
|
||||
import net.minecraft.entity.monster.EntityMagmaCube;
|
||||
import net.minecraft.entity.monster.EntitySkeleton;
|
||||
import net.minecraft.entity.monster.EntitySlime;
|
||||
import net.minecraft.entity.passive.EntityOcelot;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.MathHelper;
|
||||
@ -42,10 +48,21 @@ public class ConfettiUtil {
|
||||
}
|
||||
|
||||
public static void gib(EntityLivingBase entity) {
|
||||
if(entity instanceof EntityCyberCrab) return;
|
||||
if(entity instanceof EntityTeslaCrab) return;
|
||||
if(entity instanceof EntityTaintCrab) return;
|
||||
if(entity instanceof EntitySlime) return;
|
||||
if(entity instanceof EntityOcelot) return;
|
||||
|
||||
int type = 0;
|
||||
if(entity instanceof EntitySlime) type = 1;
|
||||
if(entity instanceof EntityMagmaCube) type = 1;
|
||||
if(entity instanceof EntityCreeper) type = 1;
|
||||
if(entity instanceof EntityIronGolem) type = 2;
|
||||
if(entity instanceof EntityCyberCrab) type = 2;
|
||||
if(entity instanceof EntityTeslaCrab) type = 2;
|
||||
if(entity instanceof EntityTaintCrab) type = 2;
|
||||
if(entity instanceof EntityBlaze) type = 2;
|
||||
if(entity instanceof EntityFBIDrone) type = 2;
|
||||
if(entity instanceof EntityRADBeast) type = 2;
|
||||
if(entity instanceof EntityUFO) type = 2;
|
||||
if(entity instanceof EntityBOTPrimeBase) type = 2;
|
||||
|
||||
SkeletonCreator.composeEffectGib(entity.worldObj, entity, 0.25F);
|
||||
|
||||
@ -54,6 +71,7 @@ public class ConfettiUtil {
|
||||
NBTTagCompound vdat = new NBTTagCompound();
|
||||
vdat.setString("type", "giblets");
|
||||
vdat.setInteger("ent", entity.getEntityId());
|
||||
vdat.setInteger("gibType", type);
|
||||
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(vdat, entity.posX, entity.posY + entity.height * 0.5, entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY + entity.height * 0.5, entity.posZ, 150));
|
||||
entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + entity.getRNG().nextFloat() * 0.2F);
|
||||
}
|
||||
|
||||
@ -1817,6 +1817,7 @@ public class ClientProxy extends ServerProxy {
|
||||
|
||||
if("giblets".equals(type)) {
|
||||
int ent = data.getInteger("ent");
|
||||
int gibType = data.getInteger("gibType");
|
||||
this.vanish(ent);
|
||||
Entity e = world.getEntityByID(ent);
|
||||
|
||||
@ -1840,7 +1841,7 @@ public class ClientProxy extends ServerProxy {
|
||||
mult *= 10;
|
||||
|
||||
for(int i = 0; i < count; i++) {
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiblet(man, world, x, y, z, rand.nextGaussian() * 0.25 * mult, rand.nextDouble() * mult, rand.nextGaussian() * 0.25 * mult));
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiblet(man, world, x, y, z, rand.nextGaussian() * 0.25 * mult, rand.nextDouble() * mult, rand.nextGaussian() * 0.25 * mult, gibType));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -21,14 +21,17 @@ import net.minecraft.world.World;
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class ParticleGiblet extends EntityFX {
|
||||
|
||||
private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/meat.png");
|
||||
private static final ResourceLocation textureMeat = new ResourceLocation(RefStrings.MODID + ":textures/particle/meat.png");
|
||||
private static final ResourceLocation textureSlime = new ResourceLocation(RefStrings.MODID + ":textures/particle/slime.png");
|
||||
private static final ResourceLocation textureMetal = new ResourceLocation(RefStrings.MODID + ":textures/particle/metal.png");
|
||||
|
||||
private TextureManager theRenderEngine;
|
||||
|
||||
private float momentumYaw;
|
||||
private float momentumPitch;
|
||||
private int gibType;
|
||||
|
||||
public ParticleGiblet(TextureManager texman, World world, double x, double y, double z, double mX, double mY, double mZ) {
|
||||
public ParticleGiblet(TextureManager texman, World world, double x, double y, double z, double mX, double mY, double mZ, int gibType) {
|
||||
super(world, x, y, z);
|
||||
this.motionX = mX;
|
||||
this.motionY = mY;
|
||||
@ -36,6 +39,9 @@ public class ParticleGiblet extends EntityFX {
|
||||
this.theRenderEngine = texman;
|
||||
this.particleMaxAge = 140 + rand.nextInt(20);
|
||||
this.particleGravity = 2F;
|
||||
this.gibType = gibType;
|
||||
|
||||
if(gibType == 2) this.particleGravity *= 2;
|
||||
|
||||
this.momentumYaw = (float) rand.nextGaussian() * 15F;
|
||||
this.momentumPitch = (float) rand.nextGaussian() * 15F;
|
||||
@ -57,7 +63,9 @@ public class ParticleGiblet extends EntityFX {
|
||||
this.rotationPitch += this.momentumPitch;
|
||||
this.rotationYaw += this.momentumYaw;
|
||||
|
||||
EntityFX fx = new net.minecraft.client.particle.EntityBlockDustFX(worldObj, posX, posY, posZ, 0, 0, 0, Blocks.redstone_block, 0);
|
||||
if(gibType == 2) return;
|
||||
|
||||
EntityFX fx = new net.minecraft.client.particle.EntityBlockDustFX(worldObj, posX, posY, posZ, 0, 0, 0, gibType == 1 ? Blocks.melon_block : Blocks.redstone_block, 0);
|
||||
ReflectionHelper.setPrivateValue(EntityFX.class, fx, 20 + rand.nextInt(20), "particleMaxAge", "field_70547_e");
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(fx);
|
||||
}
|
||||
@ -69,7 +77,8 @@ public class ParticleGiblet extends EntityFX {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
this.theRenderEngine.bindTexture(texture);
|
||||
|
||||
this.theRenderEngine.bindTexture(gibType == 2 ? textureMetal : gibType == 1 ? textureSlime : textureMeat);
|
||||
|
||||
/* use this instead of EntityFX.interpPosN since interpPosN isn't set up correctly for the current tick for layer 3 particles */
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/particle/metal.png
Normal file
BIN
src/main/resources/assets/hbm/textures/particle/metal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 278 B |
BIN
src/main/resources/assets/hbm/textures/particle/slime.png
Normal file
BIN
src/main/resources/assets/hbm/textures/particle/slime.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 222 B |
Loading…
x
Reference in New Issue
Block a user