more animation stuff, vaporizer tank

This commit is contained in:
HbmMods 2020-06-13 13:17:39 +02:00
parent a21b693441
commit 0fe52691f6
11 changed files with 83 additions and 37 deletions

View File

@ -1652,6 +1652,7 @@ item.ammo_grenade_kampf.name=40mm Rakete
item.ammo_fuel.name=Dieselkatusche item.ammo_fuel.name=Dieselkatusche
item.ammo_fuel_napalm.name=Napalmkatusche item.ammo_fuel_napalm.name=Napalmkatusche
item.ammo_fuel_phosphorus.name=WP-Katusche item.ammo_fuel_phosphorus.name=WP-Katusche
item.ammo_fuel_vaporizer.name=Vaporisierer-Katusche
item.ammo_fuel_gas.name=Gaskatusche item.ammo_fuel_gas.name=Gaskatusche
item.folly_shell.name=Silberne Kanonenhülse item.folly_shell.name=Silberne Kanonenhülse

View File

@ -1652,6 +1652,7 @@ item.ammo_grenade_kampf.name=40mm Rocket
item.ammo_fuel.name=Diesel Tank item.ammo_fuel.name=Diesel Tank
item.ammo_fuel_napalm.name=Napalm Tank item.ammo_fuel_napalm.name=Napalm Tank
item.ammo_fuel_phosphorus.name=WP Tank item.ammo_fuel_phosphorus.name=WP Tank
item.ammo_fuel_vaporizer.name=Vaporizer Tank
item.ammo_fuel_gas.name=Gas Tank item.ammo_fuel_gas.name=Gas Tank
item.folly_shell.name=Silver Bullet Casing item.folly_shell.name=Silver Bullet Casing

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

View File

@ -357,16 +357,16 @@ public class EntityBulletBase extends Entity implements IProjectile {
if(worldObj.isRemote && !config.vPFX.isEmpty()) { if(worldObj.isRemote && !config.vPFX.isEmpty()) {
double motion = Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector(); double motion = Vec3.createVectorHelper(-motionX, -motionY, -motionZ).lengthVector();
for (i = 0; i < motion * 3; ++i) { for(double d = 0; d < 1; d += 1 / motion) {
NBTTagCompound nbt = new NBTTagCompound(); NBTTagCompound nbt = new NBTTagCompound();
nbt.setString("type", "vanillaExt"); nbt.setString("type", "vanillaExt");
nbt.setString("mode", config.vPFX); nbt.setString("mode", config.vPFX);
nbt.setDouble("posX", this.posX - this.motionX * i / 1.0D); nbt.setDouble("posX", (this.lastTickPosX - this.posX) * d + this.posX);
nbt.setDouble("posY", this.posY - this.motionY * i / 1.0D); nbt.setDouble("posY", (this.lastTickPosY - this.posY) * d + this.posY);
nbt.setDouble("posZ", this.posZ - this.motionZ * i / 1.0D); nbt.setDouble("posZ", (this.lastTickPosZ - this.posZ) * d + this.posZ);
MainRegistry.proxy.effectNT(nbt); MainRegistry.proxy.effectNT(nbt);
} }
} }

View File

@ -119,6 +119,7 @@ public class BulletConfigSyncingUtil {
public static int FLAMER_NORMAL = i++; public static int FLAMER_NORMAL = i++;
public static int FLAMER_NAPALM = i++; public static int FLAMER_NAPALM = i++;
public static int FLAMER_WP = i++; public static int FLAMER_WP = i++;
public static int FLAMER_VAPORIZER = i++;
public static int FLAMER_GAS = i++; public static int FLAMER_GAS = i++;
public static int R556_NORMAL = i++; public static int R556_NORMAL = i++;
@ -258,6 +259,7 @@ public class BulletConfigSyncingUtil {
configSet.put(FLAMER_NORMAL, GunEnergyFactory.getFlameConfig()); configSet.put(FLAMER_NORMAL, GunEnergyFactory.getFlameConfig());
configSet.put(FLAMER_NAPALM, GunEnergyFactory.getNapalmConfig()); configSet.put(FLAMER_NAPALM, GunEnergyFactory.getNapalmConfig());
configSet.put(FLAMER_WP, GunEnergyFactory.getPhosphorusConfig()); configSet.put(FLAMER_WP, GunEnergyFactory.getPhosphorusConfig());
configSet.put(FLAMER_VAPORIZER, GunEnergyFactory.getVaporizerConfig());
configSet.put(FLAMER_GAS, GunEnergyFactory.getGasConfig()); configSet.put(FLAMER_GAS, GunEnergyFactory.getGasConfig());
configSet.put(R556_NORMAL, Gun556mmFactory.get556Config()); configSet.put(R556_NORMAL, Gun556mmFactory.get556Config());

View File

@ -21,7 +21,7 @@ public class Gun20GaugeFactory {
GunConfiguration config = new GunConfiguration(); GunConfiguration config = new GunConfiguration();
config.rateOfFire = 20; config.rateOfFire = 25;
config.roundsPerCycle = 1; config.roundsPerCycle = 1;
config.gunMode = GunConfiguration.MODE_NORMAL; config.gunMode = GunConfiguration.MODE_NORMAL;
config.firingMode = GunConfiguration.FIRE_MANUAL; config.firingMode = GunConfiguration.FIRE_MANUAL;
@ -35,13 +35,16 @@ public class Gun20GaugeFactory {
config.animations.put(AnimType.CYCLE, new BusAnimation() config.animations.put(AnimType.CYCLE, new BusAnimation()
.addBus("LEVER_ROTATE", new BusAnimationSequence() .addBus("LEVER_ROTATE", new BusAnimationSequence()
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500))
.addKeyframe(new BusAnimationKeyframe(0, 0, 45, 250))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250))
.addKeyframe(new BusAnimationKeyframe(0, 0, 45, 500))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500))
) )
.addBus("LEVER_RECOIL", new BusAnimationSequence() .addBus("LEVER_RECOIL", new BusAnimationSequence()
.addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 50)) .addKeyframe(new BusAnimationKeyframe(0.5, 0, 0, 50))
.addKeyframe(new BusAnimationKeyframe(0, 0, 90, 50)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 50))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 150))
.addKeyframe(new BusAnimationKeyframe(0, -0.5, 0, 500))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500))
) )
); );

