gunbase framework, gun and bullet config classes

This commit is contained in:
HbmMods 2019-01-04 17:43:40 +01:00
parent ed767ef578
commit 6cc0003312
20 changed files with 454 additions and 109 deletions

View File

@ -489,6 +489,9 @@ tile.machine_rtg_cyan.name=Schrabidium-Zerfallsenergie-Generator (WIP)
tile.machine_rtg_blue.name=Konvektionsgenerator
tile.machine_rtg_purple.name=Paarvernichtungsgenerator
tile.machine_waste_drum.name=Abklingbecken-Trommel
container.wasteDrum=Abklingbecken-Trommel
tile.machine_spp_bottom.name=NPE-Potentialgenerator (Unterteil)
tile.machine_spp_top.name=NPE-Potentialgenerator (Oberteil)
@ -598,6 +601,8 @@ item.plate_saturnite.name=Saturnitplatte
item.solid_fuel.name=Festbrennstoff
item.nugget_th232.name=Th232-Nugget
item.nugget_u233.name=U233-Nugget
item.nugget_u235.name=U235-Nugget
item.nugget_u238.name=U238-Nugget
item.nugget_pu238.name=Pu238-Nugget
@ -669,6 +674,7 @@ tile.block_sulfur.name=Schwefelblock
tile.block_titanium.name=Titanblock
tile.block_tungsten.name=Wolframblock
tile.block_uranium.name=Uranblock
tile.block_thorium.name=Thoriumblock
tile.block_trinitite.name=Trinititblock
tile.block_beryllium.name=Berylliumblock
tile.block_waste.name=Atommüllblock
@ -694,6 +700,7 @@ tile.ore_sulfur.name=Schwefelerz
tile.ore_titanium.name=Titanerz
tile.ore_tungsten.name=Wolframerz
tile.ore_uranium.name=Uranerz
tile.ore_thorium.name=Thoriumerz
tile.ore_schrabidium.name=Schrabidiumerz
tile.ore_beryllium.name=Berylliumerz
@ -995,7 +1002,9 @@ item.fluid_barrel_full.name=Flüssigkeitsfass:
item.fluid_barrel_infinite.name=Unendliches Fass
item.rod_empty.name=Leerer Brennstab
item.rod_th232.name=Th232-Brennstab
item.rod_uranium.name=Uranbrennstab
item.rod_u233.name=U233-Brennstab
item.rod_u235.name=U235-Brennstab
item.rod_u238.name=U238-Brennstab
item.rod_plutonium.name=Plutoniumbrennstab
@ -1015,7 +1024,9 @@ item.rod_daffergon.name=Daffergonbrennstab
item.rod_verticium.name=Verticiumbrennstab
item.rod_dual_empty.name=Leerer Doppelbrennstab
item.rod_dual_th232.name=Th232-Doppelbrennstab
item.rod_dual_uranium.name=Urandoppelbrennstab
item.rod_dual_u233.name=U233-Doppelbrennstab
item.rod_dual_u235.name=U235-Doppelbrennstab
item.rod_dual_u238.name=U238-Doppelbrennstab
item.rod_dual_plutonium.name=Plutoniumdoppelbrennstab
@ -1028,7 +1039,9 @@ item.rod_dual_schrabidium.name=Sa326-Doppelbrennstab
item.rod_dual_solinium.name=Sa327-Doppelbrennstab
item.rod_quad_empty.name=Leerer Vierfachbrennstab
item.rod_quad_th232.name=Th232-Vierfachbrennstab
item.rod_quad_uranium.name=Uranvierfachbrennstab
item.rod_quad_u233.name=U233-Vierfachbrennstab
item.rod_quad_u235.name=U235-Vierfachbrennstab
item.rod_quad_u238.name=U238-Vierfachbrennstab
item.rod_quad_plutonium.name=Plutoniumvierfachbrennstab
@ -1043,6 +1056,9 @@ item.rod_quad_solinium.name=Sa327-Vierfachbrennstab
item.rod_uranium_fuel_depleted.name=Erschöpfte Urankernbrennstoffzelle
item.rod_dual_uranium_fuel_depleted.name=Erschöpfte Urandoppelkernbrennstoffzelle
item.rod_quad_uranium_fuel_depleted.name=Erschöpfte Uranvierfachkernbrennstoffzelle
item.rod_thorium_fuel_depleted.name=Erschöpfte Thoriumkernbrennstoffzelle
item.rod_dual_thorium_fuel_depleted.name=Erschöpfte Thoriumdoppelkernbrennstoffzelle
item.rod_quad_thorium_fuel_depleted.name=Erschöpfte Thoriumvierfachkernbrennstoffzelle
item.rod_plutonium_fuel_depleted.name=Erschöpfte Plutoniumkernbrennstoffzelle
item.rod_dual_plutonium_fuel_depleted.name=Erschöpfte Plutoniumdoppelkernbrennstoffzelle
item.rod_quad_plutonium_fuel_depleted.name=Erschöpfte Plutoniumvierfachkernbrennstoffzelle
@ -1107,6 +1123,7 @@ tile.waste_planks.name=Verkohlte Holzbretter
item.trinitite.name=Trinitit
item.nuclear_waste.name=Atommüll
item.nuclear_waste_tiny.name=Kleiner Haufen Atommüll
item.waste_uranium.name=Erschöpfter Urankernbrennstoff
item.waste_thorium.name=Erschöpfter Thoriumkernbrennstoff
item.waste_plutonium.name=Erschöpfter Plutoniumkernbrennstoff
@ -1126,6 +1143,7 @@ item.ingot_mox_fuel.name=MOX-Kernbrennstoffbarren
item.ingot_schrabidium_fuel.name=Schrabidiumkernbrennstoffbarren
item.nugget_uranium_fuel.name=Urankernbrennstoffnugget
item.nugget_thorium_fuel.name=Thoriumkernbrennstoffnugget
item.nugget_plutonium_fuel.name=Plutoniumkernbrennstoffnugget
item.nugget_mox_fuel.name=MOX-Kernbrennstoffnugget
item.nugget_schrabidium_fuel.name=Schrabidiumkernbrennstoffnugget
@ -1177,6 +1195,9 @@ item.grenade_if_null.name=IF - Null-Granate
item.rod_uranium_fuel.name=Urankernbrennstoffzelle
item.rod_dual_uranium_fuel.name=Doppelte Urankernbrennstoffzelle
item.rod_quad_uranium_fuel.name=Vierfache Urankernbrennstoffzelle
item.rod_thorium_fuel.name=Thoriumkernbrennstoffzelle
item.rod_dual_thorium_fuel.name=Doppelte Thoriumkernbrennstoffzelle
item.rod_quad_thorium_fuel.name=Vierfache Thoriumkernbrennstoffzelle
item.rod_plutonium_fuel.name=Plutoniumkernbrennstoffzelle
item.rod_dual_plutonium_fuel.name=Doppelte Plutoniumkernbrennstoffzelle
item.rod_quad_plutonium_fuel.name=Vierfache Plutoniumkernbrennstoffzelle
@ -1358,6 +1379,7 @@ item.clip_emp.name=Magnetsteifen mit Energiezellen
item.clip_revolver_nightmare.name=Sack voll Kugeln
item.clip_revolver_nightmare2.name=Munitionsgürtel mit Laserschrot
item.clip_revolver_pip.name=Speedloader mit verdorbenen Patronen
item.clip_revolver_nopip.name=.44 Magnum Patronen
item.clip_stinger.name=Dreierpack Stinger-Raketen
item.clip_jack.name=12x70 Vierfache Schrotpatronenbox
item.clip_spark.name=Große Elektromagnetische Katusche
@ -1679,6 +1701,11 @@ tile.vent_chlorine.name=Chlorgas-Auslass
tile.vent_cloud.name=Wolken-Auslass
tile.vent_pink_cloud.name=Pinker Wolken-Auslass
tile.absorber.name=Strahlungs-Absorber
tile.absorber_red.name=Verbesserter Strahlungs-Absorber
tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber
tile.absorber_pink.name=Elite Strahlungs-Absorber
item.schrabidium_hammer.name=Schrabidiumhammer
item.shimmer_sledge.name=Shimmer Sledge
item.shimmer_axe.name=Shimmer Axe

