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.
This commit is contained in:
UFFR 2022-10-13 00:08:35 -04:00
parent 65a704eb2f
commit fb1c4fff40
No known key found for this signature in database
GPG Key ID: 1CDEFC5119049FC5
92 changed files with 191492 additions and 31 deletions

View File

@ -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;
}
}

View File

@ -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 });

View File

@ -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());

View File

@ -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>();

View File

@ -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>();

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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);

View File

@ -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")) {

View File

@ -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() {

View File

@ -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) {

View File

@ -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);
}
}

View File

@ -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());

View 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;
}
}

View 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;
}
}

View File

@ -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());

View File

@ -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");

View 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();
}
}

View 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();
}
}

View 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();
}
}

View 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();
}
}

View File

@ -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();
}
}

View 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();
}
}

View 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();
}
}

View 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();
}
}

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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}]},

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B