View File

@ -10,6 +10,7 @@ import com.hbm.interfaces.IBulletImpactBehavior;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.potion.HbmPotion;
import com.hbm.render.util.RenderScreenOverlay.Crosshair; import com.hbm.render.util.RenderScreenOverlay.Crosshair;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
@ -76,6 +77,7 @@ public class GunEnergyFactory {
config.config.add(BulletConfigSyncingUtil.FLAMER_NORMAL); config.config.add(BulletConfigSyncingUtil.FLAMER_NORMAL);
config.config.add(BulletConfigSyncingUtil.FLAMER_NAPALM); config.config.add(BulletConfigSyncingUtil.FLAMER_NAPALM);
config.config.add(BulletConfigSyncingUtil.FLAMER_WP); config.config.add(BulletConfigSyncingUtil.FLAMER_WP);
config.config.add(BulletConfigSyncingUtil.FLAMER_VAPORIZER);
config.config.add(BulletConfigSyncingUtil.FLAMER_GAS); config.config.add(BulletConfigSyncingUtil.FLAMER_GAS);
return config; return config;
@ -184,6 +186,29 @@ public class GunEnergyFactory {
return bullet; return bullet;
} }
public static BulletConfiguration getVaporizerConfig() {
BulletConfiguration bullet = getFlameConfig();
bullet.ammo = ModItems.ammo_fuel_vaporizer;
bullet.wear = 4;
bullet.spread = 0.25F;
bullet.bulletsMin = 8;
bullet.bulletsMax = 10;
bullet.dmgMin = 6;
bullet.dmgMax = 10;
bullet.maxAge = 15;
bullet.vPFX = "flame";
bullet.incendiary = 0;
PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true);
eff.getCurativeItems().clear();
bullet.effects = new ArrayList();
bullet.effects.add(new PotionEffect(eff));
return bullet;
}
public static BulletConfiguration getGasConfig() { public static BulletConfiguration getGasConfig() {
BulletConfiguration bullet = getFlameConfig(); BulletConfiguration bullet = getFlameConfig();

View File

@ -1184,6 +1184,7 @@ public class ModItems {
public static Item ammo_fuel; public static Item ammo_fuel;
public static Item ammo_fuel_napalm; public static Item ammo_fuel_napalm;
public static Item ammo_fuel_phosphorus; public static Item ammo_fuel_phosphorus;
public static Item ammo_fuel_vaporizer;
public static Item ammo_fuel_gas; public static Item ammo_fuel_gas;
public static Item gun_rpg; public static Item gun_rpg;
@ -2972,6 +2973,7 @@ public class ModItems {
ammo_fuel = new ItemAmmo().setUnlocalizedName("ammo_fuel").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel"); ammo_fuel = new ItemAmmo().setUnlocalizedName("ammo_fuel").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel");
ammo_fuel_napalm = new ItemAmmo().setUnlocalizedName("ammo_fuel_napalm").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_napalm"); ammo_fuel_napalm = new ItemAmmo().setUnlocalizedName("ammo_fuel_napalm").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_napalm");
ammo_fuel_phosphorus = new ItemAmmo().setUnlocalizedName("ammo_fuel_phosphorus").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_phosphorus"); ammo_fuel_phosphorus = new ItemAmmo().setUnlocalizedName("ammo_fuel_phosphorus").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_phosphorus");
ammo_fuel_vaporizer = new ItemAmmo().setUnlocalizedName("ammo_fuel_vaporizer").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_vaporizer");
ammo_fuel_gas = new ItemAmmo().setUnlocalizedName("ammo_fuel_gas").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_gas"); ammo_fuel_gas = new ItemAmmo().setUnlocalizedName("ammo_fuel_gas").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_gas");
gun_rpg = new ItemGunBase(GunRocketFactory.getGustavConfig()).setUnlocalizedName("gun_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_rpg"); gun_rpg = new ItemGunBase(GunRocketFactory.getGustavConfig()).setUnlocalizedName("gun_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_rpg");
@ -5089,6 +5091,7 @@ public class ModItems {
GameRegistry.registerItem(ammo_fuel, ammo_fuel.getUnlocalizedName()); GameRegistry.registerItem(ammo_fuel, ammo_fuel.getUnlocalizedName());
GameRegistry.registerItem(ammo_fuel_napalm, ammo_fuel_napalm.getUnlocalizedName()); GameRegistry.registerItem(ammo_fuel_napalm, ammo_fuel_napalm.getUnlocalizedName());
GameRegistry.registerItem(ammo_fuel_phosphorus, ammo_fuel_phosphorus.getUnlocalizedName()); GameRegistry.registerItem(ammo_fuel_phosphorus, ammo_fuel_phosphorus.getUnlocalizedName());
GameRegistry.registerItem(ammo_fuel_vaporizer, ammo_fuel_vaporizer.getUnlocalizedName());
GameRegistry.registerItem(ammo_fuel_gas, ammo_fuel_gas.getUnlocalizedName()); GameRegistry.registerItem(ammo_fuel_gas, ammo_fuel_gas.getUnlocalizedName());
GameRegistry.registerItem(ammo_rocket, ammo_rocket.getUnlocalizedName()); GameRegistry.registerItem(ammo_rocket, ammo_rocket.getUnlocalizedName());
GameRegistry.registerItem(ammo_rocket_he, ammo_rocket_he.getUnlocalizedName()); GameRegistry.registerItem(ammo_rocket_he, ammo_rocket_he.getUnlocalizedName());

View File

@ -335,6 +335,16 @@ public class ItemAmmo extends Item {
list.add(EnumChatFormatting.RED + "- Single projectile"); list.add(EnumChatFormatting.RED + "- Single projectile");
list.add(EnumChatFormatting.RED + "- Highly increased wear"); list.add(EnumChatFormatting.RED + "- Highly increased wear");
} }
if(this == ModItems.ammo_fuel_vaporizer) {
list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns");
list.add(EnumChatFormatting.BLUE + "+ Increased flame count");
list.add(EnumChatFormatting.BLUE + "+ Increased damage");
list.add(EnumChatFormatting.YELLOW + "* For removing big mistakes");
list.add(EnumChatFormatting.RED + "- Highly decreased accuracy");
list.add(EnumChatFormatting.RED + "- Highly decreased range");
list.add(EnumChatFormatting.RED + "- Highly increased wear");
list.add(EnumChatFormatting.RED + "- No lingering fire");
}
if(this == ModItems.ammo_fuel_gas) { if(this == ModItems.ammo_fuel_gas) {
list.add(EnumChatFormatting.BLUE + "+ No gravity"); list.add(EnumChatFormatting.BLUE + "+ No gravity");
list.add(EnumChatFormatting.BLUE + "+ Poison splash"); list.add(EnumChatFormatting.BLUE + "+ Poison splash");

View File

@ -58,5 +58,27 @@ public class HbmAnimations {
return null; return null;
} }
public static double[] getRelevantTransformation(String bus) {
Animation anim = HbmAnimations.getRelevantAnim();
if(anim != null) {
BusAnimation buses = anim.animation;
int millis = (int)(System.currentTimeMillis() - anim.startMillis);
BusAnimationSequence seq = buses.getBus(bus);
if(seq != null) {
double[] trans = seq.getTransformation(millis);
if(trans != null)
return trans;
}
}
return new double[] {0, 0, 0};
}
} }

