New guns + missed issues fixed
The new guns got added as well as some issues that I missed in the previous PRs got fixed too. More detail in the actual PR summary.
@ -1,6 +1,11 @@
|
||||
package api.hbm.energy;
|
||||
|
||||
import javax.annotation.CheckForNull;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public interface IBatteryItem {
|
||||
|
||||
@ -11,4 +16,34 @@ public interface IBatteryItem {
|
||||
public long getMaxCharge();
|
||||
public long getChargeRate();
|
||||
public long getDischargeRate();
|
||||
|
||||
public default String getChargeTagName()
|
||||
{
|
||||
return "charge";
|
||||
}
|
||||
|
||||
public static String getChargeTagName(@Nonnull ItemStack stack)
|
||||
{
|
||||
return ((IBatteryItem) stack.getItem()).getChargeTagName();
|
||||
}
|
||||
|
||||
@CheckForNull
|
||||
public static ItemStack emptyBattery(ItemStack stack)
|
||||
{
|
||||
if (stack != null && stack.getItem() instanceof IBatteryItem)
|
||||
{
|
||||
final String keyName = getChargeTagName(stack);
|
||||
ItemStack stackOut = stack.copy();
|
||||
stackOut.stackTagCompound = new NBTTagCompound();
|
||||
stackOut.stackTagCompound.setLong(keyName, 0);
|
||||
return stackOut.copy();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@CheckForNull
|
||||
public static ItemStack emptyBattery(Item item)
|
||||
{
|
||||
return (item instanceof IBatteryItem) ? emptyBattery(new ItemStack(item)) : null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -154,6 +154,8 @@ public class WeaponRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', ModItems.bolt_tungsten, 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()});
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special });
|
||||
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 });
|
||||
|
||||
//Ammo assemblies
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() });
|
||||
@ -199,6 +201,9 @@ public class WeaponRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ModItems.ingot_semtex });
|
||||
CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, 'P', FE.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) });
|
||||
CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ModItems.plate_polymer });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44, 'P', ModItems.primer_44);
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_308, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_9);
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna_sniper, 4), new Object[] { " B ", "GCG", "GPG", 'B', ModItems.bolt_staballoy, 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power});
|
||||
|
||||
//Folly shells
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet, 1), new Object[] { " S ", "STS", "SMS", 'S', STAR.ingot(), 'T', ModItems.powder_magic, 'M', ModBlocks.block_meteor });
|
||||
|
||||
@ -516,9 +516,9 @@ public class BulletConfigSyncingUtil {
|
||||
|
||||
configSet.put(NUKE_AMAT, GunFatmanFactory.getBalefireConfig());
|
||||
|
||||
// configSet.put(TWR_RAY, GunEnergyFactory.getSingConfig());
|
||||
// configSet.put(HLR_NORMAL, GunEnergyFactory.getHLRPrecisionConfig());
|
||||
// configSet.put(HLR_ALT, GunEnergyFactory.getHLRScatterConfig());
|
||||
configSet.put(TWR_RAY, GunEnergyFactory.getSingConfig());
|
||||
configSet.put(HLR_NORMAL, GunEnergyFactory.getHLRPrecisionConfig());
|
||||
configSet.put(HLR_ALT, GunEnergyFactory.getHLRScatterConfig());
|
||||
|
||||
configSet.put(ZOMG_BOLT, GunEnergyFactory.getZOMGBoltConfig());
|
||||
configSet.put(DET_BOLT, GunDetonatorFactory.getLaserConfig());
|
||||
|
||||
@ -60,7 +60,7 @@ public class GunConfiguration implements Cloneable {
|
||||
|
||||
//for electrically powered weapons:
|
||||
//the Maximum capacity of the gun
|
||||
public int maxCharge;
|
||||
public long maxCharge;
|
||||
//the rate at which the gun is charged
|
||||
public int chargeRate;
|
||||
//how much energy is discharged per shot
|
||||
@ -79,6 +79,8 @@ public class GunConfiguration implements Cloneable {
|
||||
public EnumGunManufacturer manufacturer = EnumGunManufacturer.NONE;
|
||||
/**Sound that plays when first equipping the gun**/
|
||||
public String equipSound = "";
|
||||
/**Inverse of reloading, can it eject its ammo?**/
|
||||
public boolean canUnload;
|
||||
|
||||
public List<String> comment = new ArrayList<String>();
|
||||
|
||||
|
||||
@ -196,7 +196,7 @@ public class Gun357MagnumFactory {
|
||||
config.reloadDuration = 53;
|
||||
config.crosshair = Crosshair.CIRCLE;
|
||||
|
||||
config.name = "RI No. 2 Mark 1";
|
||||
config.name = "bio";
|
||||
config.manufacturer = EnumGunManufacturer.RYAN;
|
||||
|
||||
config.config = new ArrayList<Integer>();
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
package com.hbm.handler.guncfg;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.hbm.handler.BulletConfiguration;
|
||||
import com.hbm.handler.GunConfiguration;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.HbmCollection;
|
||||
import com.hbm.lib.HbmCollection.EnumGunManufacturer;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.render.util.RenderScreenOverlay.Crosshair;
|
||||
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
|
||||
public class Gun762mmFactory
|
||||
{
|
||||
|
||||
@ -166,11 +171,26 @@ public class Gun762mmFactory
|
||||
return bullet;
|
||||
}
|
||||
|
||||
public static BulletConfiguration get762BlankConfig()
|
||||
public static BulletConfiguration get762WPConfig()
|
||||
{
|
||||
final BulletConfiguration bullet = get762NATOConfig();
|
||||
|
||||
bullet.ammo = new ComparableStack(ModItems.ammo_308, 1, 4);
|
||||
bullet.setToFire(20 * 5);
|
||||
bullet.vPFX = "reddust";
|
||||
final PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true);
|
||||
eff.getCurativeItems().clear();
|
||||
bullet.effects = new ArrayList<PotionEffect>();
|
||||
bullet.effects.add(new PotionEffect(eff));
|
||||
|
||||
return bullet;
|
||||
}
|
||||
|
||||
public static BulletConfiguration get762BlankConfig()
|
||||
{
|
||||
final BulletConfiguration bullet = get762NATOConfig();
|
||||
|
||||
bullet.ammo = new ComparableStack(ModItems.ammo_308, 1, 5);
|
||||
bullet.dmgMax = 0;
|
||||
bullet.dmgMin = 0;
|
||||
bullet.penetration = 0;
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.handler.guncfg;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.entity.projectile.EntityBulletBase;
|
||||
@ -20,14 +21,18 @@ import com.hbm.packet.AuxParticlePacketNT;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.render.util.RenderScreenOverlay.Crosshair;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
public class GunEnergyFactory {
|
||||
|
||||
@ -183,6 +188,173 @@ public class GunEnergyFactory {
|
||||
|
||||
}
|
||||
|
||||
static final Random rand = new Random();
|
||||
|
||||
public static GunConfiguration getTWRConfig()
|
||||
{
|
||||
final GunConfiguration config = new GunConfiguration();
|
||||
final int randLore = rand.nextInt(7);
|
||||
|
||||
config.rateOfFire = 10;
|
||||
config.roundsPerCycle = 1;
|
||||
config.gunMode = GunConfiguration.MODE_NORMAL;
|
||||
config.firingMode = GunConfiguration.FIRE_MANUAL;
|
||||
config.durability = 1000000000;
|
||||
//config.hasSights = false;
|
||||
config.reloadSound = "hbm:weapon.b92Reload";
|
||||
config.firingSound = "hbm:weapon.singFlyby";
|
||||
config.ammoCap = 16;// Subject to change
|
||||
config.reloadType = GunConfiguration.RELOAD_FULL;
|
||||
config.allowsInfinity = false;
|
||||
config.damage = EnumChatFormatting.BOLD + "A lot";
|
||||
config.crosshair = Crosshair.SPLIT;
|
||||
config.canUnload = false;
|
||||
|
||||
config.config = new ArrayList<Integer>();
|
||||
config.config.add(BulletConfigSyncingUtil.TWR_RAY);
|
||||
|
||||
config.name = "lunaTWR";
|
||||
config.manufacturer = EnumGunManufacturer.LUNA;
|
||||
final String[] lore = I18nUtil.resolveKeyArray("item.gun_twr.desc." + randLore);
|
||||
for (String s : lore)
|
||||
config.comment.add(EnumChatFormatting.ITALIC + s);
|
||||
// May remove if it defeats the purpose of a semi-obscure reference
|
||||
config.advLore.add("Born from the Lunarian's vastly superior technology, the Time Warp Rifle (TWR)");
|
||||
config.advLore.add("is no ordinary sniper rifle. It was meant to be a weapon to eliminate targets of");
|
||||
config.advLore.add("extremely high priority, since very few beings could ever hope of surviving a shot");
|
||||
config.advLore.add("and even fewer (exactly none) could evade it. The only known TWR to be manufactured");
|
||||
config.advLore.add("and put into service was weilded by Reisen 2, sent by the Watatsuki sisters to eliminate");
|
||||
config.advLore.add("Yakumo Yukari to ensure that \"Moonlight Descent Ceremony\" would continue without");
|
||||
config.advLore.add("opposition. Despite surviving one hit to center of mass and nearly defeating Reisen 2,");
|
||||
config.advLore.add("Yukari ultimately was successfully killed. However, on her mission to eliminate Hakurei");
|
||||
config.advLore.add("Reimu, she was ambushed and incapacitated by Reisen (Prime), cutting that instance of");
|
||||
config.advLore.add("the rifle's service life short.");
|
||||
|
||||
config.advFuncLore.add("While not the most destructive or advanced weapon developed by the Lunarians, its");
|
||||
config.advFuncLore.add("function and capability in its role is without question. It's ability is determined");
|
||||
config.advFuncLore.add("by 3 factors: the ammunition type, the scope, and the delivery method. Upon inspection,");
|
||||
config.advFuncLore.add("there appear to be little to no moving parts beyond the trigger, this is due to the");
|
||||
config.advFuncLore.add("ammunition and delivery method. Instead of firing conventional bullets, it fires");
|
||||
config.advFuncLore.add("micro-singularities, which erase everything in their path out of existence and");
|
||||
config.advFuncLore.add("giving the target immense damage. Next is delivery, as with the quote: \"You can't");
|
||||
config.advFuncLore.add("dodge a bullet that's already hit\", the TWR sends a micro-singularity across the");
|
||||
config.advFuncLore.add("5th dimension to the target, meaning it arrives the moment the trigger is pulled.");
|
||||
config.advFuncLore.add("Finally is the \"Heisenberg Uncertainty Scope\" (nick. Schrödinger's Looking Glass).");
|
||||
config.advFuncLore.add("In layman's terms, it is like a portable Schrödinger's box and it is used to determine");
|
||||
config.advFuncLore.add("the fate of the target to ensure termination or at the very least, delivery.");
|
||||
if (MainRegistry.isPolaroid11())
|
||||
{
|
||||
config.advFuncLore.add("...");
|
||||
config.advFuncLore.add(EnumChatFormatting.STRIKETHROUGH + "Jk, we have no idea how it works");
|
||||
}
|
||||
return config;
|
||||
}
|
||||
/** Main fire gun mode **/
|
||||
public static GunConfiguration getHLRPrimaryConfig()
|
||||
{
|
||||
GunConfiguration config = new GunConfiguration();
|
||||
int randLore = rand.nextInt(4);
|
||||
config.rateOfFire = 1;
|
||||
config.roundsPerCycle = 1;
|
||||
config.maxCharge = 100000000000L;
|
||||
config.dischargePerShot = 10000000;
|
||||
config.chargeRate = 100000000;
|
||||
config.gunMode = GunConfiguration.MODE_NORMAL;
|
||||
config.firingMode = GunConfiguration.FIRE_AUTO;
|
||||
config.durability = 100000000;
|
||||
config.reloadType = GunConfiguration.RELOAD_FULL;
|
||||
config.allowsInfinity = false;
|
||||
config.hasSights = true;
|
||||
config.crosshair = Crosshair.L_CROSS;
|
||||
config.firingSound = "hbm:weapon.osiprShoot";
|
||||
config.reloadSound = "hbm:item.battery";
|
||||
config.firingPitch = 1.1F;
|
||||
config.config = new ArrayList<Integer>();
|
||||
config.config.add(BulletConfigSyncingUtil.HLR_NORMAL);
|
||||
config.name = "lunaHLR";
|
||||
config.manufacturer = EnumGunManufacturer.LUNA;
|
||||
String[] lore = I18nUtil.resolveKeyArray("item.gun_hlr.desc." + randLore);
|
||||
for (String s : lore)
|
||||
config.comment.add(EnumChatFormatting.ITALIC + s);
|
||||
|
||||
return config;
|
||||
}
|
||||
/** Alt fire gun mode **/
|
||||
public static GunConfiguration getHLRSecondaryConfig()
|
||||
{
|
||||
final GunConfiguration config = getHLRPrimaryConfig().clone();
|
||||
config.dischargePerShot = 250000000;
|
||||
config.rateOfFire = 3;
|
||||
//config.firingSound = "hbm:weapon.zomgShoot";
|
||||
config.config.clear();
|
||||
config.config.add(BulletConfigSyncingUtil.HLR_ALT);
|
||||
return config;
|
||||
}
|
||||
|
||||
public static GunConfiguration getLunaticConfig()
|
||||
{
|
||||
final GunConfiguration config = new GunConfiguration();
|
||||
config.rateOfFire = 5;
|
||||
config.roundsPerCycle = 1;
|
||||
config.maxCharge = 100000000L;
|
||||
config.dischargePerShot = 1000000;
|
||||
config.chargeRate = 1000000;
|
||||
config.gunMode = GunConfiguration.MODE_NORMAL;
|
||||
config.firingMode = 0;
|
||||
config.durability = 100000;
|
||||
config.allowsInfinity = false;
|
||||
config.hasSights = false;
|
||||
|
||||
config.crosshair = Crosshair.CLASSIC;
|
||||
config.firingSound = "hbm:weapon.osiprShoot";
|
||||
config.reloadSound = "hbm:item.battery";
|
||||
config.name = "lunaGun";
|
||||
config.manufacturer = EnumGunManufacturer.LUNA;
|
||||
config.config = new ArrayList<Integer>();
|
||||
config.config.add(BulletConfigSyncingUtil.HLR_NORMAL);
|
||||
return config;
|
||||
}
|
||||
|
||||
public static GunConfiguration getLunaticShottyConfig()
|
||||
{
|
||||
final GunConfiguration config = getLunaticConfig().clone();
|
||||
|
||||
config.dischargePerShot *= 5;
|
||||
config.maxCharge *= 1.5;
|
||||
config.durability *= 1.5;
|
||||
config.crosshair = Crosshair.L_CIRCLE;
|
||||
config.name = "lunaShotty";
|
||||
config.config.clear();
|
||||
config.config.add(BulletConfigSyncingUtil.HLR_ALT);
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
public static GunConfiguration getTesterConfig()
|
||||
{
|
||||
GunConfiguration config = new GunConfiguration();
|
||||
config.rateOfFire = 1;
|
||||
config.roundsPerCycle = 1;
|
||||
config.maxCharge = 10000000000L;
|
||||
config.dischargePerShot = 100000;
|
||||
config.chargeRate = 100000000;
|
||||
config.gunMode = GunConfiguration.MODE_NORMAL;
|
||||
config.firingMode = GunConfiguration.FIRE_AUTO;
|
||||
config.durability = Integer.MAX_VALUE;//h
|
||||
config.reloadType = GunConfiguration.RELOAD_FULL;
|
||||
config.allowsInfinity = false;
|
||||
config.damage = "Yes";
|
||||
config.crosshair = Crosshair.L_CROSS;
|
||||
config.firingSound = "hbm:weapon.osiprShoot";
|
||||
config.config = new ArrayList<Integer>();
|
||||
config.config.add(BulletConfigSyncingUtil.HLR_NORMAL);
|
||||
config.name = "the pooper shooter";//I am very mature (and creative)
|
||||
config.manufacturer = EnumGunManufacturer.F_PRICE;
|
||||
config.comment.add("Let the pain end");
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
public static BulletConfiguration getOrbusConfig() {
|
||||
|
||||
BulletConfiguration bullet = new BulletConfiguration();
|
||||
@ -645,4 +817,120 @@ public class GunEnergyFactory {
|
||||
bullet.gravity = 0.0025D;
|
||||
return bullet;
|
||||
}
|
||||
|
||||
// It's a ray, all of this is just placeholder really
|
||||
public static BulletConfiguration getSingConfig()
|
||||
{
|
||||
BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig().clone();
|
||||
|
||||
bullet.ammo = new ComparableStack(ModItems.singularity_micro);
|
||||
bullet.velocity = 10.0F;
|
||||
bullet.spread = 0.0F;
|
||||
bullet.wear = 1000;
|
||||
|
||||
bullet.dmgMax = 200000;
|
||||
bullet.dmgMin = 100000;
|
||||
bullet.penetration = Integer.MAX_VALUE;
|
||||
bullet.dmgBypass = true;
|
||||
|
||||
bullet.gravity = 0D;
|
||||
bullet.maxAge = 400;
|
||||
|
||||
bullet.caustic = 100;
|
||||
bullet.doesRicochet = false;
|
||||
bullet.doesPenetrate = true;
|
||||
//bullet.isSpectral = true;
|
||||
bullet.doesBreakGlass = true;
|
||||
bullet.destroysBlocks = true;
|
||||
|
||||
bullet.effects = new ArrayList<PotionEffect>();
|
||||
// TODO
|
||||
// bullet.effects.add(new PotionEffect(HbmPotion.fragile.id, 60 * 20, 4));
|
||||
// bullet.effects.add(new PotionEffect(HbmPotion.perforated.id, 60 * 20, 4));
|
||||
|
||||
//bullet.instakill = true;
|
||||
//bullet.style = BulletConfiguration.STYLE_ORB;
|
||||
bullet.trail = 1;
|
||||
|
||||
return bullet;
|
||||
}
|
||||
/** Main fire bullet **/
|
||||
public static BulletConfiguration getHLRPrecisionConfig()
|
||||
{
|
||||
BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig().clone();
|
||||
|
||||
bullet.ammo = new ComparableStack(ModItems.nothing);
|
||||
bullet.velocity = 10.0F;
|
||||
bullet.spread = 0.01F;
|
||||
bullet.maxAge = 350;
|
||||
bullet.wear = 10;
|
||||
|
||||
bullet.dmgMax = 60F;
|
||||
bullet.dmgMin = 50F;
|
||||
bullet.penetration = 50;
|
||||
|
||||
bullet.gravity = 0D;
|
||||
bullet.doesRicochet = false;
|
||||
bullet.doesBreakGlass = true;
|
||||
bullet.doesPenetrate = true;
|
||||
|
||||
bullet.effects = new ArrayList<PotionEffect>();
|
||||
// TODO
|
||||
// bullet.effects.add(HbmPotion.getPotionNoCure(HbmPotion.hollow.id, 2 * 20, 0));
|
||||
// bullet.effects.add(HbmPotion.getPotionNoCure(HbmPotion.fragile.id, 5 * 20, 1));
|
||||
|
||||
bullet.bHit = (projectile, hit) -> {if (hit instanceof EntityLivingBase) ContaminationUtil.applyDigammaData(hit, 0.005F);};
|
||||
|
||||
// TODO
|
||||
// bullet.spectralBlocks.addAll(HbmCollection.energyRoundBlock);
|
||||
// bullet.spectralMaterials.addAll(HbmCollection.energyRoundMaterial);
|
||||
|
||||
bullet.style = BulletConfiguration.STYLE_BOLT;
|
||||
bullet.trail = BulletConfiguration.BOLT_LASER;
|
||||
|
||||
bullet.damageType = ModDamageSource.s_laser;
|
||||
|
||||
return bullet;
|
||||
}
|
||||
/** Alt fire bullet **/
|
||||
public static BulletConfiguration getHLRScatterConfig()
|
||||
{
|
||||
BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig().clone();
|
||||
|
||||
bullet.ammo = new ComparableStack(ModItems.nothing);
|
||||
bullet.velocity = 10.0F;
|
||||
bullet.spread = 0.125F;
|
||||
bullet.maxAge = 350;
|
||||
bullet.wear = 25;
|
||||
|
||||
bullet.dmgMax = 80F;
|
||||
bullet.dmgMin = 70F;
|
||||
bullet.bulletsMax = 18;
|
||||
bullet.bulletsMin = 12;
|
||||
bullet.penetration = 75;
|
||||
|
||||
bullet.gravity = 0D;
|
||||
bullet.doesRicochet = false;
|
||||
bullet.doesBreakGlass = true;
|
||||
bullet.doesPenetrate = true;
|
||||
|
||||
bullet.effects = new ArrayList<PotionEffect>();
|
||||
// TODO
|
||||
// bullet.effects.add(HbmPotion.getPotionNoCure(HbmPotion.hollow.id, 5 * 20, 1));
|
||||
// bullet.effects.add(HbmPotion.getPotionNoCure(HbmPotion.fragile.id, 7 * 20, 2));
|
||||
// bullet.effects.add(HbmPotion.getPotionNoCure(HbmPotion.perforated.id, 3 * 20, 0));
|
||||
|
||||
bullet.bHurt = (projectile, hit) -> {if (hit instanceof EntityLivingBase) ContaminationUtil.applyDigammaData(hit, 0.01F);};
|
||||
|
||||
// TODO
|
||||
// bullet.spectralBlocks.addAll(HbmCollection.energyRoundBlock);
|
||||
// bullet.spectralMaterials.addAll(HbmCollection.energyRoundMaterial);
|
||||
|
||||
bullet.style = BulletConfiguration.STYLE_BOLT;
|
||||
bullet.trail = BulletConfiguration.BOLT_LASER;
|
||||
|
||||
bullet.damageType = ModDamageSource.s_laser;
|
||||
|
||||
return bullet;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
//i love you
|
||||
import static com.hbm.items.ModItems.*;
|
||||
@ -35,7 +36,7 @@ import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent;
|
||||
public class OreDictManager {
|
||||
|
||||
/** Alternate, additional names for ore dict registration. Used mostly for DictGroups */
|
||||
private static final HashMap<String, HashSet<String>> reRegistration = new HashMap();
|
||||
private static final HashMap<String, Set<String>> reRegistration = new HashMap<String, Set<String>>();
|
||||
|
||||
/*
|
||||
* Standard keys
|
||||
@ -171,6 +172,7 @@ public class OreDictManager {
|
||||
public static final DictFrame STAR = new DictFrame("Starmetal");
|
||||
public static final DictFrame BIGMT = new DictFrame("Saturnite");
|
||||
public static final DictFrame FERRO = new DictFrame("Ferrouranium");
|
||||
public static final DictFrame STABALLOY = new DictFrame("Staballoy");
|
||||
public static final DictFrame EUPH = new DictFrame("Euphemium");
|
||||
public static final DictFrame DNT = new DictFrame("Dineutronium");
|
||||
public static final DictFrame FIBER = new DictFrame("Fiberglass");
|
||||
@ -340,6 +342,7 @@ public class OreDictManager {
|
||||
STAR .ingot(ingot_starmetal) .block(block_starmetal) .ore(ore_meteor_starmetal);
|
||||
BIGMT .ingot(ingot_saturnite) .plate(plate_saturnite);
|
||||
FERRO .ingot(ingot_ferrouranium);
|
||||
STABALLOY .ingot(ingot_staballoy) /*.block(block_staballoy)*/;
|
||||
EUPH .nugget(nugget_euphemium) .ingot(ingot_euphemium) .dust(powder_euphemium) .block(block_euphemium);
|
||||
DNT .nugget(nugget_dineutronium) .ingot(ingot_dineutronium) .dust(powder_dineutronium) .block(block_dineutronium);
|
||||
FIBER .ingot(ingot_fiberglass) .block(block_fiberglass);
|
||||
@ -502,7 +505,7 @@ public class OreDictManager {
|
||||
|
||||
recursionBrake = true;
|
||||
|
||||
HashSet<String> strings = reRegistration.get(event.Name);
|
||||
Set<String> strings = reRegistration.get(event.Name);
|
||||
|
||||
if(strings != null) {
|
||||
for(String name : strings) {
|
||||
@ -771,10 +774,10 @@ public class OreDictManager {
|
||||
|
||||
private static void addReRegistration(String original, String additional) {
|
||||
|
||||
HashSet<String> strings = reRegistration.get(original);
|
||||
Set<String> strings = reRegistration.get(original);
|
||||
|
||||
if(strings == null)
|
||||
strings = new HashSet();
|
||||
strings = new HashSet<>();
|
||||
|
||||
strings.add(additional);
|
||||
|
||||
|
||||
@ -32,6 +32,7 @@ import com.hbm.items.ItemAmmoEnums.Ammo75Bolt;
|
||||
import com.hbm.items.machine.ItemAssemblyTemplate;
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import api.hbm.energy.IBatteryItem;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
@ -1024,7 +1025,21 @@ public class AssemblerRecipes {
|
||||
new ComparableStack(ModItems.mechanism_special),
|
||||
new ComparableStack(ModItems.circuit_red_copper),
|
||||
new ComparableStack(ModItems.battery_sc_technetium)
|
||||
}, 150);
|
||||
}, 250);
|
||||
|
||||
makeRecipe(new ComparableStack(IBatteryItem.emptyBattery(ModItems.gun_hlr)), new AStack[]
|
||||
{
|
||||
new ComparableStack(ModItems.ring_starmetal, 4),
|
||||
new ComparableStack(ModItems.plate_combine_steel, 18),
|
||||
// new ComparableStack(ModItems.euphemium_capacitor),
|
||||
new OreDictStack(DESH.ingot(), 16),
|
||||
new ComparableStack(ModItems.mechanism_special, 6),
|
||||
new ComparableStack(ModItems.ingot_combine_steel, 14),
|
||||
// new ComparableStack(ModItems.battery_fast_2_elite),
|
||||
new ComparableStack(ModItems.powder_nitan_mix, 24),
|
||||
new ComparableStack(ModItems.circuit_schrabidium, 2),
|
||||
new ComparableStack(ModItems.circuit_tantalium, 32)
|
||||
}, 500);// Placeholder
|
||||
|
||||
if(Loader.isModLoaded("Mekanism")) {
|
||||
|
||||
|
||||
@ -51,6 +51,7 @@ public class BlastFurnaceRecipes {
|
||||
//addRecipe(STEEL, CO, new ItemStack(ModItems.ingot_dura_steel, 2));
|
||||
//addRecipe(STEEL, W, new ItemStack(ModItems.ingot_dura_steel, 2));
|
||||
//addRecipe(STEEL, U238, new ItemStack(ModItems.ingot_ferrouranium));
|
||||
addRecipe(TI, U238, new ItemStack(ModItems.ingot_staballoy, 2));
|
||||
addRecipe(W, SA326.nugget(), new ItemStack(ModItems.ingot_magnetized_tungsten));
|
||||
addRecipe(STEEL, TC99.nugget(), new ItemStack(ModItems.ingot_tcalloy));
|
||||
addRecipe(AU.plate(), ModItems.plate_mixed, new ItemStack(ModItems.plate_paa, 2));
|
||||
@ -121,7 +122,7 @@ public class BlastFurnaceRecipes {
|
||||
final HashMap<List<ItemStack>[], ItemStack> recipes = new HashMap<>();
|
||||
|
||||
for(Triplet<Object, Object, ItemStack> recipe : blastFurnaceRecipes) {
|
||||
if(!hiddenRecipes.contains(recipe.getZ())) {
|
||||
if(isStackHidden(recipe.getZ())) {
|
||||
final ItemStack nothing = new ItemStack(ModItems.nothing).setStackDisplayName("If you're reading this, an error has occured! Check the console.");
|
||||
final List<ItemStack> in1 = new ArrayList<ItemStack>();
|
||||
final List<ItemStack> in2 = new ArrayList<ItemStack>();
|
||||
@ -161,6 +162,14 @@ public class BlastFurnaceRecipes {
|
||||
}
|
||||
return ImmutableMap.copyOf(recipes);
|
||||
}
|
||||
|
||||
private static boolean isStackHidden(ItemStack stack)
|
||||
{
|
||||
for (ItemStack hiddenStack : hiddenRecipes)
|
||||
if (hiddenStack.getItem() == stack.getItem() && hiddenStack.getItemDamage() == stack.getItemDamage())
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static List<Triplet<AStack[], AStack[], ItemStack>> getRecipes() {
|
||||
|
||||
|
||||
@ -123,6 +123,8 @@ public class AnvilRecipes {
|
||||
smithingRecipes.add(new AnvilSmithingMold(17, new ComparableStack(ModItems.casing_50), new ItemStack[] {new ItemStack(ModItems.casing_50)}));
|
||||
smithingRecipes.add(new AnvilSmithingMold(18, new ComparableStack(ModItems.casing_buckshot), new ItemStack[] {new ItemStack(ModItems.casing_buckshot)}));
|
||||
|
||||
smithingRecipes.add(new AnvilSmithingRecipe(3, new ItemStack(ModItems.bolt_staballoy, 4), new ComparableStack(ModItems.ingot_staballoy), new ComparableStack(ModItems.ingot_staballoy)));
|
||||
|
||||
smithingRecipes.add(new AnvilSmithingCyanideRecipe());
|
||||
smithingRecipes.add(new AnvilSmithingRenameRecipe());
|
||||
}
|
||||
@ -422,6 +424,73 @@ public class AnvilRecipes {
|
||||
new AnvilOutput(new ItemStack(ModItems.plate_armor_dnt))).setTier(7));
|
||||
|
||||
pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3);
|
||||
|
||||
// constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]
|
||||
// {
|
||||
// new ComparableStack(ModItems.mechanism_rifle_2),
|
||||
// new ComparableStack(ModItems.hull_small_steel, 2),
|
||||
// new OreDictStack(STEEL.ingot(), 3),
|
||||
// new OreDictStack(KEY_PLANKS, 2)
|
||||
// }, new AnvilOutput(new ItemStack(ModItems.gun_thompson_redux))).setTier(2));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]
|
||||
{
|
||||
new ComparableStack(ModItems.gun_benelli),
|
||||
new ComparableStack(ModItems.hull_big_aluminium),
|
||||
new OreDictStack(AL.plate(), 2),
|
||||
new OreDictStack(ANY_PLASTIC.ingot()),
|
||||
new ComparableStack(ModItems.mechanism_revolver_2)
|
||||
}, new AnvilOutput(new ItemStack(ModItems.gun_benelli_mod))).setTier(3));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]
|
||||
{
|
||||
new ComparableStack(ModItems.mechanism_rifle_2),
|
||||
new ComparableStack(ModItems.hull_small_steel),
|
||||
new OreDictStack(STEEL.ingot()),
|
||||
new OreDictStack(AL.ingot()),
|
||||
new OreDictStack(ANY_PLASTIC.ingot())
|
||||
}, new AnvilOutput(new ItemStack(ModItems.gun_uac_pistol))).setTier(3));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]
|
||||
{
|
||||
new ComparableStack(ModItems.mechanism_rifle_2, 2),
|
||||
new ComparableStack(ModItems.hull_small_steel, 3),
|
||||
new OreDictStack(STEEL.plate(), 4),
|
||||
new OreDictStack(STEEL.ingot()),
|
||||
new OreDictStack(DURA.ingot(), 2)
|
||||
}, new AnvilOutput(new ItemStack(ModItems.gun_m2))).setTier(3));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]
|
||||
{
|
||||
new ComparableStack(ModItems.mechanism_rifle_2),
|
||||
new ComparableStack(ModItems.mechanism_special),
|
||||
new OreDictStack(BIGMT.plate(), 20),
|
||||
new OreDictStack(BIGMT.ingot(), 16),
|
||||
new ComparableStack(ModItems.plate_combine_steel, 12),
|
||||
new ComparableStack(ModItems.ingot_combine_steel, 4),
|
||||
new ComparableStack(ModItems.plate_desh, 8)
|
||||
}, new AnvilOutput(new ItemStack(ModItems.gun_lunatic_marksman))).setTier(4));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]
|
||||
{
|
||||
new ComparableStack(ModItems.mechanism_rifle_2),
|
||||
new ComparableStack(ModItems.hull_small_steel, 2),
|
||||
new OreDictStack(ALLOY.plate(), 6),
|
||||
new ComparableStack(ModItems.plate_paa, 4),
|
||||
new OreDictStack(ANY_PLASTIC.ingot(), 2)
|
||||
}, new AnvilOutput(new ItemStack(ModItems.gun_llr))).setTier(4));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]
|
||||
{
|
||||
new ComparableStack(ModItems.mechanism_rifle_2),
|
||||
new ComparableStack(ModItems.hull_small_steel, 3),
|
||||
new OreDictStack(ALLOY.plate(), 12),
|
||||
new ComparableStack(ModItems.plate_paa, 8),
|
||||
new OreDictStack(ANY_PLASTIC.ingot(), 4)
|
||||
}, new AnvilOutput(new ItemStack(ModItems.gun_mlr))).setTier(4));
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]
|
||||
{
|
||||
new OreDictStack(AU.plate(), 6),
|
||||
new OreDictStack(LAPIS.gem(), 4),
|
||||
new OreDictStack(EMERALD.gem(), 4),
|
||||
new OreDictStack(DIAMOND.gem(), 4),
|
||||
new ComparableStack(ModItems.gem_alexandrite)
|
||||
}, new AnvilOutput(new ItemStack(ModItems.pagoda))).setTier(5));
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {new OreDictStack(AS.ingot()), new OreDictStack(REDSTONE.dust(), 4), new OreDictStack(ASBESTOS.ingot(), 2)},
|
||||
@ -449,11 +518,10 @@ public class AnvilRecipes {
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(FE.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_50))).setTier(1));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(FE.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_buckshot))).setTier(1));
|
||||
|
||||
// TODO Staballoy/DU rounds
|
||||
final Object[][] recs = new Object[][] {
|
||||
{ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.INCENDIARY), 2},
|
||||
{ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.SHRAPNEL), 2},
|
||||
// {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), STABALLOY.ingot(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.DU), 3},
|
||||
{ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), STABALLOY.ingot(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.DU), 3},
|
||||
{ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.SLEEK), 4},
|
||||
|
||||
{ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), P_RED.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.INCENDIARY), 2},
|
||||
@ -473,18 +541,21 @@ public class AnvilRecipes {
|
||||
{ModItems.ammo_4gauge.stackFromEnum(100, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(100, Ammo4Gauge.SLEEK), 4},
|
||||
|
||||
{ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), DURA.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.AP), 2},
|
||||
// {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), STABALLOY.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.DU), 2},
|
||||
{ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), STABALLOY.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.DU), 2},
|
||||
{ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), P_WHITE.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.PHOSPHORUS), 2},
|
||||
{ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.DU), STAR.ingot(), ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STAR), 3},
|
||||
{ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.STOCK), DURA.ingot(), ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.AP), 3},
|
||||
{ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.DU), STABALLOY.ingot(), ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.DU), 3},
|
||||
|
||||
{ModItems.ammo_5mm.stackFromEnum(20, Ammo5mm.STOCK), ModItems.ingot_semtex, ModItems.ammo_5mm.stackFromEnum(20, Ammo5mm.EXPLOSIVE), 2},
|
||||
// {ModItems.ammo_5mm.stackFromEnum(20, Ammo5mm.STOCK), STABALLOY.ingot(), ModItems.ammo_5mm.stackFromEnum(20, Ammo5mm.DU), 2},
|
||||
{ModItems.ammo_5mm.stackFromEnum(20, Ammo5mm.STOCK), STABALLOY.ingot(), ModItems.ammo_5mm.stackFromEnum(20, Ammo5mm.DU), 2},
|
||||
{ModItems.ammo_5mm.stackFromEnum(10, Ammo5mm.STOCK), STAR.ingot(), ModItems.ammo_5mm.stackFromEnum(10, Ammo5mm.STAR), 3},
|
||||
{ModItems.ammo_5mm.stackFromEnum(10, Ammo5mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_5mm.stackFromEnum(10, Ammo5mm.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), DURA.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.AP), 2},
|
||||
// {ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), STABALLOY.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.DU), 2},
|
||||
{ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), STABALLOY.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.DU), 2},
|
||||
{ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.STOCK), DURA.ingot(), ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.AP), 2},
|
||||
@ -494,7 +565,7 @@ public class AnvilRecipes {
|
||||
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), P_WHITE.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.PHOSPHORUS), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.ingot_semtex, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.EXPLOSIVE), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), DURA.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.AP), 2},
|
||||
// {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), STABALLOY.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.DU), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), STABALLOY.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.DU), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.DU), STAR.ingot(), ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STAR), 3},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.CHLOROPHYTE), 3},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.STOCK), ModItems.coin_maskman, ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.SLEEK), 4},
|
||||
@ -503,13 +574,13 @@ public class AnvilRecipes {
|
||||
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), ModItems.powder_polonium, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE_PO), 3},
|
||||
|
||||
{ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), DURA.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.AP), 2},
|
||||
// {ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), STABALLOY.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.DU), 2},
|
||||
{ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), STABALLOY.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.DU), 2},
|
||||
{ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.DU), STAR.ingot(), ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STAR), 3},
|
||||
{ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.PHOSPHORUS), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), DURA.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.AP), 2},
|
||||
// {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), STABALLOY.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.DU), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), STABALLOY.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.DU), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(10, Ammo556mm.DU), STAR.ingot(), ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STAR), 3},
|
||||
{ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.CHLOROPHYTE), 3},
|
||||
{ModItems.ammo_556.stackFromEnum(100, Ammo556mm.STOCK), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.SLEEK), 4},
|
||||
@ -517,9 +588,17 @@ public class AnvilRecipes {
|
||||
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), ModItems.pellet_flechette, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_RED.dust(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_INCENDIARY), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_PHOSPHORUS), 2},
|
||||
// {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), STABALLOY.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_DU), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), STABALLOY.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_DU), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE_SLEEK), 4},
|
||||
{ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE_CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_308.stackFromEnum(20, Ammo762NATO.STOCK), Items.redstone, ModItems.ammo_308.stackFromEnum(20, Ammo762NATO.TRACER), 2},
|
||||
{ModItems.ammo_308.stackFromEnum(20, Ammo762NATO.STOCK), DURA.ingot(), ModItems.ammo_308.stackFromEnum(20, Ammo762NATO.AP), 2},
|
||||
{ModItems.ammo_308.stackFromEnum(20, Ammo762NATO.STOCK), P_WHITE.ingot(), ModItems.ammo_308.stackFromEnum(20, Ammo762NATO.PHOSPHORUS), 2},
|
||||
{ModItems.ammo_308.stackFromEnum(10, Ammo762NATO.STOCK), STABALLOY.ingot(), ModItems.ammo_308.stackFromEnum(20, Ammo762NATO.DU), 2},
|
||||
|
||||
{ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.SABOT), P_WHITE.ingot(), ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.INCENDIARY), 3},
|
||||
{ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.SABOT), ANY_PLASTICEXPLOSIVE.ingot(), ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.EXPLOSIVE), 3},
|
||||
};
|
||||
|
||||
for(Object[] objs : recs) {
|
||||
|
||||
@ -1,11 +1,31 @@
|
||||
package com.hbm.items;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.hbm.handler.BulletConfiguration;
|
||||
import com.hbm.handler.guncfg.*;
|
||||
import com.hbm.handler.guncfg.Gun12GaugeFactory;
|
||||
import com.hbm.handler.guncfg.Gun20GaugeFactory;
|
||||
import com.hbm.handler.guncfg.Gun22LRFactory;
|
||||
import com.hbm.handler.guncfg.Gun357MagnumFactory;
|
||||
import com.hbm.handler.guncfg.Gun44MagnumFactory;
|
||||
import com.hbm.handler.guncfg.Gun45ACPFactory;
|
||||
import com.hbm.handler.guncfg.Gun4GaugeFactory;
|
||||
import com.hbm.handler.guncfg.Gun50AEFactory;
|
||||
import com.hbm.handler.guncfg.Gun50BMGFactory;
|
||||
import com.hbm.handler.guncfg.Gun556mmFactory;
|
||||
import com.hbm.handler.guncfg.Gun5mmFactory;
|
||||
import com.hbm.handler.guncfg.Gun75BoltFactory;
|
||||
import com.hbm.handler.guncfg.Gun762mmFactory;
|
||||
import com.hbm.handler.guncfg.Gun9mmFactory;
|
||||
import com.hbm.handler.guncfg.GunCannonFactory;
|
||||
import com.hbm.handler.guncfg.GunDGKFactory;
|
||||
import com.hbm.handler.guncfg.GunDartFactory;
|
||||
import com.hbm.handler.guncfg.GunEnergyFactory;
|
||||
import com.hbm.handler.guncfg.GunFatmanFactory;
|
||||
import com.hbm.handler.guncfg.GunGrenadeFactory;
|
||||
import com.hbm.handler.guncfg.GunRocketFactory;
|
||||
import com.hbm.handler.guncfg.GunRocketHomingFactory;
|
||||
import com.hbm.items.ItemEnums.IItemEnum;
|
||||
import com.hbm.items.weapon.ItemAmmo.AmmoItemTrait;
|
||||
import com.hbm.lib.HbmCollection;
|
||||
@ -422,6 +442,7 @@ public class ItemAmmoEnums
|
||||
AP(Gun762mmFactory.get762APConfig(), HbmCollection.APType),
|
||||
DU(Gun762mmFactory.get762DUConfig(), HbmCollection.DUType),
|
||||
TRACER(Gun762mmFactory.get762TracerConfig(), AmmoItemTrait.NEU_TRACER),
|
||||
PHOSPHORUS(Gun762mmFactory.get762WPConfig(), HbmCollection.PhosphorusType),
|
||||
BLANK(Gun762mmFactory.get762BlankConfig(), AmmoItemTrait.NEU_BLANK);
|
||||
private final Set<AmmoItemTrait> traits;
|
||||
private final BulletConfiguration config;
|
||||
@ -866,8 +887,4 @@ public class ItemAmmoEnums
|
||||
return traits == null ? ImmutableSet.of() : ImmutableSet.copyOf(traits);
|
||||
}
|
||||
|
||||
static Set<AmmoItemTrait> safeAssign(Collection<AmmoItemTrait> traits)
|
||||
{
|
||||
return traits == null || traits.size() == 0 ? ImmutableSet.of() : ImmutableSet.copyOf(traits);
|
||||
}
|
||||
}
|
||||
|
||||
@ -181,6 +181,7 @@ public class ModItems {
|
||||
public static Item ingot_saturnite;
|
||||
public static Item plate_saturnite;
|
||||
public static Item ingot_ferrouranium;
|
||||
public static Item ingot_staballoy;
|
||||
public static Item ingot_electronium;
|
||||
public static Item nugget_zirconium;
|
||||
public static Item nugget_mercury;
|
||||
@ -308,6 +309,7 @@ public class ModItems {
|
||||
public static Item plate_dalekanium;
|
||||
public static Item plate_euphemium;
|
||||
public static Item bolt_tungsten;
|
||||
public static Item bolt_staballoy;
|
||||
public static Item bolt_compound;
|
||||
public static Item plate_polymer;
|
||||
public static Item plate_kevlar;
|
||||
@ -868,6 +870,7 @@ public class ModItems {
|
||||
public static Item particle_lutece;
|
||||
|
||||
public static Item pellet_antimatter;
|
||||
public static Item singularity_micro;
|
||||
public static Item singularity;
|
||||
public static Item singularity_counter_resonant;
|
||||
public static Item singularity_super_heated;
|
||||
@ -1620,6 +1623,14 @@ public class ModItems {
|
||||
public static Item gun_detonator;
|
||||
public static Item gun_glass_cannon;
|
||||
|
||||
/// UFFR's junk
|
||||
/**Lunarian weapons**/
|
||||
public static Item gun_llr, gun_mlr, gun_hlr, gun_twr, gun_lunatic, gun_lunatic_shotty, gun_lunatic_marksman;
|
||||
/**Future Earth/UAC weapons**/
|
||||
public static Item gun_uac_pistol, gun_uac_dmr, gun_uac_carbine, gun_uac_lmg;
|
||||
/**Misc. weapons**/
|
||||
public static Item gun_m2, gun_benelli, gun_benelli_mod, gun_g36, spear_bishamonten, pagoda;
|
||||
|
||||
public static Item crucible;
|
||||
|
||||
public static Item stick_dynamite;
|
||||
@ -2584,6 +2595,7 @@ public class ModItems {
|
||||
plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium");
|
||||
plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium");
|
||||
bolt_tungsten = new Item().setUnlocalizedName("bolt_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_tungsten");
|
||||
bolt_staballoy = new Item().setUnlocalizedName("bolt_staballoy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_staballoy");
|
||||
bolt_compound = new Item().setUnlocalizedName("bolt_compound").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_compound");
|
||||
plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer");
|
||||
plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar");
|
||||
@ -2666,6 +2678,7 @@ public class ModItems {
|
||||
ingot_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_saturnite");
|
||||
plate_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("plate_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_saturnite");
|
||||
ingot_ferrouranium = new ItemCustomLore().setUnlocalizedName("ingot_ferrouranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_ferrouranium");
|
||||
ingot_staballoy = new Item().setUnlocalizedName("ingot_staballoy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_staballoy");
|
||||
ingot_fiberglass = new ItemCustomLore().setUnlocalizedName("ingot_fiberglass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_fiberglass");
|
||||
ingot_asbestos = new ItemCustomLore().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos");
|
||||
powder_asbestos = new ItemCustomLore().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos");
|
||||
@ -3182,6 +3195,7 @@ public class ModItems {
|
||||
particle_digamma = new ItemDigamma(60).setUnlocalizedName("particle_digamma").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_digamma");
|
||||
particle_lutece = new Item().setUnlocalizedName("particle_lutece").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_lutece");
|
||||
|
||||
singularity_micro = new ItemDrop().setUnlocalizedName("singularity_micro").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_micro");
|
||||
singularity = new ItemDrop().setUnlocalizedName("singularity").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity");
|
||||
singularity_counter_resonant = new ItemDrop().setUnlocalizedName("singularity_counter_resonant").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_alt");
|
||||
singularity_super_heated = new ItemDrop().setUnlocalizedName("singularity_super_heated").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_5");
|
||||
@ -4249,6 +4263,18 @@ public class ModItems {
|
||||
gun_detonator = new ItemGunDetonator(GunDetonatorFactory.getDetonatorConfig()).setFull3D().setUnlocalizedName("gun_detonator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter");
|
||||
gun_glass_cannon = new ItemEnergyGunBase(GunPoweredFactory.getGlassCannonConfig()).setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter");
|
||||
|
||||
gun_uac_pistol = new ItemGunBase(Gun45ACPFactory.getUACPistolConfig()).setFull3D().setUnlocalizedName("gun_uac_pistol").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_m2 = new ItemGunBase(Gun50BMGFactory.getM2Config()).setFull3D().setUnlocalizedName("gun_m2").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_g36 = new ItemGunBase(Gun556mmFactory.getG36Config()).setFull3D().setUnlocalizedName("gun_g36").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_benelli = new ItemGunBase(Gun12GaugeFactory.getBenelliConfig()).setFull3D().setUnlocalizedName("gun_benelli").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_benelli_mod = new ItemGunBase(Gun12GaugeFactory.getBenelliModConfig()).setFull3D().setUnlocalizedName("gun_benelli_mod").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_twr = new ItemGunTWR(GunEnergyFactory.getTWRConfig()).setUnlocalizedName("gun_twr").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_hlr = new ItemEnergyGunBase(GunEnergyFactory.getHLRPrimaryConfig(), GunEnergyFactory.getHLRSecondaryConfig()).setFull3D().setUnlocalizedName("gun_hlr").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_mlr = new ItemGunBase(Gun556mmFactory.getMLRConfig()).setFull3D().setUnlocalizedName("gun_mlr").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_llr = new ItemGunBase(Gun9mmFactory.getLLRConfig()).setFull3D().setUnlocalizedName("gun_llr").setCreativeTab(MainRegistry.weaponTab);
|
||||
gun_lunatic_marksman = new ItemGunBase(Gun50BMGFactory.getLunaticMarksman()).setFull3D().setUnlocalizedName("gun_lunatic_marksman").setCreativeTab(MainRegistry.weaponTab);
|
||||
pagoda = new ItemPagoda();
|
||||
|
||||
ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0);
|
||||
crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible");
|
||||
|
||||
@ -5598,6 +5624,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(ingot_actinium, ingot_actinium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_desh, ingot_desh.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_ferrouranium, ingot_ferrouranium.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_staballoy, ingot_staballoy.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_starmetal, ingot_starmetal.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_saturnite, ingot_saturnite.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ingot_euphemium, ingot_euphemium.getUnlocalizedName());
|
||||
@ -5954,6 +5981,7 @@ public class ModItems {
|
||||
//Bolts
|
||||
GameRegistry.registerItem(bolt_dura_steel, bolt_dura_steel.getUnlocalizedName());
|
||||
GameRegistry.registerItem(bolt_tungsten, bolt_tungsten.getUnlocalizedName());
|
||||
GameRegistry.registerItem(bolt_staballoy, bolt_staballoy.getUnlocalizedName());
|
||||
GameRegistry.registerItem(bolt_compound, bolt_compound.getUnlocalizedName());
|
||||
|
||||
//Cloth
|
||||
@ -6259,6 +6287,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(particle_lutece, particle_lutece.getUnlocalizedName());
|
||||
|
||||
//OMG how the hell is that even possible!?
|
||||
GameRegistry.registerItem(singularity_micro, singularity_micro.getUnlocalizedName());
|
||||
GameRegistry.registerItem(singularity, singularity.getUnlocalizedName());
|
||||
GameRegistry.registerItem(singularity_counter_resonant, singularity_counter_resonant.getUnlocalizedName());
|
||||
GameRegistry.registerItem(singularity_super_heated, singularity_super_heated.getUnlocalizedName());
|
||||
@ -7030,6 +7059,18 @@ public class ModItems {
|
||||
GameRegistry.registerItem(crucible, crucible.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_glass_cannon, gun_glass_cannon.getUnlocalizedName());
|
||||
|
||||
GameRegistry.registerItem(gun_g36, gun_g36.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_uac_pistol, gun_uac_pistol.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_benelli, gun_benelli.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_benelli_mod, gun_benelli_mod.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_m2, gun_m2.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_llr, gun_llr.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_mlr, gun_mlr.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_lunatic_marksman, gun_lunatic_marksman.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_hlr, gun_hlr.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_twr, gun_twr.getUnlocalizedName());
|
||||
GameRegistry.registerItem(pagoda, pagoda.getUnlocalizedName());
|
||||
|
||||
//Ammo
|
||||
//GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName());
|
||||
//GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName());
|
||||
@ -7078,6 +7119,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(ammo_dart, ammo_dart.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ammo_rocket, ammo_rocket.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ammo_stinger_rocket, ammo_stinger_rocket.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ammo_luna_sniper, ammo_luna_sniper.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ammo_grenade, ammo_grenade.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName());
|
||||
|
||||
66
src/main/java/com/hbm/items/weapon/ItemGunTWR.java
Normal file
@ -0,0 +1,66 @@
|
||||
package com.hbm.items.weapon;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
||||
import com.google.common.annotations.Beta;
|
||||
import com.hbm.calc.EasyLocation;
|
||||
import com.hbm.handler.GunConfiguration;
|
||||
import com.hbm.interfaces.ILocationProvider;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.EnumRarity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.EntityDamageSourceIndirect;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemGunTWR extends ItemGunBase
|
||||
{
|
||||
public ItemGunTWR(GunConfiguration config)
|
||||
{
|
||||
super(config);
|
||||
setFull3D();
|
||||
}
|
||||
|
||||
@Beta
|
||||
@Override
|
||||
protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config)
|
||||
{
|
||||
final EasyLocation playerLoc = new EasyLocation(Library.getPosition(1, player)).modifyCoord(0, player.getEyeHeight(), 0);
|
||||
final EasyLocation checkCoord = playerLoc.clone().setWorld(world);
|
||||
final HashSet<Entity> entities = new HashSet<>();
|
||||
BobMathUtil.offsetForHand(player, checkCoord);
|
||||
final Vec3 step = BobMathUtil.entityUnitVector(player);
|
||||
do
|
||||
{
|
||||
checkCoord.addCoord(step);
|
||||
entities.addAll(world.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(checkCoord.posX - 1, checkCoord.posY - 1, checkCoord.posZ - 1, checkCoord.posX + 1, checkCoord.posY + 1, checkCoord.posZ + 1)));
|
||||
} while (!checkCoord.getBlock().isBlockNormalCube() && ILocationProvider.distance(checkCoord, playerLoc) < 500);
|
||||
for (Entity entity : entities)
|
||||
{
|
||||
if (entity instanceof EntityLivingBase)
|
||||
{
|
||||
final EntityLivingBase livingEntity = (EntityLivingBase) entity;
|
||||
final DamageSource dmgSrc = new EntityDamageSourceIndirect("twr" + world.rand.nextInt(2) + 2, player, livingEntity).setDamageIsAbsolute().setDamageBypassesArmor().setDamageAllowedInCreativeMode();
|
||||
if (!livingEntity.attackEntityFrom(dmgSrc, 750))
|
||||
livingEntity.setHealth(livingEntity.getHealth() - 750);
|
||||
livingEntity.setLastAttacker(player);
|
||||
livingEntity.onDeath(dmgSrc);
|
||||
}
|
||||
else
|
||||
entity.setDead();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumRarity getRarity(ItemStack p_77613_1_)
|
||||
{
|
||||
return EnumRarity.epic;
|
||||
}
|
||||
}
|
||||
169
src/main/java/com/hbm/items/weapon/ItemPagoda.java
Normal file
@ -0,0 +1,169 @@
|
||||
package com.hbm.items.weapon;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.calc.EasyLocation;
|
||||
import com.hbm.extprop.HbmLivingProps;
|
||||
import com.hbm.interfaces.ILocationProvider;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
|
||||
import api.hbm.item.IClickReceiver;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemPagoda extends Item implements IClickReceiver
|
||||
{
|
||||
private static final String KEY_CHARGE = "PAGODA_CHARGE", KEY_CHARGING = "PAGODA_CHARGING";
|
||||
private static final short MAX_CHARGE = 1200;
|
||||
private static final byte MAX_RADIUS = 20;
|
||||
public ItemPagoda()
|
||||
{
|
||||
setMaxStackSize(1);
|
||||
setFull3D();
|
||||
setUnlocalizedName("pagoda");
|
||||
setCreativeTab(MainRegistry.weaponTab);
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized boolean handleMouseInput(ItemStack stack, EntityPlayer player, int button, boolean state)
|
||||
{
|
||||
if (!state || button < 0)
|
||||
return false;
|
||||
switch (button)
|
||||
{
|
||||
case 0://Left
|
||||
setCharge(stack, 0);
|
||||
final short strength = getCharge(stack);
|
||||
final float radius = strength;
|
||||
// final EasyLocation playerLoc = new EasyLocation(Library.getPosition(1, player)).modifyCoord(0, player.getEyeHeight(), 0);
|
||||
final ILocationProvider playerLoc = ILocationProvider.wrap(player, true);
|
||||
final EasyLocation checkCoord = new EasyLocation(playerLoc).setWorld(player.getEntityWorld());
|
||||
final HashSet<Entity> entities = new HashSet<>();
|
||||
BobMathUtil.offsetForHand(player, checkCoord);
|
||||
final Vec3 step = BobMathUtil.entityUnitVector(player);
|
||||
do
|
||||
{
|
||||
checkCoord.addCoord(step);
|
||||
entities.addAll(player.worldObj.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(checkCoord.posX - radius, checkCoord.posY - radius, checkCoord.posZ - radius, checkCoord.posX + radius, checkCoord.posY + radius, checkCoord.posZ + radius)));
|
||||
} while (!checkCoord.getBlock().isBlockNormalCube() && !checkCoord.getBlock().isOpaqueCube() && ILocationProvider.distance(checkCoord, playerLoc) < 50);
|
||||
for (Entity entity : entities)
|
||||
{
|
||||
if (entity instanceof EntityLivingBase)
|
||||
{
|
||||
final EntityLivingBase livingBase = (EntityLivingBase) entity;
|
||||
livingBase.setLastAttacker(player);
|
||||
livingBase.onDeath(ModDamageSource.radiation);
|
||||
livingBase.setHealth(livingBase.getHealth() - 50);
|
||||
HbmLivingProps.incrementRadiation(livingBase, strength);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2: stack.stackTagCompound.setBoolean(KEY_CHARGING, !isCharging(stack)); break;//Middle
|
||||
case 1://Right
|
||||
setCharge(stack, 0);
|
||||
final List<Entity> entityList = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(player.posX - MAX_RADIUS, player.posY - MAX_RADIUS, player.posZ - MAX_RADIUS, player.posX + MAX_RADIUS, player.posY + MAX_RADIUS, player.posZ + MAX_RADIUS));
|
||||
for (Entity entity : entityList)
|
||||
{
|
||||
if (!Library.isObstructed(player.getEntityWorld(), ILocationProvider.wrap(player, true), ILocationProvider.wrap(entity, false)) && entity instanceof EntityLivingBase)
|
||||
{
|
||||
final EntityLivingBase livingBase = (EntityLivingBase) entity;
|
||||
livingBase.setLastAttacker(player);
|
||||
livingBase.onDeath(ModDamageSource.radiation);
|
||||
livingBase.setHealth(livingBase.getHealth() - 50);
|
||||
HbmLivingProps.incrementRadiation(livingBase, getCharge(stack) / 100);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean b)
|
||||
{
|
||||
if (b)
|
||||
{
|
||||
tooltip.add("Current charge: " + getCharge(stack) + '/' + MAX_CHARGE);
|
||||
tooltip.add(BobMathUtil.toPercentage(getCharge(stack), MAX_CHARGE));
|
||||
tooltip.add("Is charging? " + isCharging(stack));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b)
|
||||
{
|
||||
if (!world.isRemote)
|
||||
{
|
||||
if (!stack.hasTagCompound())
|
||||
{
|
||||
stack.stackTagCompound = new NBTTagCompound();
|
||||
stack.stackTagCompound.setShort(KEY_CHARGE, (short) 0);
|
||||
stack.stackTagCompound.setBoolean(KEY_CHARGING, false);
|
||||
}
|
||||
|
||||
if (isCharging(stack) && getCharge(stack) < MAX_CHARGE)
|
||||
incrementCharge(stack);
|
||||
else if (!isCharging(stack))
|
||||
decrementCharge(stack);
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isCharging(ItemStack stack)
|
||||
{
|
||||
if (!stack.hasTagCompound())
|
||||
stack.stackTagCompound = new NBTTagCompound();
|
||||
return stack.stackTagCompound.getBoolean(KEY_CHARGING);
|
||||
}
|
||||
|
||||
private static short getCharge(ItemStack stack)
|
||||
{
|
||||
if (!stack.hasTagCompound())
|
||||
stack.stackTagCompound = new NBTTagCompound();
|
||||
return stack.stackTagCompound.getShort(KEY_CHARGE);
|
||||
}
|
||||
|
||||
private static void incrementCharge(ItemStack stack)
|
||||
{
|
||||
if (getCharge(stack) < MAX_CHARGE)
|
||||
setCharge(stack, getCharge(stack) + 5);
|
||||
if (getCharge(stack) > MAX_CHARGE)
|
||||
setCharge(stack, MAX_CHARGE);
|
||||
}
|
||||
|
||||
private static void decrementCharge(ItemStack stack)
|
||||
{
|
||||
if (getCharge(stack) > 0)
|
||||
setCharge(stack, getCharge(stack) - 1);
|
||||
if (getCharge(stack) < 0)
|
||||
setCharge(stack, 0);
|
||||
}
|
||||
|
||||
private static void setCharge(ItemStack stack, int charge)
|
||||
{
|
||||
stack.stackTagCompound.setShort(KEY_CHARGE, (short) charge);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDurabilityForDisplay(ItemStack stack)
|
||||
{
|
||||
return BobMathUtil.durabilityBarDisplay(getCharge(stack), MAX_CHARGE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean showDurabilityBar(ItemStack stack)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -501,6 +501,18 @@ public class ClientProxy extends ServerProxy {
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_spas12, new ItemRenderWeaponSpas12());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_glass_cannon, new ItemRenderWeaponGlass());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_chemthrower, new ItemRenderWeaponChemthrower());
|
||||
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_twr, new ItemRenderTWR());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_hlr, new ItemRenderHLR());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_mlr, new ItemRenderMLR());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_llr, new ItemRenderLLR());
|
||||
// MinecraftForgeClient.registerItemRenderer(ModItems.gun_thompson_redux, new ItemRenderThompsonRedux());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli_mod, new ItemRenderBenelli());// TODO
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_uac_pistol, new ItemRenderUACPistol());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_g36, new ItemRenderG36());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2());
|
||||
//multitool
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool());
|
||||
|
||||
@ -698,6 +698,18 @@ public class ResourceManager {
|
||||
|
||||
public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj"));
|
||||
|
||||
public static final IModelCustom twr = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/time_warp_rifle_final.obj"));
|
||||
public static final IModelCustom hlr = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/heavy_lunatic_rifle.obj"));
|
||||
public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj"));
|
||||
public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/Lunatic_Sniper_update.obj"));
|
||||
public static final IModelCustom lunatic = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/medium_lunatic_rifle.obj"));
|
||||
public static final IModelCustom lunatic_smg = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_smg.obj"));
|
||||
// public static final IModelCustom thompson_redux = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/thompson smg final.obj"));
|
||||
public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj"));
|
||||
public static final IModelCustom g36 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/g36.obj"));
|
||||
public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/M2_Browning.obj"));
|
||||
public static final IModelCustom bishamonen_spear = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/goldspear.obj"));
|
||||
|
||||
public static final IModelCustom grenade_frag = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_frag.obj"));
|
||||
public static final IModelCustom grenade_aschrab = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_aschrab.obj"));
|
||||
|
||||
@ -777,6 +789,16 @@ public class ResourceManager {
|
||||
|
||||
public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png");
|
||||
|
||||
public static final ResourceLocation twr_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/twr.png");
|
||||
public static final ResourceLocation hlr_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/HLR_final.png");
|
||||
public static final ResourceLocation lunatic_sniper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/Lunatic_Rifle_Texture.png");
|
||||
public static final ResourceLocation benelli_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/benelli_tex.png");
|
||||
public static final ResourceLocation lunatic_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/Lunatic_Rifle_Texture_old.png");
|
||||
public static final ResourceLocation lunatic_tex_alt = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/Lunatic_Texture_alt.png");
|
||||
// public static final ResourceLocation thompson_tex_redux = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/thompson_texture_update.png");
|
||||
public static final ResourceLocation uac_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pistol_texture.png");
|
||||
public static final ResourceLocation m2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/M2.png");
|
||||
|
||||
public static final ResourceLocation ff_gold = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/gold.png");
|
||||
public static final ResourceLocation ff_gun_bright = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/gun_bright.png");
|
||||
public static final ResourceLocation ff_gun_dark = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ff/gun_dark.png");
|
||||
|
||||
131
src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java
Normal file
@ -0,0 +1,131 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.items.weapon.ItemGunBase;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ItemRenderBenelli implements IItemRenderer
|
||||
{
|
||||
public ItemRenderBenelli() {}
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case EQUIPPED:
|
||||
case EQUIPPED_FIRST_PERSON:
|
||||
case ENTITY:
|
||||
case INVENTORY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||
{
|
||||
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING);
|
||||
}
|
||||
static final String body = "Body.001_Cube.001";
|
||||
static final String frontGrip = "Pump_Cylinder.003";
|
||||
static final String slide = "Cylinder";
|
||||
static final String barrelAndTube = "Body_Cube.002";
|
||||
static final String shell = "Shell_Cylinder.002";
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
int magSize = ItemGunBase.getMag(item);
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.benelli_tex);
|
||||
final float scale1 = 0.2F;
|
||||
final double scale2 = 0.065D;
|
||||
final double scale3 = 0.52D;
|
||||
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
|
||||
double[] eject = HbmAnimations.getRelevantTransformation("EJECT");
|
||||
// double[] reload = HbmAnimations.getRelevantTransformation("RELOAD");
|
||||
double[] feedNew = HbmAnimations.getRelevantTransformation("PUMP");
|
||||
switch (type)
|
||||
{
|
||||
case EQUIPPED_FIRST_PERSON:// In hand from POV
|
||||
GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
|
||||
if (player.isSneaking())
|
||||
{
|
||||
GL11.glRotatef(25.0F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(-5F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glTranslatef(-1.007F, 0F, -2.5F);
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glRotatef(30.0F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glTranslatef(0.0F, -1F, -2.5F);
|
||||
}
|
||||
GL11.glScalef(scale1, scale1, scale1);
|
||||
// Move on recoil
|
||||
GL11.glTranslated(0, recoil[1], recoil[2]);
|
||||
GL11.glRotated(recoil[0], 1, 0, 0);
|
||||
// Move up for reload
|
||||
GL11.glPushMatrix();
|
||||
// GL11.glTranslated(reload[2] / 2, 0, 0);
|
||||
// GL11.glRotated(reload[0], 1, 0, 0);
|
||||
// GL11.glRotated(reload[1], 0, 0, 1);
|
||||
ResourceManager.benelli.renderAllExcept(shell, slide);
|
||||
// Pump new round if empty
|
||||
if (magSize == 0)
|
||||
GL11.glTranslated(feedNew[0], feedNew[1], feedNew[2]);
|
||||
ResourceManager.benelli.renderPart(slide);
|
||||
GL11.glPopMatrix();
|
||||
// Eject spent shell
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(eject[0], eject[1], eject[2]);
|
||||
ResourceManager.benelli.renderPart(shell);
|
||||
GL11.glPopMatrix();
|
||||
break;
|
||||
case EQUIPPED:// In hand from other's POV
|
||||
GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslatef(-0.0F, -0.2F, -1.28F);
|
||||
// GL11.glTranslated(0, recoil[1], recoil[2] * 0.5);
|
||||
GL11.glRotated(recoil[0], 1, 0, 0);
|
||||
GL11.glScaled(scale2 - scale2 * 2, scale2, scale2);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(eject[0], eject[1], eject[2]);
|
||||
ResourceManager.benelli.renderPart(shell);
|
||||
GL11.glPopMatrix();
|
||||
break;
|
||||
case ENTITY:// Dropped entity
|
||||
//GL11.glRotatef(0.0F, 0.0F, 0.0F, 0.0F);
|
||||
//GL11.glTranslatef(0.0F, 0.0F, 0.0F);
|
||||
GL11.glScaled(0.125D, 0.125D, 0.125D);
|
||||
break;
|
||||
case INVENTORY:// Inventory icon
|
||||
GL11.glScaled(scale3, scale3, -scale3);
|
||||
GL11.glTranslatef(14.4F, 15.0F, 0.0F);
|
||||
GL11.glRotatef(270.0F, 10.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(52.5F, 0.0F, 10.0F, 0.0F);
|
||||
GL11.glRotatef(270.0F, 0.0F, 0.0F, 10.0F);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (type != ItemRenderType.EQUIPPED_FIRST_PERSON)
|
||||
ResourceManager.benelli.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
40
src/main/java/com/hbm/render/item/weapon/ItemRenderG36.java
Normal file
@ -0,0 +1,40 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ItemRenderG36 extends ItemRenderBase
|
||||
{
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
// super.renderItem(type, item, data);
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("recoil");
|
||||
switch (type)
|
||||
{
|
||||
case ENTITY:
|
||||
GL11.glScalef(0.3F, 0.3F, 0.3F);
|
||||
break;
|
||||
case EQUIPPED:
|
||||
GL11.glScalef(0.3f, 0.3f, 0.3f);
|
||||
GL11.glRotatef(90f, 0, 1, 0);
|
||||
break;
|
||||
case EQUIPPED_FIRST_PERSON:
|
||||
GL11.glScalef(0.5f, 0.5f, 0.5f);
|
||||
break;
|
||||
case INVENTORY:
|
||||
GL11.glScalef(1.75f, 1.75f, 1.75f);
|
||||
GL11.glRotatef(-140, 0, 0, 1);
|
||||
GL11.glTranslatef(-7f, -2f, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
ResourceManager.g36.renderAll();
|
||||
}
|
||||
}
|
||||
90
src/main/java/com/hbm/render/item/weapon/ItemRenderHLR.java
Normal file
@ -0,0 +1,90 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ItemRenderHLR implements IItemRenderer
|
||||
{
|
||||
public ItemRenderHLR() {}
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case EQUIPPED:
|
||||
case EQUIPPED_FIRST_PERSON:
|
||||
case ENTITY:
|
||||
case INVENTORY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||
{
|
||||
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
GL11.glPushMatrix();
|
||||
|
||||
//GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hlr_tex);
|
||||
final float scale1 = 0.2F;
|
||||
final double scale2 = 0.065D;
|
||||
final double scale3 = 0.425D;
|
||||
switch (type)
|
||||
{
|
||||
case EQUIPPED_FIRST_PERSON:// In hand from POV
|
||||
GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(30.0F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslatef(0.0F, -1F, -0.5F);
|
||||
GL11.glScalef(scale1, scale1, scale1);
|
||||
if (player.isSneaking())
|
||||
{
|
||||
GL11.glTranslatef(-5.05F, 3.0F, 2.0F);
|
||||
GL11.glRotatef(5.0F, 0.0F, -1.0F, 0.0F);
|
||||
GL11.glRotatef(5.0F, -1.0F, 0.0F, 0.0F);
|
||||
// GL11.glRotatef(5.0F, 0.0F, 0.0F, 1.0F);
|
||||
}
|
||||
break;
|
||||
case EQUIPPED:// In hand from other's POV
|
||||
GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslatef(-0.0F, -0.2F, -1.0F);
|
||||
GL11.glScaled(scale2 - 0.12, scale2, scale2);
|
||||
break;
|
||||
case ENTITY:// Dropped entity
|
||||
GL11.glScaled(0.125D, 0.125D, 0.125D);
|
||||
break;
|
||||
case INVENTORY:// Inventory icon
|
||||
GL11.glScaled(scale3, scale3, -scale3);
|
||||
GL11.glTranslatef(25.0F, 27.5F, 0.0F);
|
||||
GL11.glRotatef(270.0F, 10.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(47.5F, 0.0F, 10.0F, 0.0F);
|
||||
GL11.glRotatef(270.0F, 0.0F, 0.0F, 10.0F);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
ResourceManager.hlr.renderAll();
|
||||
// Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.??);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
104
src/main/java/com/hbm/render/item/weapon/ItemRenderLLR.java
Normal file
@ -0,0 +1,104 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ItemRenderLLR implements IItemRenderer
|
||||
{
|
||||
static Minecraft mc = Minecraft.getMinecraft();
|
||||
public ItemRenderLLR() {}
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case FIRST_PERSON_MAP:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||
{
|
||||
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION);
|
||||
}
|
||||
|
||||
static final String body = "Mesh_3";
|
||||
static final String magazine = "Mesh_2.001";
|
||||
/** Stock, sights, muzzle, sight pins, and barrel **/
|
||||
static final String[] misc = {"Mesh_7", "Mesh_2", "Mesh_8"};
|
||||
static final String slideHandle = "Mesh_0";
|
||||
static final String slide = "Mesh_1";
|
||||
|
||||
static final float scale1 = 4.5F;
|
||||
static final float scale2 = 3F;
|
||||
static final float scale3 = 5F;
|
||||
static final float scale4 = 35F;
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
mc.renderEngine.bindTexture(ResourceManager.lunatic_tex_alt);
|
||||
EntityPlayer player = mc.thePlayer;
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case ENTITY:// Dropped item
|
||||
GL11.glScalef(scale1, scale1, scale1);
|
||||
break;
|
||||
case EQUIPPED:// In hand from other's POV
|
||||
GL11.glScalef(scale2, scale2, scale2 - scale2 * 2);
|
||||
GL11.glRotatef(-90F, 1F, 0F, 0F);
|
||||
GL11.glRotatef(50F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(90F, 0F, 0F, 1F);
|
||||
GL11.glTranslatef(0F, 0.02F, 0.45F);
|
||||
break;
|
||||
case EQUIPPED_FIRST_PERSON:// In hand from POV
|
||||
GL11.glScalef(scale3, scale3, scale3);
|
||||
GL11.glRotatef(-90F, 1F, 0F, 0F);
|
||||
GL11.glRotatef(60F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(90F, 0F, 0F, 1F);
|
||||
byte s = 4;
|
||||
if (player.isSneaking())
|
||||
{
|
||||
GL11.glRotatef(-5F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(5.1F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(0.208F, 0.069F, 0.45F);
|
||||
s = 5;
|
||||
}
|
||||
else
|
||||
GL11.glTranslatef(0F, 0.02F, 0.45F);
|
||||
|
||||
GL11.glTranslated(recoil[0], recoil[1], recoil[2] / s);
|
||||
break;
|
||||
case INVENTORY:
|
||||
GL11.glScalef(scale4, scale4, scale4);
|
||||
GL11.glRotatef(-90F, 1F, 0F, 0F);
|
||||
GL11.glRotatef(-125F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(90F, 0F, 0F, 1F);
|
||||
GL11.glTranslatef(0F, -0.021F, -0.11F);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
ResourceManager.lunatic_smg.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,130 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ItemRenderLunaticSniper implements IItemRenderer
|
||||
{
|
||||
|
||||
public ItemRenderLunaticSniper() {}
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case EQUIPPED:
|
||||
case EQUIPPED_FIRST_PERSON:
|
||||
case ENTITY:
|
||||
case INVENTORY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||
{
|
||||
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION);
|
||||
}
|
||||
static final String slide = "Slide_Cube.020_Cube.007";
|
||||
static final String everythingElse = "Full_Cylinder.007";
|
||||
static final String spentShell = "Spent_Casing_Casing";
|
||||
static final String fullRound = "Full_Round_Bullet";
|
||||
|
||||
static final float scale1 = 0.2F;
|
||||
static final float scale2 = 0.15F;
|
||||
static final float scale3 = 0.3F;
|
||||
static final float scale4 = 0.8F;
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
|
||||
double[] eject = HbmAnimations.getRelevantTransformation("EJECT");
|
||||
double[] tilt = HbmAnimations.getRelevantTransformation("TILT");
|
||||
// double[] insert = HbmAnimations.getRelevantTransformation("INSERT_ROUND");
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lunatic_sniper_tex);
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case EQUIPPED_FIRST_PERSON:// In hand from POV
|
||||
GL11.glRotatef(90F, 1F, 0F, 0F);
|
||||
GL11.glRotatef(-58.5F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(90F, 0F, 0F, 1F);
|
||||
GL11.glTranslatef(-0.5F, -0.15F, 0F);
|
||||
GL11.glScalef(scale1, scale1, scale1);
|
||||
|
||||
/// Begin animations ///
|
||||
|
||||
// Move on recoil
|
||||
GL11.glTranslated(0, 0, recoil[1] * 10);
|
||||
GL11.glRotated(recoil[0] * 10, 0, 0, 1);
|
||||
// Move on reload
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(tilt[0] * 2, 0, 0, 1);
|
||||
GL11.glRotated(-tilt[1] * 2, 0, 1, 0);
|
||||
GL11.glTranslated(0, 0, -tilt[1] / 8);
|
||||
ResourceManager.lunatic_sniper.renderPart(everythingElse);
|
||||
GL11.glPopMatrix();
|
||||
// Release slide
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(tilt[0] * 2, 0, 0, 1);
|
||||
GL11.glRotated(-tilt[1] * 2, 0, 1, 0);
|
||||
GL11.glTranslated(0, 0, -tilt[2] * 15);
|
||||
ResourceManager.lunatic_sniper.renderPart(slide);
|
||||
GL11.glPopMatrix();
|
||||
// Drop in new round
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(tilt[0], 0, 0, 1);
|
||||
GL11.glTranslated(0, tilt[1], tilt[2]);
|
||||
ResourceManager.lunatic_sniper.renderPart(fullRound);
|
||||
GL11.glPopMatrix();
|
||||
// Eject casing
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 2, 0);//FIXME Where on earth is it?!
|
||||
ResourceManager.lunatic_sniper.renderPart(spentShell);
|
||||
GL11.glPopMatrix();
|
||||
break;
|
||||
case EQUIPPED:// In hand from other's POV
|
||||
GL11.glRotatef(90F, 1F, 0F, 0F);
|
||||
GL11.glRotatef(-50F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(90F, 0F, 0F, 1F);
|
||||
GL11.glTranslatef(0F, -0.25F, -0.76F);
|
||||
GL11.glScalef(scale2 - scale2 * 2, scale2, scale2);
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(eject[0] / 2, 0, -5);
|
||||
ResourceManager.lunatic_sniper.renderPart(spentShell);
|
||||
GL11.glPopMatrix();
|
||||
break;
|
||||
case ENTITY:// Dropped item
|
||||
GL11.glScalef(scale3, scale3, scale3);
|
||||
break;
|
||||
case INVENTORY:
|
||||
GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(132F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslatef(0.0F, -2F, 15F);
|
||||
GL11.glScalef(scale4, scale4, scale4);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (type != ItemRenderType.EQUIPPED_FIRST_PERSON)
|
||||
ResourceManager.lunatic_sniper.renderAllExcept(fullRound, spentShell);
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
58
src/main/java/com/hbm/render/item/weapon/ItemRenderM2.java
Normal file
@ -0,0 +1,58 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ItemRenderM2 extends ItemRenderBase
|
||||
{
|
||||
public ItemRenderM2()
|
||||
{
|
||||
}
|
||||
static final float scale1 = 0.35f,
|
||||
scale2 = 3.5f,
|
||||
scale3 = 0.25f,
|
||||
scale4 = 0.75f;
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
// super.renderItem(type, item, data);
|
||||
switch (type)
|
||||
{
|
||||
case ENTITY:
|
||||
GL11.glScalef(scale4, scale4, scale4); break;
|
||||
case EQUIPPED:
|
||||
GL11.glScalef(scale1, scale1, -scale1);
|
||||
// GL11.glRotatef(10, 1, 0, 0);
|
||||
GL11.glRotatef(-90, 0, 1, 0);
|
||||
GL11.glTranslatef(0, -2, -2);
|
||||
GL11.glRotatef(20, 1, 0, 0);
|
||||
break;
|
||||
case EQUIPPED_FIRST_PERSON:
|
||||
GL11.glRotatef(-90, 0, 1, 0);
|
||||
if (Minecraft.getMinecraft().thePlayer.isSneaking())
|
||||
{
|
||||
GL11.glTranslatef(-0.95f, -0.9f, -2);
|
||||
GL11.glRotatef(-5, 0, 1, 1);
|
||||
}
|
||||
else
|
||||
GL11.glTranslatef(0, -1, -3);
|
||||
GL11.glRotatef(25, 1, 0, 0);
|
||||
break;
|
||||
case INVENTORY:
|
||||
GL11.glScalef(scale2, scale2, scale2);
|
||||
GL11.glRotatef(90, 1, 0, 0);
|
||||
GL11.glRotatef(130, 0, 1, 0);
|
||||
GL11.glRotatef(90, 0, 0, 1);
|
||||
GL11.glTranslatef(0, -2, 3);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.m2_tex);
|
||||
ResourceManager.m2.renderAll();
|
||||
}
|
||||
}
|
||||
100
src/main/java/com/hbm/render/item/weapon/ItemRenderMLR.java
Normal file
@ -0,0 +1,100 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ItemRenderMLR implements IItemRenderer
|
||||
{
|
||||
|
||||
public ItemRenderMLR() {}
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case FIRST_PERSON_MAP:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||
{
|
||||
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION);
|
||||
}
|
||||
|
||||
static final String stock = "Stock_stock_stock_thing.000";
|
||||
static final String recieverAndMag = "Reciever_Mesh_0";
|
||||
static final String sight = "Rear_sights_Cylinder";
|
||||
static final String barrelAndGrip = "Barrel_and_grip_Upper_reciever_low_Low_0";
|
||||
|
||||
static final float scale1 = 0.25F;
|
||||
static final float scale2 = 0.15F;
|
||||
static final float scale3 = 0.5F;
|
||||
static final float scale4 = 1.2F;
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.lunatic_tex);
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case ENTITY:// Dropped item
|
||||
GL11.glScalef(scale1, scale1, scale1);
|
||||
break;
|
||||
case EQUIPPED:// In hand from other's POV
|
||||
GL11.glRotatef(45F, 0F, 0F, 1F);
|
||||
GL11.glTranslatef(1.48F, -0.27F, 0F);
|
||||
|
||||
// Animations
|
||||
GL11.glTranslated(recoil[0] / 2, recoil[1], recoil[2]);
|
||||
GL11.glScalef(scale2, scale2, scale2);
|
||||
break;
|
||||
case EQUIPPED_FIRST_PERSON:// In hand from POV
|
||||
GL11.glRotatef(30F, 0F, 0F, 1F);
|
||||
GL11.glTranslatef(3F, -1F, 0F);
|
||||
// Makes the recoil look better between sneaking and normal
|
||||
byte s = 1;
|
||||
if (player.isSneaking())
|
||||
{
|
||||
GL11.glTranslatef(0F, 0.32F, -0.75F);
|
||||
GL11.glRotatef(-5.05F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(-5F, 0F, 0F, 1F);
|
||||
s = 2;
|
||||
}
|
||||
|
||||
// Animations
|
||||
GL11.glTranslated(recoil[0] / s, recoil[1], recoil[2]);
|
||||
GL11.glScalef(scale3, scale3, scale3);
|
||||
break;
|
||||
case INVENTORY:
|
||||
GL11.glTranslatef(5.5F, 7F, 0F);
|
||||
GL11.glRotatef(-140F, 0F, 0F, 1F);
|
||||
GL11.glScalef(scale4, scale4, scale4);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
ResourceManager.lunatic.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
82
src/main/java/com/hbm/render/item/weapon/ItemRenderTWR.java
Normal file
@ -0,0 +1,82 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ItemRenderTWR implements IItemRenderer
|
||||
{
|
||||
public ItemRenderTWR() {}
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case EQUIPPED:
|
||||
case EQUIPPED_FIRST_PERSON:
|
||||
case ENTITY:
|
||||
case INVENTORY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||
{
|
||||
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING);
|
||||
}
|
||||
|
||||
static final float scale1 = 0.09f;
|
||||
static final float scale2 = 0.05f;
|
||||
static final float scale3 = 0.25f;
|
||||
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
|
||||
//GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.twr_tex);
|
||||
switch (type)
|
||||
{
|
||||
case EQUIPPED_FIRST_PERSON:// In hand from POV
|
||||
GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(30.0F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(0.0F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslatef(0.0F, -1.0F, -1.0F);
|
||||
GL11.glScalef(scale1, scale1, scale1);
|
||||
break;
|
||||
case EQUIPPED:// In hand from other's POV
|
||||
GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F);
|
||||
GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glTranslatef(0.0F, -0.6F, -1.25F);
|
||||
GL11.glScalef(scale2, scale2, scale2);
|
||||
break;
|
||||
case ENTITY:// Dropped entity
|
||||
GL11.glScalef(0.1f, 0.1f, 0.1f);
|
||||
break;
|
||||
case INVENTORY:// Inventory icon
|
||||
GL11.glScalef(scale3, scale3, -scale3);
|
||||
GL11.glTranslatef(25.0F, 35.0F, 0.0F);
|
||||
GL11.glRotatef(270.0F, 10.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(50.0F, 0.0F, 10.0F, 0.0F);
|
||||
GL11.glRotatef(270.0F, 0.0F, 0.0F, 10.0F);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
ResourceManager.twr.renderAll();
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.twr_tex);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,116 @@
|
||||
package com.hbm.render.item.weapon;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class ItemRenderUACPistol implements IItemRenderer
|
||||
{
|
||||
Minecraft mc = Minecraft.getMinecraft();
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type)
|
||||
{
|
||||
return type == ItemRenderType.FIRST_PERSON_MAP ? false : true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||
{
|
||||
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION);
|
||||
}
|
||||
|
||||
static final String lower = "lower_pistol_0";
|
||||
static final String mag = "mag_pistol_0";
|
||||
static final String slide = "slide_pistol_0";
|
||||
static final String trigger = "trigger_pistol_0";
|
||||
static final String hammer = "bool_obj_bool_obj_data.002";
|
||||
|
||||
static final float scale1 = 0.05F;
|
||||
static final float scale2 = 0.025F;
|
||||
static final float scale3 = 0.05F;
|
||||
static final float scale4 = 0.55F;
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
mc.renderEngine.bindTexture(ResourceManager.uac_pistol_tex);
|
||||
EntityPlayer player = mc.thePlayer;
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
double[] slideAnim = HbmAnimations.getRelevantTransformation("SLIDE");
|
||||
double[] hammerAnim = HbmAnimations.getRelevantTransformation("HAMMER");
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case ENTITY:// Dropped item
|
||||
GL11.glScalef(scale1, scale1, scale1);
|
||||
break;
|
||||
case EQUIPPED:// In hand from other's POV
|
||||
GL11.glScalef(scale2, scale2, scale2);
|
||||
GL11.glRotatef(90F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(-45F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(0F, -12F, 30F);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
ResourceManager.uac_pistol.renderOnly(trigger, mag, lower);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(slideAnim[0], slideAnim[1], slideAnim[2] * 2);
|
||||
ResourceManager.uac_pistol.renderPart(slide);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(hammerAnim[0], 1F, 0F, 0F);
|
||||
ResourceManager.uac_pistol.renderPart(hammer);
|
||||
GL11.glPopMatrix();
|
||||
break;
|
||||
case EQUIPPED_FIRST_PERSON:// In hand from POV
|
||||
GL11.glScalef(scale3, scale3, scale3);
|
||||
GL11.glRotatef(90F, 0F, 1F, 0F);
|
||||
if (player.isSneaking())
|
||||
{
|
||||
GL11.glRotatef(-25F, 1F, 0F, 0F);
|
||||
GL11.glRotatef(-5F, 0F, 1F, 0F);
|
||||
GL11.glTranslatef(20.15F, 3.5F, 18F);
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glRotatef(-35F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(0F, -12F, 25F);
|
||||
}
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(slideAnim[0], slideAnim[1], slideAnim[2] * 2);
|
||||
ResourceManager.uac_pistol.renderPart(slide);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(hammerAnim[0], 1F, 0F, 0F);
|
||||
ResourceManager.uac_pistol.renderPart(hammer);
|
||||
GL11.glPopMatrix();
|
||||
break;
|
||||
case INVENTORY:
|
||||
GL11.glScalef(scale4, scale4, scale4);
|
||||
GL11.glRotatef(90F, 0F, 1F, 0F);
|
||||
GL11.glRotatef(150F, 1F, 0F, 0F);
|
||||
GL11.glTranslatef(0F, -8F, -24F);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (type != ItemRenderType.EQUIPPED_FIRST_PERSON && type != ItemRenderType.EQUIPPED)
|
||||
ResourceManager.uac_pistol.renderAll();
|
||||
else
|
||||
ResourceManager.uac_pistol.renderOnly(trigger, mag, lower);
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
@ -9,6 +9,9 @@ import java.util.List;
|
||||
|
||||
import javax.annotation.Nonnegative;
|
||||
|
||||
import com.hbm.calc.EasyLocation;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
@ -178,4 +181,26 @@ public class BobMathUtil {
|
||||
|
||||
return Long.toString(l);
|
||||
}
|
||||
|
||||
public static double durabilityBarDisplay(double cur, double max)
|
||||
{
|
||||
return 1d - cur / max;
|
||||
}
|
||||
|
||||
public static Vec3 entityUnitVector(Entity entity)
|
||||
{
|
||||
return Vec3.createVectorHelper
|
||||
(
|
||||
-(Math.sin(entity.rotationYaw / 180 * Math.PI) * Math.cos(entity.rotationPitch / 180 * Math.PI)),
|
||||
-Math.sin(entity.rotationPitch / 180 * Math.PI),
|
||||
Math.cos(entity.rotationYaw / 180 * Math.PI) * Math.cos(entity.rotationPitch / 180 * Math.PI)
|
||||
);
|
||||
}
|
||||
|
||||
public static void offsetForHand(Entity entity, EasyLocation loc)
|
||||
{
|
||||
loc.posX -= Math.cos(entity.rotationYaw / 180 * Math.PI) * 0.16;
|
||||
loc.posY -= 0.16;
|
||||
loc.posZ -= Math.sin(entity.rotationYaw / 180 * Math.PI) * 0.16;
|
||||
}
|
||||
}
|
||||
|
||||
@ -868,6 +868,7 @@ gun.make.H_AND_R=Harrington & Richardson
|
||||
gun.make.IF=Ironshod Firearms
|
||||
gun.make.IMI=Israel Military Industries
|
||||
gun.make.IMI_BIGMT=IMI / Big MT
|
||||
gun.make.LANGFORD=Langford Research Laboratories
|
||||
gun.make.LUNA=Lunar Defense Corp
|
||||
gun.make.MAGNUM_R_IMI=Magnum Research / Israel Military Industries
|
||||
gun.make.MANN=Open Mann Co.
|
||||
@ -879,6 +880,7 @@ gun.make.NONE=-
|
||||
gun.make.RAYTHEON=Raytheon Missile Systems
|
||||
gun.make.ROCKWELL=Rockwell International Corporation
|
||||
gun.make.ROCKWELL_U=Rockwell International Corporation?
|
||||
gun.make.RYAN=Ryan Industries
|
||||
gun.make.SAAB=Saab Bofors Dynamics
|
||||
gun.make.SACO=Saco Defense / US Ordnance
|
||||
gun.make.TULSKY=Tulsky Oruzheiny Zavod
|
||||
@ -894,6 +896,7 @@ gun.name.baeAR=Britannian Standard Issue Assault Rifle
|
||||
gun.name.bel=Balefire Egg Launcher
|
||||
gun.name.benelli=Benelli M4 Super 90
|
||||
gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification)
|
||||
gun.name.bio=RI No. 2 Mark 1
|
||||
gun.name.bolter=Manticora Pattern Boltgun
|
||||
gun.name.cPython=Colt Python
|
||||
gun.name.cz53=CZ53 Personal Minigun
|
||||
@ -922,11 +925,11 @@ gun.name.karl=M1 Karl-Gerät
|
||||
gun.name.ks23=KS-23
|
||||
gun.name.lacunae=Auntie Lacunae
|
||||
gun.name.lasetDet=Hopeville Laser Detonator
|
||||
gun.name.lunaAR=1936 Bishamonten type Assault Rifle
|
||||
gun.name.lunaGun=1958 Rāhula type Sidearm (Revision 2)
|
||||
gun.name.lunaAR=1986 Bishamonten type Assault Rifle
|
||||
gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2)
|
||||
gun.name.lunaHLR=1944 Chang'e type Light Machine Gun
|
||||
gun.name.lunaShotty=1958 Guan Yu type Scattergun (Revision 1)
|
||||
gun.name.lunaSMG=1936 Ānanda type Submachine Gun
|
||||
gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1)
|
||||
gun.name.lunaSMG=1956 Ānanda type Submachine Gun
|
||||
gun.name.lunaSniper=1909 Hou Yi type Anti-Material Rifle
|
||||
gun.name.lunaTWR=Time Warp Rifle
|
||||
gun.name.m2=Browning machine gun, cal. .50, M2, HB
|
||||
@ -1157,6 +1160,11 @@ item.ammo_20gauge.wither.name=20 Gauge Buckshot (Withering)
|
||||
item.ammo_22lr.stock.name=.22 LR Round
|
||||
item.ammo_22lr.ap.name=.22 LR Round (Armor Piercing)
|
||||
item.ammo_22lr.chlorophyte.name=.22 LR Round (Chlorophyte)
|
||||
item.ammo_308.ap.name=7.62x51mm NATO Round (Armor Piercing)
|
||||
item.ammo_308.blank.name=7.62x51mm NATO Round (Blank)
|
||||
item.ammo_308.du.name=7.62x51mm NATO Round (DU)
|
||||
item.ammo_308.stock.name=7.62x51mm NATO Round
|
||||
item.ammo_308.tracer.name=7.62x51mm NATO Round (Tracer)
|
||||
item.ammo_357.desh.name=.357 Magnum Desh Bullet
|
||||
item.ammo_44.stock.name=.44 Magnum Bullet
|
||||
item.ammo_44.ap.name=.44 Magnum Bullet (Armor Piercing)
|
||||
@ -1168,6 +1176,9 @@ item.ammo_44.pip.name=.44 Magnum Bullet (Boxcar)
|
||||
item.ammo_44.rocket.name=.44 Magnum Rocket
|
||||
item.ammo_44.silver.name=.44 Magnum Bullet (Building)
|
||||
item.ammo_44.star.name=.44 Magnum Bullet (Starmetal)
|
||||
item.ammo_45.stock.name=.45 ACP Round
|
||||
item.ammo_45.ap.name=.45 ACP Round (Armor Piercing)
|
||||
item.ammo_45.du.name=.45 ACP Round (DU)
|
||||
item.ammo_4gauge.stock.name=4 Gauge Buckshot
|
||||
item.ammo_4gauge.balefire.name=23mm Balefire Grenade
|
||||
item.ammo_4gauge.canister.name=23mm Rocket (Canister Shot)
|
||||
@ -1263,6 +1274,12 @@ item.ammo_grenade.phosphorus.name=40mm Grenade (WP)
|
||||
item.ammo_grenade.sleek.name=40mm Grenade (IF-R&D)
|
||||
item.ammo_grenade.toxic.name=40mm Grenade (Chemical)
|
||||
item.ammo_grenade.tracer.name=40mm Training Grenade
|
||||
item.ammo_luna_sniper.explosive.desc=§eHigh powered DU APHEFSDS sniper round$§eSabot with an additional tandem explosive charge for en-mass exterminating$
|
||||
item.ammo_luna_sniper.explosive.name=Lunatic Sniper Sabot Explosive Round
|
||||
item.ammo_luna_sniper.incendiary.desc=§eHigh powered DU APIFSDS sniper round$§eWhite Phosphorus addition to cleanse even the toughest impurities$
|
||||
item.ammo_luna_sniper.incendiary.name=Lunatic Sniper Sabot Incendiary Round
|
||||
item.ammo_luna_sniper.sabot.desc=§eHigh powered DU APFSDS sniper round$§eSo hot the projectile can reach escape velocity$§eVery specialized, very deadly, very accurate$
|
||||
item.ammo_luna_sniper.sabot.name=Lunatic Sniper Sabot Round
|
||||
item.ammo_nuke.mirv.name=Mini MIRV
|
||||
item.ammo_nume.mirv_high.name=Mini MIRV (High Yield)
|
||||
item.ammo_nuke.mirv_low.name=Mini MIRV (Low Yield)
|
||||
@ -1344,6 +1361,8 @@ item.asbestos_helmet.name=Fire Proximity Helmet
|
||||
item.asbestos_legs.name=Fire Proximity Leggings
|
||||
item.asbestos_plate.name=Fire Proximity Chestplate
|
||||
item.ashglasses.name=Ash Goggles
|
||||
item.assembly_308.name=7.62x51mm Assembly
|
||||
item.assembly_45.name=.45 ACP Assembly
|
||||
item.assembly_556.name=5.56mm Assembly
|
||||
item.assembly_actionexpress.name=.50 AE Assembly
|
||||
item.assembly_calamity.name=.50 BMG Assembly
|
||||
@ -1352,6 +1371,7 @@ item.assembly_gold.name=Gold Bullet Assembly
|
||||
item.assembly_iron.name=Iron Bullet Assembly
|
||||
item.assembly_lacunae.name=.5mm Assembly
|
||||
item.assembly_lead.name=Glass Bullet Assembly
|
||||
item.assembly_luna_sniper.name=Lunatic Sniper Bullet Assembly
|
||||
item.assembly_nightmare.name=Nightmare Bullet Assembly
|
||||
item.assembly_nopip.name=.44 Magnum Assembly
|
||||
item.assembly_nuke.name=Mini Nuke Shell
|
||||
@ -1509,6 +1529,7 @@ item.bobmazon_tools.name=Bobmazon: Tools
|
||||
item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives
|
||||
item.bolt_compound.name=Reinforced Turbine Shaft
|
||||
item.bolt_dura_steel.name=High-Speed Steel Bolt
|
||||
item.bolt_staballoy.name=Staballoy Bolt
|
||||
item.bolt_tungsten.name=Tungsten Bolt
|
||||
item.bomb_caller.name=Airstrike Designator
|
||||
item.bomb_waffle.name=Waffle of Mass Destruction
|
||||
@ -2082,6 +2103,8 @@ item.gun_avenger.name=CZ57 Avenger Minigun
|
||||
item.gun_b92.name=§9B92 Energy Pistol§r
|
||||
item.gun_b92_ammo.name=§9B92 Energy Cell§r
|
||||
item.gun_b93.name=§cB93 Energy Mod§r
|
||||
item.gun_benelli.name=Benelli Autoshotgun
|
||||
item.gun_benelli_mod.name=Benelli Autoshotgun (Drum Mod)
|
||||
item.gun_bf.name=BEL
|
||||
item.gun_bf_ammo.name=Balefire Shell
|
||||
item.gun_bio_revolver.name=Atlas
|
||||
@ -2113,8 +2136,14 @@ item.gun_fireext.name=Fire Extinguisher
|
||||
item.gun_flamer.name=Mister Topaz
|
||||
item.gun_flechette.name=Flechette Rifle
|
||||
item.gun_folly.name=Prototype Digamma "Folly"
|
||||
item.gun_g36.name=H&K G36
|
||||
item.gun_glass_cannon.name=The Glass Cannon
|
||||
item.gun_hk69.name=Grenade Pistol
|
||||
item.gun_hlr.desc.0="§mDodge§r§7§o Graze this"
|
||||
item.gun_hlr.desc.1="I'll show you where to shove those spellcard rules, miko."
|
||||
item.gun_hlr.desc.2="An obstacle has been spotted. Proceeding with extermination."
|
||||
item.gun_hlr.desc.3="Why must we stand on this impure ground?"
|
||||
item.gun_hlr.name=Heavy Lunatic Rifle (BETA)
|
||||
item.gun_hp.name=HPP Lazerjet
|
||||
item.gun_hp_ammo.name=Ink Cartridge
|
||||
item.gun_immolator.name=The Immolator
|
||||
@ -2132,9 +2161,16 @@ item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY)
|
||||
item.gun_lever_action_dark.name=Mare's Leg (Dark)
|
||||
item.gun_lever_action_sonata.name=Flipped Mare's Leg
|
||||
item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r
|
||||
item.gun_llr.name=Light Lunatic Rifle
|
||||
item.gun_lunatic.name=Lunatic Gun (BETA)
|
||||
item.gun_lunatic_marksman.name=Lunatic Marksman Rifle (BETA)
|
||||
item.gun_lunatic_shotty.name=Lunatic Scattergun (BETA)
|
||||
item.gun_m2.name=Ma Deuce
|
||||
item.gun_m60.name=M60 Machine Gun
|
||||
item.gun_minigun.name=CZ53 Personal Minigun
|
||||
item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV"
|
||||
item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY)
|
||||
item.gun_mlr.name=Lunatic Rifle
|
||||
item.gun_moist_nugget.name=Mosin-Nagant
|
||||
item.gun_mp.name=Pacifist's Machine Gun
|
||||
item.gun_mp40.name=Submachine Gun
|
||||
@ -2185,6 +2221,19 @@ item.gun_super_shotgun.name=Super Shotgun
|
||||
item.gun_super_shotgun.desc=It's super broken!
|
||||
item.gun_supershotgun.name=Super Shotgun
|
||||
item.gun_thompson.name=Thompson Submachine Gun
|
||||
item.gun_twr.desc.0=§c"You can't dodge a bullet that's already hit"
|
||||
item.gun_twr.desc.1="Where's the exit!?"$§c§l"Nowhere"
|
||||
item.gun_twr.desc.2=§c"I'm not about to have a little fly like you get away"
|
||||
item.gun_twr.desc.3=§c"Eclipse, eclipse, under the sky!$§cShatter into a million shards of light!"
|
||||
item.gun_twr.desc.4=§c"One must fall before one must ascend!"
|
||||
item.gun_twr.desc.5=§c"The entrance, and the exit, are an endless loop."
|
||||
item.gun_twr.desc.6=§c"Loud, furious$§c"...and signifying nothing as it passes from this world."
|
||||
item.gun_twr.name=Time Warp Rifle (BETA)
|
||||
item.gun_uac_carbine.name=UAC Carbine
|
||||
item.gun_uac_dmr.name=UAC DMR
|
||||
item.gun_uac_lmg.name=UAC LMG
|
||||
item.gun_uac_pistol.name=UAC .45 Pistol
|
||||
item.gun_uac_smg.name=UAC SMG
|
||||
item.gun_uboinik.name=Uboinik
|
||||
item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY)
|
||||
item.gun_uzi.name=IMI Uzi
|
||||
@ -2327,6 +2376,8 @@ item.ingot_semtex.name=Bar of Semtex
|
||||
item.ingot_smore.name=S'more Ingot
|
||||
item.ingot_solinium.name=Solinium Ingot
|
||||
item.ingot_sr90.name=Strontium-90 Ingot
|
||||
item.ingot_staballoy.desc=Hehe, get it?$§o§nStab§7alloy, because it's an armor penetrator alloy?
|
||||
item.ingot_staballoy.name=Staballoy Ingot
|
||||
item.ingot_starmetal.name=§9Starmetal Ingot§r
|
||||
item.ingot_steel.name=Steel Ingot
|
||||
item.ingot_steel_dusted.name=Dusted Steel Ingot
|
||||
|
||||
23597
src/main/resources/assets/hbm/models/weapons/Lunatic_Sniper_update.obj
Normal file
29402
src/main/resources/assets/hbm/models/weapons/M2_Browning.obj
Normal file
16884
src/main/resources/assets/hbm/models/weapons/UAC pistol.obj
Normal file
5820
src/main/resources/assets/hbm/models/weapons/benelli_new.obj
Normal file
25163
src/main/resources/assets/hbm/models/weapons/g36.obj
Normal file
2491
src/main/resources/assets/hbm/models/weapons/goldspear.obj
Normal file
2033
src/main/resources/assets/hbm/models/weapons/heavy_lunatic_rifle.obj
Normal file
27912
src/main/resources/assets/hbm/models/weapons/lunatic_smg.obj
Normal file
55026
src/main/resources/assets/hbm/models/weapons/medium_lunatic_rifle.obj
Normal file
@ -166,6 +166,29 @@
|
||||
"weapon.shotgunPump": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPump", "stream": false}]},
|
||||
"weapon.explosionMedium": {"category": "player", "sounds": [{"name": "weapon/explosion_medium", "stream": false}]},
|
||||
|
||||
"weapon.shotgunReloadPB3": {"category": "player", "sounds": ["weapon/SHTLOAD1", "weapon/SHTLOAD2", "weapon/SHTLOAD3", "weapon/SHTLOAD4"]},
|
||||
"weapon.shotgunFirePB3": {"category": "player", "sounds": ["weapon/3AWFIRE1", "weapon/3AWFIRE2", "weapon/3AWFIRE3", "weapon/3AWFIRE4"]},
|
||||
"weapon.autoshotgunFirePB3": {"category": "player", "sounds": ["weapon/A4SGFIR1", "weapon/A4SGFIR2", "weapon/A4SGFIR3", "weapon/A4SGFIR4", "weapon/A4SGFIR5", "weapon/A4SGFIR6", "weapon/A4SGFIR7", "weapon/A4SGFIR8"]},
|
||||
"weapon.shotgunPumpPB3": {"category": "player", "sounds": [{"name": "weapon/H4SGCOCK", "stream": false}]},
|
||||
"weapon.heavyShootPB3": {"category": "player", "sounds": [{"name": "weapon/FRAGSHT", "stream": false}]},
|
||||
"weapon.carbineShootPB3": {"category": "player", "sounds": [{"name": "weapon/4AFLFIR1", "stream": false}]},
|
||||
"weapon.DMRShootPB3": {"category": "player", "sounds": [{"name": "weapon/HYPADDF1", "stream": false}]},
|
||||
"weapon.DMRShootPB3Alt": {"category": "player", "sounds": [{"name": "weapon/HYPADDF1ALT", "stream": false}]},
|
||||
"weapon.LMGShootPB3": {"category": "player", "sounds": [{"name": "weapon/LMGFIRE", "stream": false}]},
|
||||
"weapon.LMGShootPB3Alt": {"category": "player", "sounds": [{"name": "weapon/LMGFIREALT", "stream": false}]},
|
||||
"weapon.carbineMagInPB3": {"category": "player", "sounds": ["weapon/CBMGINN", "weapon/RFLMSLP"]},
|
||||
"weapon.DMRCockPB3": {"category": "player", "sounds": [{"name": "weapon/LMGFIRE", "stream": false}]},
|
||||
"weapon.DMRMagInPB3": {"category": "player", "sounds": ["weapon/RIFCL_CLIK", "weapon/RIFCL_IN"]},
|
||||
"weapon.pistolReloadPB3": {"category": "player", "sounds": ["weapon/PISTOL_U", "weapon/PSRLFIN", "weapon/PSRLIN", "weapon/PSRLOUT"]},
|
||||
"weapon.pistolCockPB3": {"category": "player", "sounds": [{"name": "weapon/PSRLFIN", "stream": false}]},
|
||||
"weapon.pistolFirePB3": {"category": "player", "sounds": ["weapon/2XPFIRE1", "weapon/2XPFIRE2", "weapon/2XPFIRE3"]},
|
||||
"weapon.SMGFirePB3": {"category": "player", "sounds": ["weapon/DSRAIFR1", "weapon/DSRAIFR2"]},
|
||||
"weapon.SMGCockPB3": {"category": "player", "sounds": [{"name": "weapon/DSRAIFCK", "stream": false}]},
|
||||
"weapon.SMGMagInPB3": {"category": "player", "sounds": [{"name": "weapon/DSRAIFIN", "stream": false}]},
|
||||
"weapon.LMGMagInPB3": {"category": "player", "sounds": [{"name": "weapon/LMGIN", "stream": false}]},
|
||||
"weapon.LMGCockPB3": {"category": "player", "sounds": [{"name": "weapon/LMGCLK", "stream": false}]},
|
||||
"weapon.shotgunDrumPB3": {"category": "player", "sounds": ["weapon/ASGDRM1", "weapon/ASGDRM2"]},
|
||||
|
||||
"weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]},
|
||||
|
||||
"weapon.reloadTurret": {"category": "player", "sounds": [{"name": "weapon/reloadTurret", "stream": false}]},
|
||||
|
||||
BIN
src/main/resources/assets/hbm/sounds/weapon/2XPFIRE1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/2XPFIRE2.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/2XPFIRE3.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/3AWFIRE1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/3AWFIRE2.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/3AWFIRE3.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/3AWFIRE4.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/4AFLFIR1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/A4SGFIR1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/A4SGFIR2.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/A4SGFIR3.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/A4SGFIR4.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/A4SGFIR5.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/A4SGFIR6.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/A4SGFIR7.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/A4SGFIR8.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/ASGDRM1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/ASGDRM2.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/CBMGINN.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/DSRAIFCK.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/DSRAIFIN.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/DSRAIFR1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/DSRAIFR2.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/FRAGSHT.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/H4SGCOCK.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/HYPADDF1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/HYPADDF1ALT.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/LMGCLK.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/LMGFIRE.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/LMGFIREALT.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/LMGIN.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/PISTOL_U.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/PSRLFIN.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/PSRLIN.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/PSRLOUT.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/RFLMSLP.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/RIFCL_CK.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/RIFCL_CLIK.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/RIFCL_IN.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/SHTLOAD1.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/SHTLOAD2.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/SHTLOAD3.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/weapon/SHTLOAD4.ogg
Normal file
BIN
src/main/resources/assets/hbm/textures/items/assembly_308.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
src/main/resources/assets/hbm/textures/items/assembly_45.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
BIN
src/main/resources/assets/hbm/textures/items/bolt_staballoy.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 350 B |
|
After Width: | Height: | Size: 481 B |
BIN
src/main/resources/assets/hbm/textures/models/weapons/M2.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 320 B |