Compare commits
No commits in common. "04708e8c90157be08443176a17f41f779f0fda3d" and "84344889b7bdfdbc4dab3d0dc3b1c2414e324e3b" have entirely different histories.
04708e8c90
...
84344889b7
16
changelog
@ -2,14 +2,6 @@
|
||||
* Target pistol
|
||||
* Weapon steel tier pistol that holds 15 rounds and shoots .22 LR
|
||||
* Accepts silencers
|
||||
* NCR Ranger Power Armor
|
||||
* Legendary set, like the remnants power armor
|
||||
* Stats are largely similar, but has a speed boost when sprinting
|
||||
* Comes with the power armor - melee controller item
|
||||
* If the full set is equipped, the melee controller allows for powerful melee attacks
|
||||
* Left click does two rapid swings, right click causes both arms to swing at once
|
||||
* The NCRPA's blades are armor-piercing and gib enemies on death
|
||||
* The blades do 250% damage on large enemies, i.e. ones with 100 or more max health
|
||||
|
||||
## Changed
|
||||
* Reworked the industrial turbine
|
||||
@ -32,14 +24,6 @@
|
||||
* Cleaned up a ton of unused assets
|
||||
* The old crucible smelting rules when not using a template can be restores with the `/ntmserver` value `LEGACY_CRUCIBLE_RULES`
|
||||
* Due to repeated complaints, power armor sounds are now generally more quiet, with 25% volume for steps and 50% volume for jumping and landing
|
||||
* 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
|
||||
|
||||
@ -66,13 +66,17 @@ public class EntityMaskMan extends EntityMob implements IBossDisplayData, IRadia
|
||||
return true;
|
||||
}
|
||||
|
||||
if(source.isFireDamage()) amount = 0;
|
||||
if(source.isMagicDamage()) amount = 0;
|
||||
if(source.isProjectile()) amount *= 0.5F;
|
||||
if(source.isExplosion()) amount *= 0.5F;
|
||||
if(source.isFireDamage())
|
||||
amount = 0;
|
||||
if(source.isMagicDamage())
|
||||
amount = 0;
|
||||
if(source.isProjectile())
|
||||
amount *= 0.25F;
|
||||
if(source.isExplosion())
|
||||
amount *= 0.5F;
|
||||
|
||||
if(amount > 50) {
|
||||
amount = 50 + (amount - 50) * 0.5F;
|
||||
amount = 50 + (amount - 50) * 0.25F;
|
||||
}
|
||||
|
||||
return super.attackEntityFrom(source, amount);
|
||||
|
||||
@ -1,12 +1,7 @@
|
||||
package com.hbm.items.armor;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.google.common.collect.Multimap;
|
||||
import com.hbm.extprop.HbmPlayerProps;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.render.model.ModelArmorNCRPA;
|
||||
@ -16,12 +11,9 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider, IPAWeaponsProvider {
|
||||
@ -37,34 +29,13 @@ public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider
|
||||
@SideOnly(Side.CLIENT)
|
||||
public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) {
|
||||
|
||||
if(models == null) {
|
||||
models = new ModelArmorNCRPA[4];
|
||||
if(models == null) { models = new ModelArmorNCRPA[4];
|
||||
for(int i = 0; i < 4; i++) models[i] = new ModelArmorNCRPA(i);
|
||||
}
|
||||
|
||||
return models[armorSlot];
|
||||
}
|
||||
|
||||
private static final UUID speed = UUID.fromString("6ab858ba-d712-485c-bae9-e5e765fc555a");
|
||||
|
||||
@Override
|
||||
public void onArmorTick(World world, EntityPlayer player, ItemStack stack) {
|
||||
super.onArmorTick(world, player, stack);
|
||||
|
||||
if(this != ModItems.ncrpa_plate) return;
|
||||
|
||||
HbmPlayerProps props = HbmPlayerProps.getData(player);
|
||||
|
||||
/// SPEED ///
|
||||
Multimap multimap = super.getAttributeModifiers(stack);
|
||||
multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(speed, "NCRPA SPEED", 0.1, 0));
|
||||
player.getAttributeMap().removeAttributeModifiers(multimap);
|
||||
|
||||
if(player.isSprinting()) {
|
||||
player.getAttributeMap().applyAttributeModifiers(multimap);
|
||||
}
|
||||
}
|
||||
|
||||
@Override public Item getItemForRenderer() { return this; }
|
||||
|
||||
@Override
|
||||
|
||||
@ -2,86 +2,15 @@ package com.hbm.items.armor;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
||||
import com.hbm.items.weapon.sedna.factory.ConfettiUtil;
|
||||
import com.hbm.items.weapon.sedna.factory.XFactoryPA;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.BusAnimation;
|
||||
import com.hbm.render.anim.BusAnimationSequence;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||
import com.hbm.util.EntityDamageUtil;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
|
||||
public class ArmorNCRPAMelee implements IPAMelee {
|
||||
|
||||
@Override public void clickPrimary(ItemStack stack, LambdaContext ctx) { XFactoryPA.doSwing(stack, ctx, GunAnimation.CYCLE, 25); }
|
||||
@Override public void clickSecondary(ItemStack stack, LambdaContext ctx) { XFactoryPA.doSwing(stack, ctx, GunAnimation.ALT_CYCLE, 30); }
|
||||
public void setupFirstPerson(ItemStack stack) { }
|
||||
|
||||
@Override
|
||||
public void orchestra(ItemStack stack, LambdaContext ctx) {
|
||||
EntityLivingBase entity = ctx.entity;
|
||||
if(entity.worldObj.isRemote) return;
|
||||
GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
|
||||
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
|
||||
|
||||
boolean swings = type == GunAnimation.CYCLE && (timer == 5 || timer == 15);
|
||||
boolean sweep = type == GunAnimation.ALT_CYCLE && timer == 5;
|
||||
|
||||
if((swings || sweep) && ctx.getPlayer() != null) {
|
||||
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D);
|
||||
|
||||
if(mop != null) {
|
||||
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;
|
||||
float pierce = swings ? 0.1F : 0.25F;
|
||||
|
||||
if(mop.entityHit instanceof EntityLivingBase) {
|
||||
EntityLivingBase living = (EntityLivingBase) mop.entityHit;
|
||||
if(living.getMaxHealth() >= 100) damage *= 2.5;
|
||||
EntityDamageUtil.attackEntityFromNT((EntityLivingBase) mop.entityHit, DamageSource.causePlayerDamage(ctx.getPlayer()), damage, true, false, knockback, dt, pierce);
|
||||
if(!living.isEntityAlive()) ConfettiUtil.gib(living);
|
||||
} else {
|
||||
mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage);
|
||||
}
|
||||
|
||||
entity.worldObj.playSoundAtEntity(mop.entityHit, "hbm:weapon.fire.stab", 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
||||
}
|
||||
if(mop.typeOfHit == mop.typeOfHit.BLOCK) {
|
||||
Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
entity.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, b.stepSound.getStepResourcePath(), 2F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BusAnimation playAnim(ItemStack stack, GunAnimation type) {
|
||||
if(type == GunAnimation.EQUIP) return new BusAnimation()
|
||||
.addBus("EQUIP", new BusAnimationSequence().setPos(-1, 0, 0).addPos(0, 0, 0, 750, IType.SIN_DOWN));
|
||||
if(type == GunAnimation.CYCLE) return new BusAnimation()
|
||||
.addBus("SWINGRIGHT", new BusAnimationSequence().addPos(1, 0, 0, 250, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_FULL))
|
||||
.addBus("SWINGLEFT", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(1, 0, 0, 250, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_FULL));
|
||||
if(type == GunAnimation.ALT_CYCLE) return new BusAnimation()
|
||||
.addBus("SWEEPTURN", new BusAnimationSequence().addPos(1, 0, 0, 100, IType.LINEAR).hold(350).addPos(0, 0, 0, 500, IType.LINEAR))
|
||||
.addBus("SWEEPCUT", new BusAnimationSequence().hold(100).addPos(1, 0, 0, 250, IType.SIN_DOWN).hold(100).addPos(0, 0, 0, 500, IType.SIN_FULL));
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override public void setupFirstPerson(ItemStack stack) { }
|
||||
|
||||
@Override
|
||||
public void renderFirstPerson(ItemStack stack) {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.ncrpa_arm);
|
||||
|
||||
@ -89,38 +18,31 @@ public class ArmorNCRPAMelee implements IPAMelee {
|
||||
double scale = 0.125D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
|
||||
double[] equip = HbmAnimations.getRelevantTransformation("EQUIP");
|
||||
double swingRight = HbmAnimations.getRelevantTransformation("SWINGRIGHT")[0];
|
||||
double swingLeft = HbmAnimations.getRelevantTransformation("SWINGLEFT")[0];
|
||||
double sweepTurn = HbmAnimations.getRelevantTransformation("SWEEPTURN")[0];
|
||||
double sweepCut = HbmAnimations.getRelevantTransformation("SWEEPCUT")[0];
|
||||
|
||||
double forwardTilt = 60 - 60 * equip[0];
|
||||
double forwardTilt = 60;
|
||||
double offsetOutward = 3;
|
||||
double roll = 60;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(-14 * swingLeft - 4 * sweepTurn, 6 * sweepCut, 2 * swingLeft + 8 * sweepCut);
|
||||
GL11.glRotated(forwardTilt + swingRight * 40 - 60 * sweepCut, 1, 0, 0);
|
||||
GL11.glRotated(forwardTilt, 1, 0, 0);
|
||||
|
||||
GL11.glTranslated(offsetOutward, 0, 0);
|
||||
GL11.glTranslated(6, 8, 0);
|
||||
GL11.glRotated(90 * swingLeft, 0, 0, 1);
|
||||
GL11.glRotated(roll + 30 * swingLeft - 90 * sweepTurn, 0, 1, 0);
|
||||
GL11.glRotated(roll, 0, 1, 0);
|
||||
GL11.glRotated(10, 0, 0, 1);
|
||||
GL11.glTranslated(-6, -8, 0);
|
||||
ResourceManager.armor_ncr.renderPart("LeftArm");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(14 * swingRight + 4 * sweepTurn, 6 * sweepCut, 2 * swingRight + 8 * sweepCut);
|
||||
GL11.glRotated(forwardTilt + swingLeft * 40 - 60 * sweepCut, 1, 0, 0);
|
||||
//GL11.glTranslated(7, 0, 4);
|
||||
|
||||
GL11.glRotated(forwardTilt, 1, 0, 0);
|
||||
|
||||
GL11.glTranslated(-offsetOutward, 0, 0);
|
||||
GL11.glTranslated(-6, 8, 0);
|
||||
GL11.glRotated(-90 * swingRight, 0, 0, 1);
|
||||
GL11.glRotated(-roll - 30 * swingRight + 90 * sweepTurn, 0, 1, 0);
|
||||
GL11.glRotated(-90, 0, 0, 1);
|
||||
GL11.glRotated(-roll - 30, 0, 1, 0);
|
||||
GL11.glTranslated(6, -8, 0);
|
||||
ResourceManager.armor_ncr.renderPart("RightArm");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
@ -11,12 +11,11 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.model.ModelBiped;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ArmorRPA extends ArmorFSBPowered implements IItemRendererProvider, IPAWeaponsProvider {
|
||||
public class ArmorRPA extends ArmorFSBPowered implements IItemRendererProvider {
|
||||
|
||||
public ArmorRPA(ArmorMaterial material, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) {
|
||||
super(material, slot, texture, maxPower, chargeRate, consumption, drain);
|
||||
@ -53,12 +52,4 @@ public class ArmorRPA extends ArmorFSBPowered implements IItemRendererProvider,
|
||||
"Head", "Body,Fan,Glow", "LeftArm", "RightArm", "LeftLeg", "RightLeg", "LeftBoot", "RightBoot");
|
||||
}};
|
||||
}
|
||||
|
||||
public static final ArmorRPAMelee meleeComponent = new ArmorRPAMelee();
|
||||
|
||||
@Override
|
||||
public IPAMelee getMeleeComponent(EntityPlayer entity) {
|
||||
if(this.hasFSBArmorIgnoreCharge(entity)) return meleeComponent;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,128 +0,0 @@
|
||||
package com.hbm.items.armor;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
||||
import com.hbm.items.weapon.sedna.factory.ConfettiUtil;
|
||||
import com.hbm.items.weapon.sedna.factory.XFactoryPA;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.BusAnimation;
|
||||
import com.hbm.render.anim.BusAnimationSequence;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||
import com.hbm.util.EntityDamageUtil;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
|
||||
public class ArmorRPAMelee implements IPAMelee {
|
||||
|
||||
@Override public void clickPrimary(ItemStack stack, LambdaContext ctx) { XFactoryPA.doSwing(stack, ctx, GunAnimation.CYCLE, 14); }
|
||||
@Override public void clickSecondary(ItemStack stack, LambdaContext ctx) { XFactoryPA.doSwing(stack, ctx, GunAnimation.ALT_CYCLE, 20); }
|
||||
|
||||
@Override
|
||||
public void orchestra(ItemStack stack, LambdaContext ctx) {
|
||||
EntityLivingBase entity = ctx.entity;
|
||||
if(entity.worldObj.isRemote) return;
|
||||
GunAnimation type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
|
||||
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
|
||||
|
||||
boolean swings = type == GunAnimation.CYCLE && (timer == 3 || timer == 9);
|
||||
boolean slap = type == GunAnimation.ALT_CYCLE && timer == 8;
|
||||
|
||||
if((swings || slap) && ctx.getPlayer() != null) {
|
||||
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D);
|
||||
|
||||
if(mop != null) {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY) {
|
||||
float damage = swings ? 15F : 35F;
|
||||
float knockback = swings ? 0F : 1.5F;
|
||||
float dt = swings ? 5F : 15F;
|
||||
float pierce = swings ? 0.1F : 0.25F;
|
||||
|
||||
if(mop.entityHit instanceof EntityLivingBase) {
|
||||
EntityLivingBase living = (EntityLivingBase) mop.entityHit;
|
||||
if(living.getMaxHealth() >= 100) damage *= 2.5;
|
||||
EntityDamageUtil.attackEntityFromNT((EntityLivingBase) mop.entityHit, DamageSource.causePlayerDamage(ctx.getPlayer()), damage, true, false, knockback, dt, pierce);
|
||||
if(living.getRNG().nextInt(slap ? 3 : 10) == 0 && !living.isEntityAlive()) ConfettiUtil.gib(living);
|
||||
} else {
|
||||
mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage);
|
||||
}
|
||||
|
||||
entity.worldObj.playSoundAtEntity(mop.entityHit, "hbm:weapon.fire.smack", 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
||||
}
|
||||
if(mop.typeOfHit == mop.typeOfHit.BLOCK) {
|
||||
Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
entity.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, b.stepSound.getStepResourcePath(), 2F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BusAnimation playAnim(ItemStack stack, GunAnimation type) {
|
||||
if(type == GunAnimation.EQUIP) return new BusAnimation()
|
||||
.addBus("EQUIP", new BusAnimationSequence().setPos(-1, 0, 0).addPos(0, 0, 0, 250, IType.SIN_DOWN));
|
||||
if(type == GunAnimation.CYCLE) return new BusAnimation()
|
||||
.addBus("SWINGRIGHT", new BusAnimationSequence().addPos(1, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 250, IType.SIN_FULL))
|
||||
.addBus("SWINGLEFT", new BusAnimationSequence().addPos(0, 0, 0, 300).addPos(1, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 250, IType.SIN_FULL));
|
||||
if(type == GunAnimation.ALT_CYCLE) return new BusAnimation()
|
||||
.addBus("SLAPTURN", new BusAnimationSequence().addPos(1, 0, 0, 250, IType.LINEAR).hold(150).addPos(0, 0, 0, 350, IType.LINEAR))
|
||||
.addBus("SLAP", new BusAnimationSequence().hold(250).addPos(1, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 350, IType.SIN_FULL));
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override public void setupFirstPerson(ItemStack stack) { }
|
||||
|
||||
@Override
|
||||
public void renderFirstPerson(ItemStack stack) {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.rpa_arm);
|
||||
|
||||
GL11.glTranslated(0, -1.5, 0.5);
|
||||
double scale = 0.125D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
|
||||
double[] equip = HbmAnimations.getRelevantTransformation("EQUIP");
|
||||
double swingRight = HbmAnimations.getRelevantTransformation("SWINGRIGHT")[0];
|
||||
double swingLeft = HbmAnimations.getRelevantTransformation("SWINGLEFT")[0];
|
||||
double slapTurn = HbmAnimations.getRelevantTransformation("SLAPTURN")[0];
|
||||
double slap = HbmAnimations.getRelevantTransformation("SLAP")[0];
|
||||
|
||||
double forwardTilt = 60 - 60 * equip[0];
|
||||
double offsetOutward = 3;
|
||||
double roll = 60;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(-12 * swingLeft + 2 * slapTurn - 5 * slap, 6 * slap, 5 * swingLeft + 8 * slap);
|
||||
GL11.glRotated(forwardTilt - swingRight * 20, 1, 0, 0);
|
||||
|
||||
GL11.glTranslated(offsetOutward, 0, 0);
|
||||
GL11.glTranslated(6, 8, 0);
|
||||
GL11.glRotated(60 * swingLeft + 45 * slap, 0, 0, 1);
|
||||
GL11.glRotated(roll + 15 * swingLeft + 45 * slapTurn, 0, 1, 0);
|
||||
GL11.glTranslated(-6, -8, 0);
|
||||
ResourceManager.armor_remnant.renderPart("LeftArm");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(12 * swingRight - 2 * slapTurn + 5 * slap, 6 * slap, 5 * swingRight + 8 * slap);
|
||||
GL11.glRotated(forwardTilt - swingLeft * 20, 1, 0, 0);
|
||||
|
||||
GL11.glTranslated(-offsetOutward, 0, 0);
|
||||
GL11.glTranslated(-6, 8, 0);
|
||||
GL11.glRotated(-60 * swingRight - 45 * slap, 0, 0, 1);
|
||||
GL11.glRotated(-roll - 15 * swingRight - 45 * slapTurn, 0, 1, 0);
|
||||
GL11.glTranslated(6, -8, 0);
|
||||
ResourceManager.armor_remnant.renderPart("RightArm");
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
@ -1,19 +1,9 @@
|
||||
package com.hbm.items.armor;
|
||||
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||
import com.hbm.render.anim.BusAnimation;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IPAMelee {
|
||||
|
||||
public void setupFirstPerson(ItemStack stack);
|
||||
public void renderFirstPerson(ItemStack stack);
|
||||
|
||||
public BusAnimation playAnim(ItemStack stack, GunAnimation type);
|
||||
public void orchestra(ItemStack stack, LambdaContext ctx);
|
||||
|
||||
public void clickPrimary(ItemStack stack, LambdaContext ctx);
|
||||
public void clickSecondary(ItemStack stack, LambdaContext ctx);
|
||||
}
|
||||
|
||||
@ -3,7 +3,6 @@ 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;
|
||||
@ -12,13 +11,8 @@ 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;
|
||||
@ -48,21 +42,10 @@ public class ConfettiUtil {
|
||||
}
|
||||
|
||||
public static void gib(EntityLivingBase entity) {
|
||||
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;
|
||||
if(entity instanceof EntityCyberCrab) return;
|
||||
if(entity instanceof EntityTeslaCrab) return;
|
||||
if(entity instanceof EntityTaintCrab) return;
|
||||
if(entity instanceof EntitySlime) return;
|
||||
|
||||
SkeletonCreator.composeEffectGib(entity.worldObj, entity, 0.25F);
|
||||
|
||||
@ -71,7 +54,6 @@ 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);
|
||||
}
|
||||
|
||||
@ -5,17 +5,16 @@ import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.armor.IPAMelee;
|
||||
import com.hbm.items.armor.IPAWeaponsProvider;
|
||||
import com.hbm.items.weapon.sedna.Crosshair;
|
||||
import com.hbm.items.weapon.sedna.GunConfig;
|
||||
import com.hbm.items.weapon.sedna.Receiver;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||
import com.hbm.render.anim.BusAnimation;
|
||||
import com.hbm.render.anim.BusAnimationSequence;
|
||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -30,44 +29,27 @@ public class XFactoryPA {
|
||||
.draw(10).inspect(55).crosshair(Crosshair.NONE)
|
||||
.rec(new Receiver(0)
|
||||
.dmg(10F).delay(20).jam(0)
|
||||
.offset(1, -0.0625 * 2.5, -0.25D))
|
||||
.pp(LAMBDA_CLICK_PRIMARY).ps(LAMBDA_CLICK_SENONDARY).decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
|
||||
.anim(LAMBDA_MELEE_ANIMS).orchestra(ORCHESTRA)
|
||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||
.canFire(LAMBDA_MELEE_CAN_FIRE).fire(LAMBDA_MELEE_FIRE))
|
||||
.pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).rp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
|
||||
.anim(LAMBDA_MELEE_ANIMS).orchestra(Orchestras.ORCHESTRA_DRILL)
|
||||
).setUnlocalizedName("gun_pa_melee");
|
||||
}
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA = (stack, ctx) -> {
|
||||
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
|
||||
if(component != null) component.orchestra(stack, ctx);
|
||||
};
|
||||
|
||||
public static BiFunction<ItemStack, GunAnimation, BusAnimation> LAMBDA_MELEE_ANIMS = (stack, type) -> {
|
||||
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
|
||||
if(component != null) return component.playAnim(stack, type);
|
||||
return null;
|
||||
if(type == GunAnimation.EQUIP) return new BusAnimation()
|
||||
.addBus("EQUIP", new BusAnimationSequence().setPos(-1, 0, 0).addPos(0, 0, 0, 750, IType.SIN_DOWN));
|
||||
|
||||
return new BusAnimation()
|
||||
.addBus("SWING", new BusAnimationSequence().setPos(-1, 0, 0).addPos(0, 0, 0, 750, IType.SIN_DOWN));
|
||||
};
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_CLICK_PRIMARY = (stack, ctx) -> {
|
||||
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
|
||||
if(component != null) component.clickPrimary(stack, ctx);
|
||||
};
|
||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_CLICK_SENONDARY = (stack, ctx) -> {
|
||||
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
|
||||
if(component != null) component.clickSecondary(stack, ctx);
|
||||
};
|
||||
|
||||
public static void doSwing(ItemStack stack, LambdaContext ctx, GunAnimation anim, int cooldown) {
|
||||
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_MELEE_CAN_FIRE = (stack, ctx) -> { return true; };
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_MELEE_FIRE = (stack, ctx) -> {
|
||||
EntityPlayer player = ctx.getPlayer();
|
||||
int index = ctx.configIndex;
|
||||
GunState state = ItemGunBaseNT.getState(stack, index);
|
||||
|
||||
if(state == GunState.IDLE) {
|
||||
ItemGunBaseNT.playAnimation(player, stack, anim, ctx.configIndex);
|
||||
ItemGunBaseNT.setState(stack, index, GunState.COOLDOWN);
|
||||
ItemGunBaseNT.setTimer(stack, index, cooldown);
|
||||
}
|
||||
}
|
||||
ItemGunBaseNT.playAnimation(player, stack, ItemGunBaseNT.getPrimary(stack, 0) ? GunAnimation.CYCLE : GunAnimation.ALT_CYCLE, ctx.configIndex);
|
||||
};
|
||||
|
||||
public static class ItemGunMelee extends ItemGunBaseNT {
|
||||
|
||||
|
||||
@ -1817,7 +1817,6 @@ 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);
|
||||
|
||||
@ -1841,7 +1840,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, gibType));
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiblet(man, world, x, y, z, rand.nextGaussian() * 0.25 * mult, rand.nextDouble() * mult, rand.nextGaussian() * 0.25 * mult));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -21,17 +21,14 @@ import net.minecraft.world.World;
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class ParticleGiblet extends EntityFX {
|
||||
|
||||
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 static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/meat.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, int gibType) {
|
||||
public ParticleGiblet(TextureManager texman, World world, double x, double y, double z, double mX, double mY, double mZ) {
|
||||
super(world, x, y, z);
|
||||
this.motionX = mX;
|
||||
this.motionY = mY;
|
||||
@ -39,9 +36,6 @@ 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;
|
||||
@ -63,9 +57,7 @@ public class ParticleGiblet extends EntityFX {
|
||||
this.rotationPitch += this.momentumPitch;
|
||||
this.rotationYaw += this.momentumYaw;
|
||||
|
||||
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);
|
||||
EntityFX fx = new net.minecraft.client.particle.EntityBlockDustFX(worldObj, posX, posY, posZ, 0, 0, 0, Blocks.redstone_block, 0);
|
||||
ReflectionHelper.setPrivateValue(EntityFX.class, fx, 20 + rand.nextInt(20), "particleMaxAge", "field_70547_e");
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect(fx);
|
||||
}
|
||||
@ -77,8 +69,7 @@ public class ParticleGiblet extends EntityFX {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
|
||||
this.theRenderEngine.bindTexture(gibType == 2 ? textureMetal : gibType == 1 ? textureSlime : textureMeat);
|
||||
this.theRenderEngine.bindTexture(texture);
|
||||
|
||||
/* 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;
|
||||
|
||||
@ -14,9 +14,6 @@ public class ItemRenderPAMelee extends ItemRenderWeaponBase {
|
||||
|
||||
@Override public boolean isAkimbo(EntityLivingBase entity) { return true; }
|
||||
|
||||
@Override protected float getSwayMagnitude(ItemStack stack) { return 2F; }
|
||||
@Override protected float getSwayPeriod(ItemStack stack) { return 0.5F; }
|
||||
|
||||
@Override
|
||||
public void setupFirstPerson(ItemStack stack) {
|
||||
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
|
||||
@ -56,19 +53,28 @@ public class ItemRenderPAMelee extends ItemRenderWeaponBase {
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ncrpa_arm);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.maresleg_tex);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
double scale = 0.3125D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glRotated(225, 0, 0, 1);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glRotated(25, 1, 0, 0);
|
||||
GL11.glRotated(45, 0, 1, 0);
|
||||
GL11.glTranslated(-1, 0, 0);
|
||||
ResourceManager.maresleg.renderPart("Gun");
|
||||
ResourceManager.maresleg.renderPart("Lever");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glRotated(135, 0, 0, 1);
|
||||
GL11.glRotated(135, 0, 1, 0);
|
||||
GL11.glTranslated(0, -5.5, 0);
|
||||
GL11.glTranslated(-3.5, 0, 0);
|
||||
ResourceManager.armor_ncr.renderPart("Leftarm");
|
||||
GL11.glTranslated(7, 1, -1);
|
||||
ResourceManager.armor_ncr.renderPart("RightArm");
|
||||
GL11.glTranslated(0, 0, 5);
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(225, 0, 0, 1);
|
||||
GL11.glRotated(-90, 0, 1, 0);
|
||||
GL11.glRotated(-90, 1, 0, 0);
|
||||
GL11.glRotated(25, 1, 0, 0);
|
||||
GL11.glRotated(-45, 0, 1, 0);
|
||||
GL11.glTranslated(1, 0, 0);
|
||||
ResourceManager.maresleg.renderPart("Gun");
|
||||
ResourceManager.maresleg.renderPart("Lever");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
@ -191,7 +191,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
|
||||
BlockPos portPos = pos.offset(dir);
|
||||
|
||||
if(tanks[1].getFill() > 0) this.tryProvide(tanks[1], worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir);
|
||||
this.trySubscribe(tanks[0].getTankType(), worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir);
|
||||
if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tanks[0].getTankType(), worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2220,9 +2220,8 @@ item.gun_minigun_dual.name=Doppelete Miniguns
|
||||
item.gun_minigun_lacunae.name=Lacunae
|
||||
item.gun_missile_launcher.name=Raketenwerfer
|
||||
item.gun_n_i_4_n_i.name=N I 4 N I
|
||||
item.gun_pa_melee.name=Powerrüstung - Nahkampfcontroller
|
||||
item.gun_panzerschreck.name=Panzerschreck
|
||||
item.gun_pepperbox.name=Bündelrevolver
|
||||
item.gun_panzerschreck.name=Panzerschreck
|
||||
item.gun_quadro.name=Vierfachraketenwerfer
|
||||
item.gun_spas12.name=SPAS-12
|
||||
item.gun_star_f.name=Sportpistole
|
||||
|
||||
@ -3063,9 +3063,8 @@ item.gun_minigun_dual.name=Dual Miniguns
|
||||
item.gun_minigun_lacunae.name=Lacunae
|
||||
item.gun_missile_launcher.name=Missile Launcher
|
||||
item.gun_n_i_4_n_i.name=N I 4 N I
|
||||
item.gun_pa_melee.name=Power Armor - Melee Controller
|
||||
item.gun_panzerschreck.name=Panzerschreck
|
||||
item.gun_pepperbox.name=Pepperbox
|
||||
item.gun_panzerschreck.name=Panzerschreck
|
||||
item.gun_quadro.name=Quad Rocket Launcher
|
||||
item.gun_spas12.name=SPAS-12
|
||||
item.gun_star_f.name=Target Pistol
|
||||
|
||||
@ -3096,86 +3096,174 @@ item.grenade_tau.name=Тау-Граната
|
||||
item.grenade_zomg.name=Граната аннигиляции пар отрицательной энергии
|
||||
item.glyphid_gland.name= Железа глифида:
|
||||
item.glyphid_gland_empty.name= Железа глифида
|
||||
item.gun_aberrator.name=Пистолет "Aberrator"
|
||||
item.gun_aberrator_eott.name=Пистолет "Eyes Of The Tempest"
|
||||
item.gun_aberrator.name=Аберратор
|
||||
item.gun_aberrator_eott.name=Глаза бури
|
||||
item.gun_am180.name=Пистолет-пулемёт .22 LR
|
||||
item.gun_am180_silenced.name=Пистолет-пулемёт .22 LR с глушителем
|
||||
item.gun_amat.name=Крупнокалиберная снайперская винтовка
|
||||
item.gun_amat_penance.name=Крупнокалиберная снайперская винтовка "Penance"
|
||||
item.gun_amat_subtlety.name=Крупнокалиберная снайперская винтовка "Subtlety"
|
||||
item.gun_amat_penance.name="Покаяние"
|
||||
item.gun_amat_subtlety.name="Тонкость"
|
||||
item.gun_ar15.name="Джош"
|
||||
item.gun_autoshotgun.name=Автоматический дробовик
|
||||
item.gun_autoshotgun_heretic.name=Дробовик "The Heretic"
|
||||
item.gun_autoshotgun_sexy.name=Дробовик "Sexy"
|
||||
item.gun_autoshotgun_shredder.name=Дробовик "Shredder"
|
||||
item.gun_drill.name=Силовой бур
|
||||
item.gun_autoshotgun_heretic.name=Еретик
|
||||
item.gun_autoshotgun_sexy.name=Секси
|
||||
item.gun_autoshotgun_shredder.name=Шреддер
|
||||
item.gun_avenger.name=CZ57 “Авенджер”
|
||||
item.gun_b92.name=§9Энергетический бластер B92§r
|
||||
item.gun_b92_ammo.name=§9Энергетический элемент B92§r
|
||||
item.gun_b93.name=§cМодифицированный бластер B93§r
|
||||
item.gun_benelli.name=Benelli Autoshotgun
|
||||
item.gun_bf.name=BEL
|
||||
item.gun_bf_ammo.name=Жар-снаряд
|
||||
item.gun_bio_revolver.name=Атлас
|
||||
item.gun_bolt_action.name=Винтовка со скользящим затвором(Оригинал)
|
||||
item.gun_bolt_action_green.name=Винтовка со скользящим затвором (Зелёный)
|
||||
item.gun_bolt_action_saturnite.name=Сатурнитовая винтовка
|
||||
item.gun_bolter.name=Болтер
|
||||
item.gun_drill.name=Силовой бур
|
||||
item.gun_bolter_digamma.name=Дигамма пушка
|
||||
item.gun_calamity.name=Каламити
|
||||
item.gun_calamity_dual.name=Боевое седло
|
||||
item.gun_carbine.name=Карабин
|
||||
item.gun_charge_thrower.name=Метатель снарядов
|
||||
item.gun_chemthrower.name=Химомёт
|
||||
item.gun_coilgun.name=Гаусс-пушка
|
||||
item.gun_congolake.name=Помповый гранатомёт "Congo Lake"
|
||||
item.gun_cryocannon.name=Cryo Cannon
|
||||
item.gun_cryolator_ammo.name=Cryo Cell
|
||||
item.gun_congolake.name=Congo Lake
|
||||
item.gun_cryocannon.name=Криопушка
|
||||
item.gun_cryolator.name=Криолятор
|
||||
item.gun_cryolator_ammo.name=Криоэлемент
|
||||
item.gun_dampfmaschine.name=Совершенно не шуточное оружие
|
||||
item.gun_darter.name=Дротиковый пистолет
|
||||
item.gun_deagle.name=Биг Айрон
|
||||
item.gun_defabricator.name=Дефабрикатор
|
||||
item.gun_defabricator_ammo.name=Энергетические ячейки Дефабрикатора
|
||||
item.gun_detonator.name=Лазерный детонатор
|
||||
item.gun_double_barrel.name=Дробовик "Old Classic"
|
||||
item.gun_double_barrel_sacred_dragon.name=Дробовик "Sacred Dragon"
|
||||
item.gun_fatman.name=Атомная катапульта M42 "Fat man"
|
||||
item.gun_double_barrel.name=Старая классика
|
||||
item.gun_double_barrel_sacred_dragon.name=Священный дракон
|
||||
item.gun_emp.name=ЭМИ-пушка
|
||||
item.gun_emp_ammo.name=Энергетическая ячейка
|
||||
item.gun_euthanasia.name=Эвтаназия
|
||||
item.gun_euthanasia_ammo.name=Шприцы
|
||||
item.gun_fatman.name=М42 Атомная катапульта "Толстяк"
|
||||
item.gun_fireext.name=Огнетушитель
|
||||
item.gun_flamer.name=Огнемёт
|
||||
item.gun_flamer_daybreaker.name=Огнемёт "Daybreaker"
|
||||
item.gun_flamer_topaz.name=Огнемёт "Mister Topaz"
|
||||
item.gun_flamer_daybreaker.name=Дейбрейкер
|
||||
item.gun_flamer_topaz.name=Мистер Топаз
|
||||
item.gun_flaregun.name=Сигнальный пистолет
|
||||
item.gun_folly.name=Пушка "Folly"
|
||||
item.gun_flechette.name=Игольчатая винтовка
|
||||
item.gun_folly.name=Безумие
|
||||
item.gun_g3.name=Штурмовая винтовка
|
||||
item.gun_g3_a3.name=Штурмовая винтовка "G3A3"
|
||||
item.gun_g3_infiltrator.name=Штурмовая винтовка "Infiltrator"
|
||||
item.gun_g3_zebra.name=Зебринская штурмовая винтовка
|
||||
item.gun_g3_a3.name=G3A3
|
||||
item.gun_g3_infiltrator.name=Инфильтратор
|
||||
item.gun_g3_zebra.name=Зебринская винтовка
|
||||
item.gun_glass_cannon.name=Стеклянная пушка
|
||||
item.gun_greasegun.name=Пистолет-пулемёт "Маслёнка"
|
||||
item.gun_greasegun_m3.name=Улучшенный пистолет-пулемёт М3
|
||||
item.gun_hangman.name=Винтовка "Hangman"
|
||||
item.gun_hangman.name=Палач
|
||||
item.gun_heavy_revolver.name=Тяжёлый револьвер
|
||||
item.gun_heavy_revolver_lilmac.name=Револьвер "Little Macintosh"
|
||||
item.gun_heavy_revolver_protege.name=Револьвер "Protège"
|
||||
item.gun_heavy_revolver_scoped.name=Револьвер .44 Magnum с прицелом
|
||||
item.gun_heavy_revolver_lilmac.name=Малый Макинтош
|
||||
item.gun_heavy_revolver_protege.name=Протèже
|
||||
item.gun_heavy_revolver_scoped.name=.44 Magnum с прицелом
|
||||
item.gun_henry.name=Винтовка рычажного действия
|
||||
item.gun_henry_lincoln.name=Винтовка "Lincoln's Repeater"
|
||||
item.gun_henry_lincoln.name=Винтовка Линкольна
|
||||
item.gun_hk69.name=Гранатомет
|
||||
item.gun_hp.name=HPP Лазерджет
|
||||
item.gun_hp_ammo.name=Чернильный картридж
|
||||
item.gun_immolator.name=Иммолятор
|
||||
item.gun_immolator_ammo.name=Топливо Иммолатора
|
||||
item.gun_jack.name=Джекхаммер
|
||||
item.gun_jack_ammo.name=Снаряд для четырёхствольного дробовика
|
||||
item.gun_karl.name=Карл
|
||||
item.gun_kit_1.name=Ружейное масло
|
||||
item.gun_kit_2.name=Комплект для ремонта оружия
|
||||
item.gun_ks23.name=Сэмюэль Большой Дробовик
|
||||
item.gun_lacunae.name=CZ33 “Абаддон”
|
||||
item.gun_lag.name=Комически длинный пистолет
|
||||
item.gun_laser_pistol.name=Лазерный пистолет
|
||||
item.gun_laser_pistol_morning_glory.name=Лазерный пистолет "Morning Glory"
|
||||
item.gun_laser_pistol_pew_pew.name=Лазерный пистолет "Pew Pew"
|
||||
item.gun_liberator.name=Дробовик "Liberator"
|
||||
item.gun_laser_pistol_morning_glory.name=Морнин Глори
|
||||
item.gun_laser_pistol_pew_pew.name=Пиу-пиу
|
||||
item.gun_lasrifle.name=Лазерная винтовка
|
||||
item.gun_lever_action.name=«Нога кобылы» (Оригинал)
|
||||
item.gun_lever_action_dark.name="Нога кобылы" (Тёмный)
|
||||
item.gun_lever_action_sonata.name=Перевёрнутая «Нога кобылы»
|
||||
item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r
|
||||
item.gun_liberator.name=Либератор
|
||||
item.gun_light_revolver.name=Револьвер переломного действия
|
||||
item.gun_light_revolver_atlas.name=Револьвер "Atlas"
|
||||
item.gun_light_revolver_dani.name=Ревельверы "Day and Night"
|
||||
item.gun_m2.name=Пулемёт "Ma Deuce"
|
||||
item.gun_light_revolver_atlas.name=Атлас
|
||||
item.gun_light_revolver_dani.name=День и Ночь
|
||||
item.gun_lunatic_marksman.name=Lunatic Marksman Rifle (BETA)
|
||||
item.gun_m2.name=Ma Deuce
|
||||
item.gun_maresleg.name=Дробовик рычажного действия
|
||||
item.gun_maresleg_akimbo.name=Дробовики рычажного действия
|
||||
item.gun_maresleg_broken.name=Дробовик "Broken"
|
||||
item.gun_maresleg_short.name=Дробовик "Mare's Leg"
|
||||
item.gun_mas36.name=Винтовка "South Star"
|
||||
item.gun_maresleg_broken.name=Broken
|
||||
item.gun_maresleg_short.name=Нога кобылы
|
||||
item.gun_mas36.name=Южная Звезда
|
||||
item.gun_minigun.name=Персональный миниган
|
||||
item.gun_minigun_dual.name=Двойные миниганы
|
||||
item.gun_minigun_lacunae.name=Миниган "Lacunae"
|
||||
item.gun_missile_launcher.name=Ракетная пусковая установка
|
||||
item.gun_n_i_4_n_i.name=Энергетический револьвер "N I 4 N I"
|
||||
item.gun_pepperbox.name=Револьвер "Перечница"
|
||||
item.gun_pa_melee.name=Силовая броня - Контроллер ближнего боя
|
||||
item.gun_panzerschreck.name=Гранатомёт "Panzerschreck"
|
||||
item.gun_quadro.name=Четырехствольная ракетная пусковая установка
|
||||
item.gun_spas12.name=Дробовик "SPAS-12"
|
||||
item.gun_star_f.name=Спортивный пистолет
|
||||
item.gun_star_f_akimbo.name=Спортивные пистолеты
|
||||
item.gun_star_f_silenced.name=Пистолет с глушителем
|
||||
item.gun_stg77.name=Штурмовая винтовка "StG 77"
|
||||
item.gun_stinger.name=Ракетная пусковая установка FIM-92 "Stinger"
|
||||
item.gun_tau.name=Тау-пушка
|
||||
item.gun_tesla_cannon.name=Тесла-пушка
|
||||
item.gun_uzi.name=Пистолет-пулемёт "UZI"
|
||||
item.gun_uzi_richter.name=Пистолет-пулемёт "Richter"
|
||||
item.gun_uzi_akimbo.name=Пистолеты-пулемёты "UZIs"
|
||||
item.gun_uzi_saturnite.name=Пистолет-пулемёт "UZI сатурнитовый"
|
||||
item.gun_minigun_lacunae.name=Лакунэ
|
||||
item.gun_mirv.name=M42 Ядерная катапульта "Экспериментальный МИРВ"
|
||||
item.gun_missile_launcher.name=Ракетница
|
||||
item.gun_moist_nugget.name=Мосин-Наган
|
||||
item.gun_mp.name=Пулемет Пацифистов
|
||||
item.gun_mp40.name=Пистолет-пулемёт
|
||||
item.gun_mp40_ammo.name=Submachine Gun Round (DEPRECATED)
|
||||
item.gun_pepperbox.name=Перечница
|
||||
item.gun_pm_ammo.name=Малый беспропеллентовый пулемётный патрон
|
||||
item.gun_mymy.name=Ньетес
|
||||
item.gun_osipr.name=Импульсная винтовка Патруля
|
||||
item.gun_osipr_ammo.name=Импульсные патроны
|
||||
item.gun_osipr_ammo2.name=Энергетический шар Комбайнов
|
||||
item.gun_panzerschreck.name=Панцершрек
|
||||
item.gun_proto.name=М42 Ядерная катапульта "Прото МИРВ"
|
||||
item.gun_quadro.name="Четыре Сыра"
|
||||
item.gun_remington.name=バイデン ブラスト [BIDEN BLAST]
|
||||
item.gun_revolver.name=Усовершенствованный револьвер
|
||||
item.gun_revolver_ammo.name=Свинцовая пуля
|
||||
item.gun_revolver_blackjack.name=Пятизарядный револьвер Блэкджек
|
||||
item.gun_revolver_cursed.name=Проклятый револьвер
|
||||
item.gun_revolver_cursed_ammo.name=Стальная пуля
|
||||
item.gun_revolver_gold.name=Золотой револьвер
|
||||
item.gun_revolver_gold_ammo.name=Золотая пуля
|
||||
item.gun_revolver_inverted.name=Перевернутый револьвер
|
||||
item.gun_revolver_iron.name=Простой револьвер
|
||||
item.gun_revolver_iron_ammo.name=Пуля
|
||||
item.gun_revolver_lead.name=Ядерный револьвер
|
||||
item.gun_revolver_lead_ammo.name=Покрытая стеклом атомная пуля
|
||||
item.gun_revolver_nightmare.name=Кошмарный револьвер (Оригинал)
|
||||
item.gun_revolver_nightmare2.name=Кошмарный револьвер (Тёмный)
|
||||
item.gun_revolver_nightmare2_ammo.name=Лазерная дробь
|
||||
item.gun_revolver_nightmare_ammo.name=Кошмарная пуля
|
||||
item.gun_revolver_pip.name=Лил' Пипсквик
|
||||
item.gun_revolver_red.name=Револьвер с красным ключом
|
||||
item.gun_revolver_saturnite.name=Сатурнитовый револьвер
|
||||
item.gun_revolver_schrabidium.name=Шрабидиевый револьвер
|
||||
item.gun_revolver_schrabidium_ammo.name=Шрабидиевая пуля
|
||||
item.gun_revolver_silver.name=Одолженный пистолет
|
||||
item.gun_rpg.name=Безоткатная Винтовка “Карл Густав”
|
||||
item.gun_sauer.name=Дробовик Стэна Зауэра
|
||||
item.gun_skystinger.name="Небесный Стингер"
|
||||
item.gun_spark.name=Спарк-Плаг
|
||||
item.gun_spark_ammo.name=Электромагнитный картридж
|
||||
item.gun_spas12.name=Дробовик SPAS-12
|
||||
item.gun_stg77.name=StG 77
|
||||
item.gun_stinger.name=FIM-92 "Стингер"
|
||||
item.gun_super_shotgun.name=Супердробовик
|
||||
item.gun_super_shotgun.desc=Он супер сломан!
|
||||
item.gun_supershotgun.name=Супердробовик
|
||||
item.gun_tau.name=Тау пушка
|
||||
item.gun_tesla_cannon.name=Тесла пушка
|
||||
item.gun_thompson.name=Пистолет-пулемёт Томпсона
|
||||
item.gun_uac_pistol.name=Пистолет UAC .45
|
||||
item.gun_uboinik.name=Убойник
|
||||
item.gun_uzi.name=IMI Узи
|
||||
item.gun_uzi_richter.name=Richter
|
||||
item.gun_uzi_akimbo.name=Акимбо Узи
|
||||
item.gun_uzi_saturnite.name=Сатурнитовый Узи
|
||||
item.gun_uzi_saturnite_silencer.name=Сатурнитовый Узи с глушителем
|
||||
item.gun_uzi_silencer.name=IMI Узи с глушителем
|
||||
item.gun_xvl1456.name=Прототип Тау-пушки XVL1456
|
||||
item.gun_xvl1456_ammo.name=Ящик с обеднённым ураном-235
|
||||
item.gun_zomg.name=ZOMG-пушка
|
||||
item.hand_drill.name=Ручная дрель
|
||||
item.hand_drill_desh.name=Ручная дрель из деша
|
||||
item.hazmat_boots.name=Защитные ботинки
|
||||
@ -3734,10 +3822,6 @@ item.multitool_silk.name=Силовая перчатка (Коготь шёлк
|
||||
item.multitool_sky.name=Силовая перчатка (Небесный разлом)
|
||||
item.mysteryshovel.name=Непрочная лопата
|
||||
item.n2_charge.name=Крупный взрывной заряд
|
||||
item.ncrpa_boots.name=Ботинки силовой брони рейнджера НКР
|
||||
item.ncrpa_helmet.name=Шлем силовой брони рейнджера НКР
|
||||
item.ncrpa_legs.name=Поножи силовой брони рейнджера НКР
|
||||
item.ncrpa_plate.name=Нагрудник силовой брони рейнджера НКР
|
||||
item.neutrino_lens.name=Нейтринные линзы
|
||||
item.neutron_reflector.name=Отражатель нейтронов
|
||||
item.night_vision.name=Очки ночного зрения
|
||||
@ -5921,10 +6005,9 @@ tile.machine_icf_press.desc=Наполняет топливные пеллеты
|
||||
tile.machine_industrial_boiler.name=Промышленный бойлер
|
||||
tile.machine_industrial_boiler.desc=Большой бойлер, в котором можно вскипятить воду или разогреть нефть.$Требует внешний источник тепла.$Скорость передачи тепла: ΔT*0.1 TU/t$Не может взорваться
|
||||
tile.machine_industrial_generator.name=Промышленный генератор
|
||||
tile.machine_industrial_turbine.name=Промышленная паровая турбина
|
||||
tile.machine_industrial_turbine.desc=Эффективность: 100%%
|
||||
tile.machine_intake.name=Воздухозаборник
|
||||
tile.machine_keyforge.name=Стол мастера по замкам
|
||||
tile.machine_large_turbine.name=Промышленная паровая турбина
|
||||
tile.machine_large_turbine.desc=Эффективность: 100%%
|
||||
tile.machine_liquefactor.name=Промышленный разжижитель
|
||||
tile.machine_liquefactor.desc=Мощная машина для превращения предметов в жидкости.$Поставляется с универсальными каталитическими компонентами, нагревательными элементами$и встроенным гидратором для нефтехимического сжижения.
|
||||
@ -6642,6 +6725,51 @@ desc.gui.upgrade.overdrive= * §7Перегруз§r: Стакается до 3-
|
||||
desc.gui.upgrade.power= * §1Энергосбережение§r: Стакается до 3-х уровней
|
||||
desc.gui.upgrade.speed= * §4Скорость§r: Стакается до 3-х уровней
|
||||
|
||||
// Last updated 15.02.2026 by RayzerHan //
|
||||
// Last updated 12.01.2026 by RayzerHan //
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/armor/gold_layer_1.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/main/resources/assets/hbm/textures/armor/gold_layer_2.png
Normal file
|
After Width: | Height: | Size: 671 B |
BIN
src/main/resources/assets/hbm/textures/armor/iron_layer_1.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/main/resources/assets/hbm/textures/armor/iron_layer_2.png
Normal file
|
After Width: | Height: | Size: 649 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 968 B |
|
Before Width: | Height: | Size: 278 B |
|
Before Width: | Height: | Size: 222 B |