View File

@ -489,6 +489,9 @@ tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP)
tile.machine_rtg_blue.name=Convection Generator
tile.machine_rtg_purple.name=Antimatter Annihilation Generator
tile.machine_waste_drum.name=Spent Fuel Pool Drum
container.wasteDrum=Spent Fuel Pool Drum
tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom)
tile.machine_spp_top.name=ZPE Potential Generator (Top)
@ -598,6 +601,8 @@ item.plate_saturnite.name=Saturnite Plate
item.solid_fuel.name=Solid Fuel
item.nugget_th232.name=Th232 Nugget
item.nugget_u233.name=U233 Nugget
item.nugget_u235.name=U235 Nugget
item.nugget_u238.name=U238 Nugget
item.nugget_pu238.name=Pu238 Nugget
@ -669,6 +674,7 @@ tile.block_sulfur.name=Block of Sulfur
tile.block_titanium.name=Block of Titanium
tile.block_tungsten.name=Block of Tungsten
tile.block_uranium.name=Block of Uranium
tile.block_thorium.name=Block of Thorium
tile.block_trinitite.name=Block of Trinitite
tile.block_beryllium.name=Block of Beryllium
tile.block_waste.name=Block of Nuclear Waste
@ -694,6 +700,7 @@ tile.ore_sulfur.name=Sulfur Ore
tile.ore_titanium.name=Titanium Ore
tile.ore_tungsten.name=Tungsten Ore
tile.ore_uranium.name=Uranium Ore
tile.ore_thorium.name=Thorium Ore
tile.ore_schrabidium.name=Schrabidium Ore
tile.ore_beryllium.name=Beryllium Ore
@ -995,7 +1002,9 @@ item.fluid_barrel_full.name=Fluid Barrel:
item.fluid_barrel_infinite.name=Infinite Fluid Barrel
item.rod_empty.name=Empty Rod
item.rod_th232.name=Th232 Rod
item.rod_uranium.name=Uranium Rod
item.rod_u233.name=U233 Rod
item.rod_u235.name=U235 Rod
item.rod_u238.name=U238 Rod
item.rod_plutonium.name=Plutonium Rod
@ -1015,7 +1024,9 @@ item.rod_daffergon.name=Daffergon Rod
item.rod_verticium.name=Verticium Rod
item.rod_dual_empty.name=Empty Dual Rod
item.rod_dual_th232.name=Th232 Dual Rod
item.rod_dual_uranium.name=Uranium Dual Fuel Rod
item.rod_dual_u233.name=U233 Dual Rod
item.rod_dual_u235.name=U235 Dual Rod
item.rod_dual_u238.name=U238 Dual Rod
item.rod_dual_plutonium.name=Plutonium Dual Rod
@ -1028,7 +1039,9 @@ item.rod_dual_schrabidium.name=Sa326 Dual Rod
item.rod_dual_solinium.name=Sa327 Dual Rod
item.rod_quad_empty.name=Empty Quad Rod
item.rod_quad_th232.name=Th232 Quad Rod
item.rod_quad_uranium.name=Uranium Quad Rod
item.rod_quad_u233.name=U233 Quad Rod
item.rod_quad_u235.name=U235 Quad Rod
item.rod_quad_u238.name=U238 Quad Rod
item.rod_quad_plutonium.name=Plutonium Quad Rod
@ -1043,6 +1056,9 @@ item.rod_quad_solinium.name=Sa327 Quad Rod
item.rod_uranium_fuel_depleted.name=Depleted Uranium Fuel Rod
item.rod_dual_uranium_fuel_depleted.name=Depleted Uranium Dual Fuel Rod
item.rod_quad_uranium_fuel_depleted.name=Depleted Uranium Quad Fuel Rod
item.rod_thorium_fuel_depleted.name=Depleted Thorium Fuel Rod
item.rod_dual_thorium_fuel_depleted.name=Depleted Thorium Dual Fuel Rod
item.rod_quad_thorium_fuel_depleted.name=Depleted Thorium Quad Fuel Rod
item.rod_plutonium_fuel_depleted.name=Depleted Plutonium Fuel Rod
item.rod_dual_plutonium_fuel_depleted.name=Depleted Plutonium Dual Fuel Rod
item.rod_quad_plutonium_fuel_depleted.name=Depleted Plutonium Quad Fuel Rod
@ -1107,6 +1123,7 @@ tile.waste_planks.name=Charred Wooden Planks
item.trinitite.name=Trinitite
item.nuclear_waste.name=Nuclear Waste
item.nuclear_waste_tiny.name=Tiny Pile of Nuclear Waste
item.waste_uranium.name=Depleted Uranium Fuel
item.waste_thorium.name=Depleted Thorium Fuel
item.waste_plutonium.name=Depleted Plutonium Fuel
@ -1126,6 +1143,7 @@ item.ingot_mox_fuel.name=Ingot of MOX Fuel
item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel
item.nugget_uranium_fuel.name=Nugget of Uranium Fuel
item.nugget_thorium_fuel.name=Nugget of Thorium Fuel
item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel
item.nugget_mox_fuel.name=Nugget of MOX Fuel
item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel
@ -1177,6 +1195,9 @@ item.grenade_if_null.name=IF - Null Grenade
item.rod_uranium_fuel.name=Uranium Fuel Rod
item.rod_dual_uranium_fuel.name=Uranium Dual Fuel Rod
item.rod_quad_uranium_fuel.name=Uranium Quad Fuel Rod
item.rod_thorium_fuel.name=Thorium Fuel Rod
item.rod_dual_thorium_fuel.name=Thorium Dual Fuel Rod
item.rod_quad_thorium_fuel.name=Thorium Quad Fuel Rod
item.rod_plutonium_fuel.name=Plutonium Fuel Rod
item.rod_dual_plutonium_fuel.name=Plutonium Dual Fuel Rod
item.rod_quad_plutonium_fuel.name=Plutonium Quad Fuel Rod
@ -1358,6 +1379,7 @@ item.clip_emp.name=Small Pack of Energy Cells
item.clip_revolver_nightmare.name=Bag of Bullets
item.clip_revolver_nightmare2.name=Belt with Laser Buckshot
item.clip_revolver_pip.name=Speedloader with Tainted Bullets
item.clip_revolver_nopip.name=Box of .44 Rounds
item.clip_stinger.name=Pack of Stinger Rockets
item.clip_jack.name=Box of Quadruple 12x70 Buckshot Rounds
item.clip_spark.name=Large Electromagnetic Cartridge
@ -1679,6 +1701,11 @@ tile.vent_chlorine.name=Chlorine Vent
tile.vent_cloud.name=Cloud Vent
tile.vent_pink_cloud.name=Pink Cloud Vent
tile.absorber.name=Radiation Absorber
tile.absorber_red.name=Enhanced Radiation Absorber
tile.absorber_green.name=Advanced Radiation Absorber
tile.absorber_pink.name=Elite Radiation Absorber
item.schrabidium_hammer.name=Schrabidium Hammer
item.shimmer_sledge.name=Shimmer Sledge
item.shimmer_axe.name=Shimmer Axe

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -120,17 +120,17 @@ public class ToxicBlock extends BlockFluidClassic {
super.onNeighborBlockChange(world, x, y, z, block);
if(reactToBlocks(world, x + 1, y, z))
world.setBlock(x, y, z, ModBlocks.sellafield_0);
world.setBlock(x, y, z, ModBlocks.sellafield_slaked);
if(reactToBlocks(world, x - 1, y, z))
world.setBlock(x, y, z, ModBlocks.sellafield_0);
world.setBlock(x, y, z, ModBlocks.sellafield_slaked);
if(reactToBlocks(world, x, y + 1, z))
world.setBlock(x, y, z, ModBlocks.sellafield_0);
world.setBlock(x, y, z, ModBlocks.sellafield_slaked);
if(reactToBlocks(world, x, y - 1, z))
world.setBlock(x, y, z, ModBlocks.sellafield_0);
world.setBlock(x, y, z, ModBlocks.sellafield_slaked);
if(reactToBlocks(world, x, y, z + 1))
world.setBlock(x, y, z, ModBlocks.sellafield_0);
world.setBlock(x, y, z, ModBlocks.sellafield_slaked);
if(reactToBlocks(world, x, y, z - 1))
world.setBlock(x, y, z, ModBlocks.sellafield_0);
world.setBlock(x, y, z, ModBlocks.sellafield_slaked);
}
public boolean reactToBlocks(World world, int x, int y, int z) {

View File

@ -0,0 +1,39 @@
package com.hbm.entity.projectile;
import net.minecraft.entity.Entity;
import net.minecraft.entity.IProjectile;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class EntityBulletBase extends Entity implements IProjectile {
public EntityBulletBase(World p_i1582_1_) {
super(p_i1582_1_);
}
@Override
public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_,
float p_70186_8_) {
// TODO Auto-generated method stub
}
@Override
protected void entityInit() {
// TODO Auto-generated method stub
}
@Override
protected void readEntityFromNBT(NBTTagCompound p_70037_1_) {
// TODO Auto-generated method stub
}
@Override
protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {
// TODO Auto-generated method stub
}
}