View File

@ -8,10 +8,7 @@ import com.hbm.items.weapon.GunBoltAction;
import com.hbm.items.weapon.GunLeverAction; import com.hbm.items.weapon.GunLeverAction;
import com.hbm.items.weapon.GunLeverActionS; import com.hbm.items.weapon.GunLeverActionS;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.render.anim.BusAnimation;
import com.hbm.render.anim.BusAnimationSequence;
import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations;
import com.hbm.render.anim.HbmAnimations.Animation;
import com.hbm.render.model.ModelB92; import com.hbm.render.model.ModelB92;
import com.hbm.render.model.ModelB93; import com.hbm.render.model.ModelB93;
import com.hbm.render.model.ModelBoltAction; import com.hbm.render.model.ModelBoltAction;
@ -91,33 +88,15 @@ public class ItemRenderGunAnim implements IItemRenderer {
} }
if(item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_dark) { if(item.getItem() == ModItems.gun_lever_action || item.getItem() == ModItems.gun_lever_action_dark) {
Animation anim = HbmAnimations.getRelevantAnim();
if(anim != null) {
BusAnimation buses = anim.animation;
int millis = (int)(System.currentTimeMillis() - anim.startMillis);
BusAnimationSequence rotate = buses.getBus("LEVER_ROTATE"); double[] recoil = HbmAnimations.getRelevantTransformation("LEVER_RECOIL");
GL11.glTranslated(recoil[0], recoil[1] * 4, recoil[2]);
if(rotate != null) {
double[] trans = rotate.getTransformation(millis);
if(trans != null) {
GL11.glRotated(trans[2], 0.0, 0.0, 1.0);
lever = (float) Math.toRadians(trans[2]);
}
}
BusAnimationSequence recoil = buses.getBus("LEVER_RECOIL"); GL11.glTranslatef(-1.5F, 0, 0);
if(recoil != null) { double[] rotation = HbmAnimations.getRelevantTransformation("LEVER_ROTATE");
double[] trans = recoil.getTransformation(millis); GL11.glRotated(rotation[2], 0.0, 0.0, 1.0);
lever = (float) Math.toRadians(rotation[2] * 2);
if(trans != null) GL11.glTranslatef(1.5F, 0, 0);
GL11.glTranslated(trans[0], 0.0, 0.0);
}
}
} }
if((item.getItem() == ModItems.gun_lever_action_sonata) && GunLeverActionS.getRotationFromAnim(item) > 0) { if((item.getItem() == ModItems.gun_lever_action_sonata) && GunLeverActionS.getRotationFromAnim(item) > 0) {