View File

@ -4,6 +4,21 @@ import net.minecraft.item.Item;
public class BulletConfiguration {
//what item this specific configuration consumes
public Item ammo;
//damage bounds
public float dmgMin;
public float dmgMax;
//whether the projectile should be able to bounce off of blocks
public boolean doesRicochet;
//the maximum angle at which the projectile should bounce
public double ricochetAngle;
//whether or not the bullet should penetrate mobs
public boolean doesPenetrate;
//whether or not the bullet should break glass
public boolean doesBreakGlass;
}

View File

@ -6,22 +6,25 @@ public class GunConfiguration {
//amount of ticks between each bullet
public int rateOfFire;
public int rateOfFireAlt;
//greatest amount of pellets created each shot
public int bulletsMin;
public int bulletsMinAlt;
//least amount of pellets created each shot
public int bulletsMax;
public int bulletsMaxAlt;
//0 = normal, 1 = release, 2 = both
public int gunMode;
//0 = manual, 1 = automatic
public int firingMode;
//spread of bullets in gaussian range
public float spread;
//whether or not there is a reload delay animation
public boolean hasReloadAnim;
//whether or not there is a firing delay with animation
public boolean hasFiringAnim;
//whether there is a warmup duration for spinup
public boolean hasSpinup;
//whether there is a cooldown duration for spindown
public boolean hasSpindown;
//how long the reload animation will play
public int reloadDuration;
@ -32,8 +35,10 @@ public class GunConfiguration {
public int ammoCap;
//0 does not allow direct reload, 1 is full clip, 2 is single bullet
public int reloadType;
//whether or not the infinity enchantment should work
public boolean allowsInfinity;
public List<BulletConfiguration> bConfig;
public List<BulletConfiguration> altConfig;
//bullet configs for main and alt fire
public List<BulletConfiguration> config;
}

View File

@ -74,7 +74,7 @@ public class ItemBattery extends Item {
return EnumRarity.common;
}
public void chargeBattery(ItemStack stack, int i) {
public void chargeBattery(ItemStack stack, long i) {
if(stack.getItem() instanceof ItemBattery) {
if(stack.hasTagCompound()) {
stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") + i);
@ -85,7 +85,7 @@ public class ItemBattery extends Item {
}
}
public void setCharge(ItemStack stack, int i) {
public void setCharge(ItemStack stack, long i) {
if(stack.getItem() instanceof ItemBattery) {
if(stack.hasTagCompound()) {
stack.stackTagCompound.setLong("charge", i);
@ -96,7 +96,7 @@ public class ItemBattery extends Item {
}
}
public void dischargeBattery(ItemStack stack, int i) {
public void dischargeBattery(ItemStack stack, long i) {
if(stack.getItem() instanceof ItemBattery) {
if(stack.hasTagCompound()) {
stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i);

View File

@ -674,19 +674,6 @@ public class ItemCustomLore extends ItemRadioactive {
if(this == ModItems.key_red)
{
if(MainRegistry.polaroidID == 11) {
list.add("ard lock is ~10%5Success ra");
list.add("Antimatter +15");
list.add("ced resource scanner.27Production x4 / Co");
list.add("this == ModItems.watch || this == ModI");
list.add("list.add(\"Woo, scary!\");");
list.add(EnumChatFormatting.OBFUSCATED + "//list.add(\"Blue horse beats yellow horse, look it up!\");");
list.add("ion -60 / Delay +1019All hail");
list.add("bank angle bank angle bank angle");
list.add("'M");
list.add("");
list.add("bank angle bank angle bank angle");
list.add("bank angle bank angle bank angle");
list.add("");
list.add(EnumChatFormatting.DARK_RED + "" + EnumChatFormatting.BOLD + "e");
} else {
list.add("Explore the other side.");

View File

@ -7,6 +7,7 @@ import com.google.common.collect.Multimap;
import com.hbm.entity.projectile.EntityBullet;
import com.hbm.interfaces.IHoldableWeapon;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
@ -17,6 +18,7 @@ import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.event.entity.player.ArrowNockEvent;
@ -31,7 +33,7 @@ public class GunLacunae extends Item implements IHoldableWeapon {
@Override
public EnumAction getItemUseAction(ItemStack par1ItemStack) {
return EnumAction.bow;
return EnumAction.none;
}
@Override
@ -100,14 +102,28 @@ public class GunLacunae extends Item implements IHoldableWeapon {
list.add("The perfect gift for the man who has everything.");
if(this == ModItems.gun_avenger)
list.add("Interloper! No quarter shall be shown hither, fiend!");
if(this == ModItems.gun_lacunae)
list.add("Auntie Lacunae to the rescue!");
if(this == ModItems.gun_lacunae) {
list.add("Whoa, wait, what's that sound? Do you hear that?");
list.add("I think that's silence! That's the sound people make");
list.add("when everyone trying to kill me is dead!");
list.add("And I have a minigun!");
}
list.add("");
list.add("Ammo: 5mm Round");
list.add("Damage: 5");
}
public String getItemStackDisplayName(ItemStack stack)
{
if(this == ModItems.gun_lacunae && MainRegistry.polaroidID == 11)
return "CZ97 Lacunae";
return super.getItemStackDisplayName(stack);
}
@Override
public Multimap getItemAttributeModifiers() {
Multimap multimap = super.getItemAttributeModifiers();

View File

@ -278,7 +278,9 @@ public class GunRevolver extends Item {
list.add("Damage: 25 - 35");
}
if (this == ModItems.gun_revolver_blackjack) {
list.add("Hol on-");
list.add("Contents under pressure.");
list.add("Extremely volatile.");
list.add("Handle with care!");
list.add("");
list.add("Ammo: .44 Magnum");
list.add("Damage: 35 - 45");

View File

@ -1,9 +1,193 @@
package com.hbm.items.weapon;
import java.util.List;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import com.hbm.handler.GunConfiguration;
import com.hbm.interfaces.IHoldableWeapon;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class ItemGunBase extends Item implements IHoldableWeapon {
private GunConfiguration mainConfig;
private GunConfiguration altConfig;
@Override
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
return stack;
}
@Override
public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) {
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
boolean left = getIsMouseDown(stack);
boolean right = getIsAltDown(stack);
if(left && right) {
//TODO: stop both with packet
setIsMouseDown(stack, false);
setIsAltDown(stack, false);
}
if(!left && !right) {
if(Mouse.isButtonDown(0)) {
//TODO: start with packet
setIsMouseDown(stack, true);
} else if(Mouse.isButtonDown(0)) {
//TODO: start with packet
setIsAltDown(stack, true);
}
}
if(left && !Mouse.isButtonDown(0)) {
//TODO: stop with packet
setIsMouseDown(stack, false);
}
if(right && !Mouse.isButtonDown(1)) {
//TODO: stop with packet
setIsAltDown(stack, false);
}
if(mainConfig.reloadType != 0 || (altConfig != null && altConfig.reloadType != 0)) {
if(Keyboard.isKeyDown(Keyboard.KEY_R)) {
}
//TODO: reload with packet
}
} else {
}
}
//called every time the gun shoots
private void fire(ItemStack stack, World world, EntityPlayer player) {
}
//called on right click
private void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) {
}
//called on right click release
private void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) {
}
//reload action, if existent
private void reload(ItemStack stack, World world, EntityPlayer player) {
}
//item mouseover text
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
}
/// if reloading routine is active ///
public static void setIsReloading(ItemStack stack, boolean b) {
writeNBT(stack, "isReloading", b ? 1 : 0);
}
public static boolean getIsReloading(ItemStack stack) {
return readNBT(stack, "isReloading") == 1;
}
/// if left mouse button is down ///
public static void setIsMouseDown(ItemStack stack, boolean b) {
writeNBT(stack, "isMouseDown", b ? 1 : 0);
}
public static boolean getIsMouseDown(ItemStack stack) {
return readNBT(stack, "isMouseDown") == 1;
}
/// if alt mouse button is down ///
public static void setIsAltDown(ItemStack stack, boolean b) {
writeNBT(stack, "isMouseDown", b ? 1 : 0);
}
public static boolean getIsAltDown(ItemStack stack) {
return readNBT(stack, "isMouseDown") == 1;
}
/// RoF cooldown ///
public static void setDelay(ItemStack stack, int i) {
writeNBT(stack, "dlay", i);
}
public static int getDelay(ItemStack stack) {
return readNBT(stack, "dlay");
}
/// R/W cycle animation timer ///
public static void setCycleAnim(ItemStack stack, int i) {
writeNBT(stack, "cycle", i);
}
public static int getCycleAnim(ItemStack stack) {
return readNBT(stack, "cycle");
}
/// R/W reload animation timer ///
public static void setReloadAnim(ItemStack stack, int i) {
writeNBT(stack, "reload", i);
}
public static int getReloadAnim(ItemStack stack) {
return readNBT(stack, "reload");
}
/// magazine capacity ///
public static void setMag(ItemStack stack, int i) {
writeNBT(stack, "magazine", i);
}
public static int getMag(ItemStack stack) {
return readNBT(stack, "magazine");
}
/// magazine type (int specified by index in bullet config list) ///
public static void setMagType(ItemStack stack, int i) {
writeNBT(stack, "magazineType", i);
}
public static int getMagType(ItemStack stack) {
return readNBT(stack, "magazineType");
}
/// NBT utility ///
private static void writeNBT(ItemStack stack, String key, int value) {
if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound();
stack.stackTagCompound.setInteger(key, value);
}
private static int readNBT(ItemStack stack, String key) {
if(!stack.hasTagCompound())
return 0;
return stack.stackTagCompound.getInteger(key);
}
}

View File

@ -656,13 +656,15 @@ public class Library {
if(slots[index] != null && slots[index].getItem() instanceof ItemBattery) {
long dR = ((ItemBattery)slots[index].getItem()).getChargeRate();
System.out.println(dR + "");
while(dR >= 1000000000000L) {
if(power - 100000000000000L >= 0 && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge())
{
power -= 100000000000000L;
dR -= 1000000000000L;
((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1);
((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1000000000000L);
} else break;
}
while(dR >= 1000000000) {
@ -670,7 +672,7 @@ public class Library {
{
power -= 100000000000L;
dR -= 1000000000;
((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1);
((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1000000000);
} else break;
}
while(dR >= 1000000) {
@ -678,7 +680,7 @@ public class Library {
{
power -= 100000000;
dR -= 1000000;
((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1);
((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1000000);
} else break;
}
while(dR >= 1000) {
@ -686,7 +688,7 @@ public class Library {
{
power -= 100000;
dR -= 1000;
((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1);
((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1000);
} else break;
}
while(dR >= 1) {
@ -768,7 +770,7 @@ public class Library {
{
power += 100000000000000L;
dR -= 1000000000000L;
((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], 1);
((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], 1000000000000L);
} else break;
}
while(dR >= 1000000000) {
@ -776,7 +778,7 @@ public class Library {
{
power += 100000000000L;
dR -= 1000000000L;
((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], 1);
((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], 1000000000);
} else break;
}
while(dR >= 1000000) {
@ -784,7 +786,7 @@ public class Library {
{
power += 100000000L;
dR -= 1000000;
((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], 1);
((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], 1000000);
} else break;
}
while(dR >= 1000) {
@ -792,7 +794,7 @@ public class Library {
{
power += 100000L;
dR -= 1000;
((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], 1);
((ItemBattery)slots[index].getItem()).dischargeBattery(slots[index], 1000);
} else break;
}
while(dR >= 1) {

View File

@ -605,9 +605,10 @@ public class CraftingManager {
//GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_well), 1), new Object[] { "TPM", "GPG", "GDG", 'T', ModItems.tank_steel, 'P', ModItems.pipes_steel, 'M', ModItems.motor, 'G', ModBlocks.steel_scaffold, 'D', ModItems.drill_titanium });
//GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_flare), 1), new Object[] { "UHU", "GPG", "GTG", 'U', ModItems.thermo_element, 'H', ModItems.hull_small_steel, 'G', ModBlocks.steel_scaffold, 'P', ModItems.pipes_steel, 'T', ModItems.tank_steel });
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_refinery), 1), new Object[] { "PTP", "CTC", "WFW", 'P', "plateTitanium", 'T', ModItems.tank_steel, 'C', ModItems.coil_tungsten, 'W', ModBlocks.red_wire_coated, 'F', ModBlocks.machine_electric_furnace_off }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.crate_iron), 1), new Object[] { "PPP", "I I", "III", 'P', "plateIron", 'I', "ingotIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.crate_steel), 1), new Object[] { "PPP", "I I", "III", 'P', "plateSteel", 'I', "ingotSteel" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.safe), 1), new Object[] { "LAL", "ACA", "LAL", 'L', "plateLead", 'A', "plateAdvanced", 'C', ModBlocks.crate_steel }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', "plateIron", 'I', "ingotIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', "plateSteel", 'I', "ingotSteel" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', "plateLead", 'A', "plateAdvanced", 'C', ModBlocks.crate_steel }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', "ingotLead", 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', "ingotIron", 'R', Blocks.furnace, 'B', "blockIron", 'P', Blocks.piston }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', "plateSteel", 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper, 'R', "dustRedstone" }));
@ -840,7 +841,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.ingot_u235, 'G', Items.gunpowder, 'C', "paneGlassColorless", 'P', ModItems.primer_357 }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.ingot_pu239, 'G', Items.gunpowder, 'C', "paneGlassColorless", 'P', ModItems.primer_357 }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.trinitite, 'G', Items.gunpowder, 'C', "paneGlassColorless", 'P', ModItems.primer_357 }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.nuclear_waste, 'G', Items.gunpowder, 'C', "paneGlassColorless", 'P', ModItems.primer_357 }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.nuclear_waste_tiny, 'G', Items.gunpowder, 'C', "paneGlassColorless", 'P', ModItems.primer_357 }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_gold, 16), new Object[] { " I", "GC", " P", 'I', "ingotGold", 'G', Items.gunpowder, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_schrabidium, 16), new Object[] { " I ", "GCN", " P ", 'I', "ingotSchrabidium", 'G', Items.gunpowder, 'C', ModItems.casing_357, 'P', ModItems.primer_357, 'N', Items.nether_star }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nightmare, 16), new Object[] { " I", "GC", " P", 'I', "ingotTungsten", 'G', Items.gunpowder, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }));
@ -1430,6 +1431,14 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ModItems.plate_polymer, 'P', "plateSaturnite", 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', ModItems.wire_tungsten, 'P', "plateLead", 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.magnetron }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "PGP", "ICI", "PRP", 'P', "plateDesh", 'G', "paneGlass", 'I', "ingotPolymer", 'R', "blockRedstone", 'C', ModItems.circuit_targeting_tier4 }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', "blockSteel", 'I', "ingotPolymer", 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_avenger, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', "blockBeryllium", 'I', "ingotDesh", 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }));
GameRegistry.addRecipe(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', ModItems.ingot_starmetal, 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', "ingotCopper", 'C', "dustCoal", 'P', "dustLead" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.absorber_red, 1), new Object[] { "ICI", "CPC", "ICI", 'I', "ingotTitanium", 'C', "dustCoal", 'P', ModBlocks.absorber }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.absorber_green, 1), new Object[] { "ICI", "CPC", "ICI", 'I', "ingotPolymer", 'C', ModItems.powder_desh_mix, 'P', ModBlocks.absorber_red }));
GameRegistry.addRecipe(new ItemStack(ModBlocks.absorber_pink, 1), new Object[] { "ICI", "CPC", "ICI", 'I', ModItems.ingot_saturnite, 'C', ModItems.powder_nitan_mix, 'P', ModBlocks.absorber_green });
GameRegistry.addShapelessRecipe(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.assembly_template, 1, OreDictionary.WILDCARD_VALUE) });
GameRegistry.addShapelessRecipe(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.chemistry_template, 1, OreDictionary.WILDCARD_VALUE) });

View File

@ -128,49 +128,75 @@ public class AuxButtonPacket implements IMessage {
if(m.id == 1)
control.auto = m.value == 1;
TileEntity reac = p.worldObj.getTileEntity(control.linkX, control.linkY, control.linkZ);
if(control.linkY > -1) {
TileEntity reac = p.worldObj.getTileEntity(control.linkX, control.linkY, control.linkZ);
if (reac instanceof TileEntityMachineReactorSmall) {
TileEntityMachineReactorSmall reactor = (TileEntityMachineReactorSmall)reac;
System.out.println(m.id + "/" + m.value);
if(m.id == 0)
reactor.retracting = m.value == 0;
if(m.id == 2) {
FluidType type = FluidType.STEAM;
int fill = reactor.tanks[2].getFill();
switch(m.value) {
case 0: type = FluidType.STEAM; fill = (int)Math.floor(fill * 100); break;
case 1: type = FluidType.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 2: type = FluidType.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
}
if(fill > reactor.tanks[2].getMaxFill())
fill = reactor.tanks[2].getMaxFill();
reactor.tanks[2].setTankType(type);
reactor.tanks[2].setFill(fill);
}
}
if (reac instanceof TileEntityMachineReactorLarge) {
TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)reac;
if(m.id == 0) {
reactor.rods = m.value;
}
if(m.id == 2) {
FluidType type = FluidType.STEAM;
int fill = reactor.tanks[2].getFill();
switch(m.value) {
case 0: type = FluidType.STEAM; fill = (int)Math.floor(fill * 100); break;
case 1: type = FluidType.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 2: type = FluidType.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
}
if(fill > reactor.tanks[2].getMaxFill())
fill = reactor.tanks[2].getMaxFill();
reactor.tanks[2].setTankType(type);
reactor.tanks[2].setFill(fill);
}
}
}
if (reac instanceof TileEntityMachineReactorSmall) {
TileEntityMachineReactorSmall reactor = (TileEntityMachineReactorSmall)reac;
System.out.println(m.id + "/" + m.value);
if (te instanceof TileEntityMachineReactorLarge) {
TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)te;
if(m.id == 0)
reactor.retracting = m.value == 0;
if(m.id == 2) {
FluidType type = FluidType.STEAM;
int fill = reactor.tanks[2].getFill();
switch(m.value) {
case 0: type = FluidType.STEAM; fill = (int)Math.floor(fill * 100); break;
case 1: type = FluidType.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 2: type = FluidType.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
}
if(fill > reactor.tanks[2].getMaxFill())
fill = reactor.tanks[2].getMaxFill();
reactor.tanks[2].setTankType(type);
reactor.tanks[2].setFill(fill);
}
}
if (reac instanceof TileEntityMachineReactorLarge) {
TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)reac;
if(m.id == 0) {
reactor.rods = m.value;
}
if(m.id == 2) {
if(m.id == 1) {
FluidType type = FluidType.STEAM;
int fill = reactor.tanks[2].getFill();
switch(m.value) {
case 0: type = FluidType.STEAM; fill = (int)Math.floor(fill * 100); break;
case 1: type = FluidType.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 2: type = FluidType.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 0: type = FluidType.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 1: type = FluidType.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 2: type = FluidType.STEAM; fill = (int)Math.floor(fill * 100); break;
}
if(fill > reactor.tanks[2].getMaxFill())
@ -182,30 +208,6 @@ public class AuxButtonPacket implements IMessage {
}
}
if (te instanceof TileEntityMachineReactorLarge) {
TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)te;
if(m.id == 0)
reactor.rods = m.value;
if(m.id == 1) {
FluidType type = FluidType.STEAM;
int fill = reactor.tanks[2].getFill();
switch(m.value) {
case 0: type = FluidType.HOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 1: type = FluidType.SUPERHOTSTEAM; fill = (int)Math.floor(fill / 10D); break;
case 2: type = FluidType.STEAM; fill = (int)Math.floor(fill * 100); break;
}
if(fill > reactor.tanks[2].getMaxFill())
fill = reactor.tanks[2].getMaxFill();
reactor.tanks[2].setTankType(type);
reactor.tanks[2].setFill(fill);
}
}
//} catch (Exception x) { }
return null;

View File

@ -136,8 +136,9 @@ public class ItemRenderOverkill implements IItemRenderer {
if(item.getItem() == ModItems.gun_lacunae ||
item.getItem() == ModItems.gun_minigun ||
item.getItem() == ModItems.gun_avenger) {
GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(180, 0, 1, 0);
GL11.glTranslatef(0.0F, 0.3F, -0.2F);
GL11.glTranslatef(0.5F, 0.3F, -0.2F);
}
if(item.getItem() == ModItems.gun_jack)
@ -250,7 +251,8 @@ public class ItemRenderOverkill implements IItemRenderer {
if(item.getItem() == ModItems.gun_lacunae ||
item.getItem() == ModItems.gun_minigun ||
item.getItem() == ModItems.gun_avenger) {
GL11.glRotatef(180, 0, 1, 0);
GL11.glRotatef(5.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(185, 0, 1, 0);
GL11.glTranslatef(0.5F, 0.6F, 0.2F);
}

View File

@ -53,7 +53,9 @@ public class ItemRenderUZI implements IItemRenderer {
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F);
GL11.glScalef(0.25F, 0.25F, 0.25F);
GL11.glTranslatef(-2.2F, -0.2F, -0.9F);
GL11.glTranslatef(-2.5F, -0.5F, -0.9F);
GL11.glRotatef(-15.0F, 0.0F, 0.0F, 1.0F);
if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer)
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png"));
@ -75,17 +77,43 @@ public class ItemRenderUZI implements IItemRenderer {
GL11.glPopMatrix();
break;
case EQUIPPED:
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F);
GL11.glScalef(0.5F, 0.5F, 0.5F);
GL11.glTranslatef(0.2F, -0.8F, -1.0F);
if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer)
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png"));
if(item.getItem() == ModItems.gun_uzi_saturnite || item.getItem() == ModItems.gun_uzi_saturnite_silencer)
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSaturnite.png"));
uzi.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_saturnite) {
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziBarrel.png"));
barrel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
}
if(item.getItem() == ModItems.gun_uzi_silencer || item.getItem() == ModItems.gun_uzi_saturnite_silencer) {
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUziSilencer.png"));
silencer.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F);
}
GL11.glPopMatrix();
break;
case ENTITY:
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
GL11.glScalef(0.5F, 0.5F, 0.5F);
GL11.glTranslatef(0.2F, -0.8F, -1.0F);
GL11.glTranslatef(0.0F, -1.0F, 0.0F);
if(item.getItem() == ModItems.gun_uzi || item.getItem() == ModItems.gun_uzi_silencer)
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelUzi.png"));