do you dare take a spookie dookie in the skoilet?
@ -33,6 +33,14 @@ public class WeaponRecipes {
|
||||
//SEDNA Parts
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_WOOD.id), new Object[] { "WWW", " W", 'W', KEY_PLANKS });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_WOOD.id), new Object[] { "W ", " W", " W", 'W', KEY_PLANKS });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_POLYMER.id), new Object[] { "WWW", " W", 'W', POLYMER.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_POLYMER.id), new Object[] { "W ", " W", " W", 'W', POLYMER.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_BAKELITE.id), new Object[] { "WWW", " W", 'W', BAKELITE.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_BAKELITE.id), new Object[] { "W ", " W", " W", 'W', BAKELITE.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_HARDPLASTIC.id), new Object[] { "WWW", " W", 'W', PC.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_HARDPLASTIC.id), new Object[] { "W ", " W", " W", 'W', PC.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_stock, 1, Mats.MAT_PVC.id), new Object[] { "WWW", " W", 'W', PVC.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.part_grip, 1, Mats.MAT_PVC.id), new Object[] { "W ", " W", " W", 'W', PVC.ingot() });
|
||||
|
||||
CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.casing, EnumCasingType.SHOTSHELL, 2), new Object[] { "P", "C", 'P', GUNMETAL.plate(), 'C', DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE) });
|
||||
CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.casing, EnumCasingType.BUCKSHOT, 2), new Object[] { "P", "C", 'P', ANY_PLASTIC.ingot(), 'C', DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE) });
|
||||
@ -45,12 +53,29 @@ public class WeaponRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_greasegun, 1), new Object[] { "BRS", "SMG", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'S', STEEL.bolt(), 'M', GUNMETAL.mechanism(), 'G', STEEL.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_maresleg, 1), new Object[] { "BRM", "BGS", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', STEEL.bolt(), 'S', WOOD.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flaregun, 1), new Object[] { "BRM", " G", 'B', STEEL.heavyBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', STEEL.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_heavy_revolver, 1), new Object[] { "BRM", " G", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_carbine, 1), new Object[] { "BRM", "G S", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_am180, 1), new Object[] { "BBR", "GMS", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_liberator, 1), new Object[] { "BB ", "BBM", "G G", 'B', DURA.lightBarrel(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "BM ", "BRS", "G ", 'B', DURA.heavyBarrel(), 'M', GUNMETAL.mechanism(), 'R', DURA.lightReceiver(), 'S', WOOD.stock(), 'G', WOOD.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { " MG", "BBR", " GM", 'M', GUNMETAL.mechanism(), 'G', DURA.grip(), 'B', DURA.heavyBarrel(), 'R', DURA.heavyReceiver() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_heavy_revolver, 1), new Object[] { "BRM", " G", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_carbine, 1), new Object[] { "BRM", "G S", 'B', DESH.lightBarrel(), 'R',DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "BRS", " GM", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'S', ANY_PLASTIC.stock(), 'G', ANY_PLASTIC.grip(), 'M', GUNMETAL.mechanism() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "BRM", "BGS", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', ANY_PLASTIC.grip(), 'S', DESH.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "BBB", "PGM", 'B', DESH.heavyBarrel(), 'P', STEEL.plateCast(), 'G', DESH.grip(), 'M', GUNMETAL.mechanism() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_g3, 1), new Object[] { "BRM", "WGS", 'B', WEAPONSTEEL.lightBarrel(), 'R', WEAPONSTEEL.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'W', WOOD.grip(), 'G', RUBBER.grip(), 'S', WOOD.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "BBB", "PGM", 'B', WEAPONSTEEL.heavyBarrel(), 'P', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'G', WEAPONSTEEL.grip(), 'M', WEAPONSTEEL.mechanism() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "MHW", "PSS", 'M', WEAPONSTEEL.mechanism(), 'H', RUBBER.pipe(), 'W', ModItems.wrench, 'P', WEAPONSTEEL.heavyBarrel(), 'S', WEAPONSTEEL.shell() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_m2, 1), new Object[] { " G", "BRM", " G", 'G', WOOD.grip(), 'B', FERRO.heavyBarrel(), 'R', FERRO.heavyReceiver(), 'M', WEAPONSTEEL.mechanism() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_autoshotgun, 1), new Object[] { "BRM", "G G", 'B', FERRO.heavyBarrel(), 'R', FERRO.heavyReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "BCB", "BMB", "GG ", 'B', FERRO.heavyBarrel(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lag, 1), new Object[] { "BRM", " G", 'B', ANY_RESISTANTALLOY.lightBarrel(), 'R', ANY_RESISTANTALLOY.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "BMG", "BRE", "BGM", 'B', ANY_RESISTANTALLOY.lightBarrel(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip(), 'R', ANY_RESISTANTALLOY.heavyReceiver(), 'E', ModItems.motor_desh });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_missile_launcher, 1), new Object[] { " CM", "BBB", "G ", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'M', WEAPONSTEEL.mechanism(), 'B', ANY_RESISTANTALLOY.heavyBarrel(), 'G', ANY_PLASTIC.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_tesla_cannon, 1), new Object[] { "CCC", "BRB", "MGE", 'C', ModItems.coil_advanced_alloy, 'B', ANY_RESISTANTALLOY.heavyBarrel(), 'R', ANY_RESISTANTALLOY.heavyReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip(), 'E', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stg77, 1), new Object[] { " D ", "BRS", "GM ", 'D', DIAMOND.gem(), 'B', BIGMT.lightBarrel(), 'R', BIGMT.lightReceiver(), 'S', ANY_HARDPLASTIC.stock(), 'G', ANY_HARDPLASTIC.grip(), 'M', BIGMT.mechanism() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "PPP", "BSR", "G M", 'P', BIGMT.plate(), 'B', BIGMT.heavyBarrel(), 'S', BIGMT.shell(), 'R', BIGMT.heavyReceiver(), 'G', ANY_HARDPLASTIC.grip(), 'M', BIGMT.mechanism() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_tau, 1), new Object[] { " RD", "CTT", "GMS", 'D', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'C', CU.pipe(), 'T', ModItems.coil_advanced_torus, 'G', ANY_HARDPLASTIC.grip(), 'R', BIGMT.lightReceiver(), 'M', BIGMT.mechanism(), 'S', ANY_HARDPLASTIC.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lasrifle, 1), new Object[] { "LC ", "BRS", "MG ", 'L', ModItems.crystal_redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'B', ANY_BISMOIDBRONZE.lightBarrel(), 'R', ANY_BISMOIDBRONZE.lightReceiver(), 'S', ANY_HARDPLASTIC.stock(), 'M', BIGMT.mechanism(), 'G', ANY_HARDPLASTIC.grip() });
|
||||
|
||||
//SEDNA Ammo
|
||||
CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE, 6), new Object[] { "C", "P", "G", 'C', KEY_COBBLESTONE, 'P', Items.paper, 'G', Items.gunpowder });
|
||||
|
||||
@ -19,6 +19,7 @@ public class EntityFireLingering extends Entity {
|
||||
|
||||
public static int TYPE_DIESEL = 0;
|
||||
public static int TYPE_BALEFIRE = 1;
|
||||
public static int TYPE_PHOSPHORUS = 2;
|
||||
public int maxAge = 150;
|
||||
|
||||
public EntityFireLingering(World world) {
|
||||
@ -72,6 +73,7 @@ public class EntityFireLingering extends Entity {
|
||||
EntityLivingBase livng = (EntityLivingBase) e;
|
||||
HbmLivingProps props = HbmLivingProps.getData(livng);
|
||||
if(this.getType() == this.TYPE_DIESEL) if(props.fire < 60) props.fire = 60;
|
||||
if(this.getType() == this.TYPE_PHOSPHORUS) if(props.fire < 300) props.fire = 300;
|
||||
if(this.getType() == this.TYPE_BALEFIRE) if(props.balefire < 100) props.balefire = 100;
|
||||
} else {
|
||||
e.setFire(4);
|
||||
@ -88,6 +90,7 @@ public class EntityFireLingering extends Entity {
|
||||
MovingObjectPosition mop = worldObj.func_147447_a(up, down, false, true, true);
|
||||
if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) down = mop.hitVec;
|
||||
if(this.getType() == this.TYPE_DIESEL) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_FIRE);
|
||||
if(this.getType() == this.TYPE_PHOSPHORUS) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_FIRE);
|
||||
if(this.getType() == this.TYPE_BALEFIRE) FlameCreator.composeEffectClient(worldObj, x, down.yCoord, z, FlameCreator.META_BALEFIRE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,8 +28,14 @@ public class EntityProcessorCrossSmooth extends EntityProcessorCross {
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityProcessorCrossSmooth setDamageClass(DamageClass clazz) {
|
||||
this.clazz = clazz;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attackEntity(Entity entity, ExplosionVNT source, float amount) {
|
||||
if(!entity.isEntityAlive()) return;
|
||||
DamageSource dmg = BulletConfig.getDamage(null, source.exploder instanceof EntityLivingBase ? (EntityLivingBase) source.exploder : null, clazz);
|
||||
if(!(entity instanceof EntityLivingBase)) {
|
||||
entity.attackEntityFrom(dmg, amount);
|
||||
|
||||
@ -47,6 +47,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
private int contagion;
|
||||
private int oil;
|
||||
public int fire;
|
||||
public int phosphorus;
|
||||
public int balefire;
|
||||
private List<ContaminationEffect> contamination = new ArrayList();
|
||||
|
||||
@ -284,6 +285,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
props.setInteger("hfr_blacklung", blacklung);
|
||||
props.setInteger("hfr_oil", oil);
|
||||
props.setInteger("hfr_fire", fire);
|
||||
props.setInteger("hfr_phosphorus", phosphorus);
|
||||
props.setInteger("hfr_balefire", balefire);
|
||||
|
||||
props.setInteger("hfr_cont_count", this.contamination.size());
|
||||
@ -309,6 +311,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
blacklung = props.getInteger("hfr_blacklung");
|
||||
oil = props.getInteger("hfr_oil");
|
||||
fire = props.getInteger("hfr_fire");
|
||||
phosphorus = props.getInteger("hfr_phosphorus");
|
||||
balefire = props.getInteger("hfr_balefire");
|
||||
|
||||
int cont = props.getInteger("hfr_cont_count");
|
||||
|
||||
@ -575,7 +575,10 @@ public class EntityEffectHandler {
|
||||
|
||||
if(!entity.isEntityAlive()) return;
|
||||
|
||||
if(living.isImmuneToFire()) props.fire = 0;
|
||||
if(living.isImmuneToFire()) {
|
||||
props.fire = 0;
|
||||
props.phosphorus = 0;
|
||||
}
|
||||
|
||||
double x = living.posX;
|
||||
double y = living.posY;
|
||||
@ -590,6 +593,13 @@ public class EntityEffectHandler {
|
||||
FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_FIRE);
|
||||
}
|
||||
|
||||
if(props.phosphorus > 0) {
|
||||
props.phosphorus--;
|
||||
if((living.ticksExisted + living.getEntityId()) % 15 == 0) living.worldObj.playSoundEffect(living.posX, living.posY + living.height / 2, living.posZ, "random.fizz", 1F, 1.5F + rand.nextFloat() * 0.5F);
|
||||
if((living.ticksExisted + living.getEntityId()) % 40 == 0) living.attackEntityFrom(DamageSource.onFire, 5F);
|
||||
FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_FIRE);
|
||||
}
|
||||
|
||||
if(props.balefire > 0) {
|
||||
props.balefire--;
|
||||
if((living.ticksExisted + living.getEntityId()) % 15 == 0) living.worldObj.playSoundEffect(living.posX, living.posY + living.height / 2, living.posZ, "random.fizz", 1F, 1.5F + rand.nextFloat() * 0.5F);
|
||||
@ -598,7 +608,7 @@ public class EntityEffectHandler {
|
||||
FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_BALEFIRE);
|
||||
}
|
||||
|
||||
if(props.fire > 0 || props.balefire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire);
|
||||
if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire);
|
||||
}
|
||||
|
||||
private static void handleDashing(Entity entity) {
|
||||
|
||||
16
src/main/java/com/hbm/handler/nei/AmmoPressHandler.java
Normal file
@ -0,0 +1,16 @@
|
||||
package com.hbm.handler.nei;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.recipes.AmmoPressRecipes;
|
||||
|
||||
public class AmmoPressHandler extends NEIUniversalHandler {
|
||||
|
||||
public AmmoPressHandler() {
|
||||
super(ModBlocks.machine_ammo_press.getLocalizedName(), ModBlocks.machine_ammo_press, AmmoPressRecipes.getRecipes());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
return "ntmAmmoPress";
|
||||
}
|
||||
}
|
||||
@ -546,15 +546,15 @@ public class OreDictManager {
|
||||
|
||||
for(NTMMaterial mat : Mats.orderedList) {
|
||||
if(mat.smeltable == SmeltingBehavior.SMELTABLE) {
|
||||
if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.INGOT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.INGOT.name() + name, new ItemStack(ModItems.ingot_raw, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id));
|
||||
}
|
||||
if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.BOLT.name() + name, new ItemStack(ModItems.bolt, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.INGOT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.INGOT.name() + name, new ItemStack(ModItems.ingot_raw, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.FRAGMENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.FRAGMENT.name() + name, new ItemStack(ModItems.bedrock_ore_fragment, 1, mat.id));
|
||||
if(mat.autogen.contains(MaterialShapes.WIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WIRE.name() + name, new ItemStack(ModItems.wire_fine, 1, mat.id));
|
||||
|
||||
@ -674,10 +674,11 @@ public class OreDictManager {
|
||||
|
||||
public static void registerGroups() {
|
||||
ANY_RUBBER.addPrefix(INGOT, true);
|
||||
ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true);
|
||||
ANY_HARDPLASTIC.addPrefix(INGOT, true);
|
||||
ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(CASTPLATE, true).addPrefix(WELDEDPLATE, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true);
|
||||
ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(CASTPLATE, true);
|
||||
ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true).addPrefix(GRIP, true).addPrefix(STOCK, true);
|
||||
ANY_HARDPLASTIC.addPrefix(INGOT, true).addPrefix(STOCK, true).addPrefix(GRIP, true);
|
||||
ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(CASTPLATE, true).addPrefix(WELDEDPLATE, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true)
|
||||
.addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true);
|
||||
ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(CASTPLATE, true).addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true);
|
||||
ANY_TAR.addPrefix(ANY, false);
|
||||
}
|
||||
|
||||
@ -685,9 +686,7 @@ public class OreDictManager {
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterOre(OreRegisterEvent event) {
|
||||
|
||||
if(recursionBrake)
|
||||
return;
|
||||
if(recursionBrake) return;
|
||||
|
||||
recursionBrake = true;
|
||||
|
||||
@ -1016,6 +1015,13 @@ public class OreDictManager {
|
||||
public String billet() { return BILLET.name() + groupName; }
|
||||
public String block() { return BLOCK.name() + groupName; }
|
||||
public String ore() { return ORE.name() + groupName; }
|
||||
public String lightBarrel() { return LIGHTBARREL.name() + groupName; }
|
||||
public String heavyBarrel() { return HEAVYBARREL.name() + groupName; }
|
||||
public String lightReceiver() { return LIGHTRECEIVER.name() + groupName; }
|
||||
public String heavyReceiver() { return HEAVYRECEIVER.name() + groupName; }
|
||||
public String mechanism() { return MECHANISM.name() + groupName; }
|
||||
public String stock() { return STOCK.name() + groupName; }
|
||||
public String grip() { return GRIP.name() + groupName; }
|
||||
}
|
||||
|
||||
private static void addReRegistration(String original, String additional) {
|
||||
|
||||
@ -137,13 +137,13 @@ public class Mats {
|
||||
public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setAutogen(WIRE, DUST, BLOCK).m();
|
||||
public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setAutogen(BOLT, DUST, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m();
|
||||
public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m();
|
||||
public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, BLOCK).m();
|
||||
public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).m();
|
||||
public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT).m();
|
||||
public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setAutogen(CASTPLATE).m();
|
||||
public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setAutogen(CASTPLATE).m();
|
||||
public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(HEAVYBARREL, HEAVYRECEIVER).m();
|
||||
public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m();
|
||||
public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m();
|
||||
public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER).m();
|
||||
public static final NTMMaterial MAT_ABRONZE = makeSmeltable(_AS + 17, ABRONZE, 0xDB9462, 0x203331, 0x77644D).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER).m();
|
||||
public static final NTMMaterial MAT_BSCCO = makeSmeltable(_AS + 18, BSCCO, 0x767BF1, 0x000000, 0x5E62C0).setAutogen(DENSEWIRE).m();
|
||||
public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setAutogen(WIRE, DUST, DENSEWIRE, BLOCK).m();
|
||||
public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setAutogen(DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK).m();
|
||||
@ -152,11 +152,16 @@ public class Mats {
|
||||
public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setAutogen(BLOCK).n();
|
||||
public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).n();
|
||||
public static final NTMMaterial MAT_GUNMETAL = makeSmeltable(_AS + 19, GUNMETAL, 0xFFEF3F, 0xAD3600, 0xF9C62C).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n();
|
||||
public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n();
|
||||
public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setAutogen(PLATE, CASTPLATE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m();
|
||||
public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setAutogen(SHELL, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n();
|
||||
public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setAutogen(PLATE, CASTPLATE, SHELL, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m();
|
||||
|
||||
//Extension
|
||||
public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setAutogen(FRAGMENT).n();
|
||||
public static final NTMMaterial MAT_POLYMER = makeNonSmeltable(_ES + 01, POLYMER, 0x363636, 0x040404, 0x272727).setAutogen(STOCK, GRIP).n();
|
||||
public static final NTMMaterial MAT_BAKELITE = makeNonSmeltable(_ES + 02, BAKELITE, 0xF28086, 0x2B0608, 0xC93940).setAutogen(STOCK, GRIP).n();
|
||||
public static final NTMMaterial MAT_RUBBER = makeNonSmeltable(_ES + 03, RUBBER, 0x817F75, 0x0F0D03, 0x4B4A3F).setAutogen(PIPE, GRIP).n();
|
||||
public static final NTMMaterial MAT_HARDPLASTIC = makeNonSmeltable(_ES + 04, PC, 0xEDE7C4, 0x908A67, 0xE1DBB8).setAutogen(STOCK, GRIP).n();
|
||||
public static final NTMMaterial MAT_PVC = makeNonSmeltable(_ES + 05, PVC, 0xFCFCFC, 0x9F9F9F, 0xF0F0F0).setAutogen(STOCK, GRIP).n();
|
||||
|
||||
public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); }
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.inventory.recipes;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import static com.hbm.inventory.OreDictManager.*;
|
||||
@ -14,6 +15,7 @@ import com.hbm.inventory.OreDictManager.DictFrame;
|
||||
import com.hbm.inventory.RecipesCommon.AStack;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.recipes.loader.SerializableRecipe;
|
||||
import com.hbm.items.ItemEnums.EnumCasingType;
|
||||
import com.hbm.items.ModItems;
|
||||
@ -41,6 +43,7 @@ public class AmmoPressRecipes extends SerializableRecipe {
|
||||
OreDictStack smokeless = new OreDictStack(ANY_SMOKELESS.dust());
|
||||
OreDictStack he = new OreDictStack(ANY_HIGHEXPLOSIVE.ingot());
|
||||
OreDictStack wp = new OreDictStack(P_WHITE.ingot());
|
||||
OreDictStack rp = new OreDictStack(P_RED.dust());
|
||||
ComparableStack cSmall = new ComparableStack(ModItems.casing, 1, EnumCasingType.SMALL);
|
||||
ComparableStack cBig = new ComparableStack(ModItems.casing, 1, EnumCasingType.LARGE);
|
||||
ComparableStack sSmall = new ComparableStack(ModItems.casing, 1, EnumCasingType.SMALL_STEEL);
|
||||
@ -229,6 +232,47 @@ public class AmmoPressRecipes extends SerializableRecipe {
|
||||
null, wp, null,
|
||||
null, smokeless, null,
|
||||
null, sShell, null));
|
||||
|
||||
recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G26_FLARE, 4),
|
||||
null, rp, null,
|
||||
null, smokeless, null,
|
||||
null, cBig, null));
|
||||
|
||||
ComparableStack dyn = new ComparableStack(ModItems.ball_dynamite);
|
||||
OreDictStack coplate = new OreDictStack(CU.plate());
|
||||
OreDictStack diesel = new OreDictStack(Fluids.DIESEL.getDict(1_000));
|
||||
recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HE, 4),
|
||||
null, dyn, null,
|
||||
null, smokeless, null,
|
||||
null, cBig, null));
|
||||
recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_HEAT, 4),
|
||||
coplate, he, null,
|
||||
null, smokeless, null,
|
||||
null, cBig, null));
|
||||
recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_DEMO, 4),
|
||||
null, he.copy(2), null,
|
||||
null, smokeless, null,
|
||||
null, cBig, null));
|
||||
recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_INC, 4),
|
||||
null, diesel, null,
|
||||
null, smokeless, null,
|
||||
null, cBig, null));
|
||||
recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.G40_PHOSPHORUS, 4),
|
||||
null, wp, null,
|
||||
null, smokeless, null,
|
||||
null, cBig, null));
|
||||
}
|
||||
|
||||
public static HashMap getRecipes() {
|
||||
HashMap<Object, Object> recipes = new HashMap<Object, Object>();
|
||||
|
||||
for(AmmoPressRecipe recipe : AmmoPressRecipes.recipes) {
|
||||
List<AStack> inputs = new ArrayList();
|
||||
for(AStack stack : recipe.input) if(stack != null) inputs.add(stack);
|
||||
recipes.put(inputs.toArray(new AStack[0]), recipe.output.copy());
|
||||
}
|
||||
|
||||
return recipes;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -18,7 +18,6 @@ import com.hbm.inventory.material.Mats;
|
||||
import com.hbm.inventory.material.NTMMaterial;
|
||||
import com.hbm.inventory.recipes.AssemblerRecipes;
|
||||
import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe;
|
||||
import com.hbm.items.ItemAmmoEnums.*;
|
||||
import com.hbm.items.ItemEnums.EnumChunkType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.food.ItemFlask.EnumInfusion;
|
||||
@ -27,7 +26,6 @@ import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
@ -184,9 +182,13 @@ public class AnvilRecipes {
|
||||
for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.SHELL)) constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 4),
|
||||
new AnvilOutput(new ItemStack(ModItems.shell, 1, mat.id))).setTier(1));
|
||||
for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.PIPE)) constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 3),
|
||||
new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1));
|
||||
for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.PIPE)) {
|
||||
String key = (OreDictionary.doesOreNameExist(MaterialShapes.PLATE.name() + mat.names[0]) ?
|
||||
MaterialShapes.PLATE.name() + mat.names[0] : MaterialShapes.INGOT.name() + mat.names[0]);
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new OreDictStack(key, 3),
|
||||
new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1));
|
||||
}
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModItems.coil_copper, 2),
|
||||
@ -578,112 +580,8 @@ public class AnvilRecipes {
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 27))).setTier(2));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2));
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_357))).setTier(1));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_44))).setTier(1));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_9))).setTier(1));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_50))).setTier(1));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_buckshot))).setTier(1));
|
||||
|
||||
pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1);
|
||||
pullFromAssembler(new ComparableStack(ModItems.pellet_canister), 1);
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe( new AStack[]{
|
||||
new ComparableStack(ModItems.powder_chlorophyte, 1),
|
||||
new OreDictStack(PB.nugget(), 12),},
|
||||
new AnvilOutput(new ItemStack(ModItems.pellet_chlorophyte, 2))).setTier(1));
|
||||
|
||||
Object[][] recs = new Object[][] {
|
||||
{ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.INCENDIARY), 2},
|
||||
{ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.SHRAPNEL), 2},
|
||||
{ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), U238.ingot(), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.DU), 3},
|
||||
{ModItems.ammo_12gauge.stackFromEnum(120, Ammo12Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_12gauge.stackFromEnum(120, Ammo12Gauge.SLEEK), 4},
|
||||
|
||||
{ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), P_RED.dust(), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.INCENDIARY), 2},
|
||||
{ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SHRAPNEL), 2},
|
||||
{ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), ModItems.powder_poison, ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.CAUSTIC), 2},
|
||||
{ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), DIAMOND.dust(), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SHOCK), 2},
|
||||
{ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.WITHER), 3},
|
||||
{ModItems.ammo_20gauge.stackFromEnum(120, Ammo20Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_20gauge.stackFromEnum(120, Ammo20Gauge.SLEEK), 4},
|
||||
|
||||
{ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE_PHOSPHORUS), 2},
|
||||
{ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.EXPLOSIVE), ModItems.egg_balefire_shard, ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.BALEFIRE), 4},
|
||||
{ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), ModItems.ammo_rocket, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.KAMPF), 2},
|
||||
{ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.KAMPF), ModItems.pellet_canister, ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.CANISTER), 3},
|
||||
{ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.STOCK), ModItems.pellet_claws, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.CLAW), 5},
|
||||
{ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.STOCK), ModItems.toothpicks, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.VAMPIRE), 5},
|
||||
{ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.STOCK), ModItems.pellet_charged, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VOID), 5},
|
||||
{ModItems.ammo_4gauge.stackFromEnum(120, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(120, Ammo4Gauge.SLEEK), 4},
|
||||
|
||||
{ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), DURA.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.AP), 2},
|
||||
{ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), U238.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.DU), 2},
|
||||
{ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), P_WHITE.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.PHOSPHORUS), 2},
|
||||
{ModItems.ammo_44.stackFromEnum(12, Ammo44Magnum.DU), STAR.ingot(), ModItems.ammo_44.stackFromEnum(12, Ammo44Magnum.STAR), 3},
|
||||
{ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.STOCK), DURA.ingot(), ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.AP), 3},
|
||||
{ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.STOCK), U238.ingot(), ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.DU), 3},
|
||||
|
||||
{ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), ModItems.ingot_semtex, ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.EXPLOSIVE), 2},
|
||||
{ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), U238.ingot(), ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.DU), 2},
|
||||
{ModItems.ammo_5mm.stackFromEnum(32, Ammo5mm.DU), STAR.ingot(), ModItems.ammo_5mm.stackFromEnum(32, Ammo5mm.STAR), 3},
|
||||
{ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), DURA.ingot(), ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.AP), 2},
|
||||
{ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), U238.ingot(), ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.DU), 2},
|
||||
{ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.STOCK), DURA.ingot(), ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.AP), 2},
|
||||
{ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), P_RED.dust(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.INCENDIARY), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), P_WHITE.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.PHOSPHORUS), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.ingot_semtex, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.EXPLOSIVE), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), DURA.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.AP), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), U238.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.DU), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(8, Ammo50BMG.DU), STAR.ingot(), ModItems.ammo_50bmg.stackFromEnum(8, Ammo50BMG.STAR), 3},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.CHLOROPHYTE), 3},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(128, Ammo50BMG.STOCK), ModItems.coin_maskman, ModItems.ammo_50bmg.stackFromEnum(128, Ammo50BMG.SLEEK), 4},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.pellet_flechette, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE), 2},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE), ModItems.nugget_am_mix, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE_AM), 3},
|
||||
{ModItems.ammo_50bmg.stackFromEnum(32, Ammo50BMG.FLECHETTE), ModItems.powder_polonium, ModItems.ammo_50bmg.stackFromEnum(32, Ammo50BMG.FLECHETTE_PO), 3},
|
||||
|
||||
{ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), DURA.ingot(), ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.AP), 2},
|
||||
{ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), U238.ingot(), ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.DU), 2},
|
||||
{ModItems.ammo_50ae.stackFromEnum(16, Ammo50AE.DU), STAR.ingot(), ModItems.ammo_50ae.stackFromEnum(16, Ammo50AE.STAR), 3},
|
||||
{ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.PHOSPHORUS), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), DURA.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.AP), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), U238.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.DU), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(16, Ammo556mm.DU), STAR.ingot(), ModItems.ammo_556.stackFromEnum(16, Ammo556mm.STAR), 3},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.CHLOROPHYTE), 3},
|
||||
{ModItems.ammo_556.stackFromEnum(128, Ammo556mm.STOCK), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(128, Ammo556mm.SLEEK), 4},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), Items.redstone, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.TRACER), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), ModItems.pellet_flechette, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), P_RED.dust(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_INCENDIARY), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_PHOSPHORUS), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), U238.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_DU), 2},
|
||||
{ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(128, Ammo556mm.FLECHETTE_SLEEK), 4},
|
||||
{ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_CHLOROPHYTE), 3},
|
||||
|
||||
{ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), Items.redstone, ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.TRACER), 2},
|
||||
{ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), DURA.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.AP), 2},
|
||||
{ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), P_WHITE.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.PHOSPHORUS), 2},
|
||||
{ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), U238.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.DU), 2}
|
||||
};
|
||||
|
||||
for(Object[] objs : recs) {
|
||||
|
||||
ComparableStack ammoIn = new ComparableStack((ItemStack) objs[0]);
|
||||
ItemStack out = (ItemStack) objs[2];
|
||||
|
||||
if(objs[1] instanceof Item) {
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new ComparableStack((Item)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3]));
|
||||
|
||||
} else if(objs[1] instanceof String) {
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] { ammoIn, new OreDictStack((String)objs[1], 1) }, new AnvilOutput(out)).setTier((int)objs[3]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void registerConstructionUpgrades() {
|
||||
|
||||
@ -17,6 +17,7 @@ public class ConfettiUtil {
|
||||
public static void decideConfetti(EntityLivingBase entity, DamageSource source) {
|
||||
if(entity.isEntityAlive()) return;
|
||||
if(source.damageType.equals(DamageClass.LASER.name())) pulverize(entity);
|
||||
if(source.damageType.equals(DamageClass.ELECTRIC.name())) pulverize(entity);
|
||||
if(source.isExplosion()) gib(entity);
|
||||
if(source.isFireDamage()) cremate(entity);
|
||||
}
|
||||
|
||||
@ -64,6 +64,7 @@ public class GunFactory {
|
||||
XFactoryCatapult.init();
|
||||
XFactory75Bolt.init();
|
||||
XFactoryFolly.init();
|
||||
XFactoryTurret.init();
|
||||
|
||||
/// PROXY BULLSHIT ///
|
||||
MainRegistry.proxy.registerGunCfg();
|
||||
|
||||
@ -148,7 +148,7 @@ public class GunFactoryClient {
|
||||
g26_flare_supply.setRenderer(LegoClient.RENDER_FLARE_SUPPLY);
|
||||
g26_flare_weapon.setRenderer(LegoClient.RENDER_FLARE_WEAPON);
|
||||
|
||||
setRendererBulk(LegoClient.RENDER_GRENADE, g40_he, g40_heat, g40_demo, g40_inc);
|
||||
setRendererBulk(LegoClient.RENDER_GRENADE, g40_he, g40_heat, g40_demo, g40_inc, g40_phosphorus);
|
||||
|
||||
setRendererBulk(LegoClient.RENDER_RPZB, rocket_rpzb);
|
||||
setRendererBulk(LegoClient.RENDER_QD, rocket_qd);
|
||||
|
||||
@ -33,13 +33,13 @@ public class XFactory22lr {
|
||||
|
||||
public static void init() {
|
||||
SpentCasing casing22 = new SpentCasing(CasingType.STRAIGHT).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(0.5F);
|
||||
p22_sp = new BulletConfig().setItem(EnumAmmo.P22_SP)
|
||||
p22_sp = new BulletConfig().setItem(EnumAmmo.P22_SP).setKnockback(0F)
|
||||
.setCasing(casing22.clone().register("p22"));
|
||||
p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setDamage(0.8F).setArmorPiercing(0.1F)
|
||||
p22_fmj = new BulletConfig().setItem(EnumAmmo.P22_FMJ).setKnockback(0F).setDamage(0.8F).setArmorPiercing(0.1F)
|
||||
.setCasing(casing22.clone().register("p22fmj"));
|
||||
p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setDamage(1.5F).setArmorPiercing(-0.25F)
|
||||
p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setKnockback(0F).setDamage(1.5F).setArmorPiercing(-0.25F)
|
||||
.setCasing(casing22.clone().register("p22jhp"));
|
||||
p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F)
|
||||
p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setKnockback(0F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setArmorPiercing(0.15F)
|
||||
.setCasing(casing22.clone().setColor(SpentCasing.COLOR_CASE_44).register("p22ap"));
|
||||
|
||||
ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||
|
||||
@ -33,7 +33,9 @@ import com.hbm.render.anim.BusAnimation;
|
||||
import com.hbm.render.anim.BusAnimationSequence;
|
||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||
import com.hbm.render.anim.HbmAnimations.AnimType;
|
||||
import com.hbm.util.EntityDamageUtil;
|
||||
import com.hbm.util.TrackerUtil;
|
||||
import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@ -53,6 +55,7 @@ public class XFactory40mm {
|
||||
public static BulletConfig g40_heat;
|
||||
public static BulletConfig g40_demo;
|
||||
public static BulletConfig g40_inc;
|
||||
public static BulletConfig g40_phosphorus;
|
||||
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_IGNITE = (bullet, mop) -> {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY) {
|
||||
@ -67,7 +70,11 @@ public class XFactory40mm {
|
||||
};
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_HEAT = (bullet, mop) -> {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
|
||||
Lego.standardExplode(bullet, mop, 2.5F); bullet.setDead();
|
||||
Lego.standardExplode(bullet, mop, 3.5F); bullet.setDead();
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit instanceof EntityLivingBase) {
|
||||
EntityLivingBase living = (EntityLivingBase) mop.entityHit;
|
||||
EntityDamageUtil.attackEntityFromNT(living, bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F, true, true, 0.5F, 3F, 0.15F);
|
||||
}
|
||||
};
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
|
||||
@ -81,16 +88,23 @@ public class XFactory40mm {
|
||||
bullet.setDead();
|
||||
};
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_INC = (bullet, mop) -> {
|
||||
spawnFire(bullet, mop, false, 200);
|
||||
};
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_PHOSPHORUS = (bullet, mop) -> {
|
||||
spawnFire(bullet, mop, true, 400);
|
||||
};
|
||||
|
||||
public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
|
||||
World world = bullet.worldObj;
|
||||
Lego.standardExplode(bullet, mop, 3F);
|
||||
EntityFireLingering fire = new EntityFireLingering(world).setArea(5, 2).setDuration(200).setType(EntityFireLingering.TYPE_DIESEL);
|
||||
EntityFireLingering fire = new EntityFireLingering(world).setArea(5, 2).setDuration(duration).setType(phosphorus ? EntityFireLingering.TYPE_PHOSPHORUS : EntityFireLingering.TYPE_DIESEL);
|
||||
fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord);
|
||||
world.spawnEntityInWorld(fire);
|
||||
bullet.setDead();
|
||||
for(int dx = -1; dx <= 1; dx++) {
|
||||
for(int dy = -1; dy <= 1; dy++) {
|
||||
for(int dz = -2; dz <= 2; dz++) {
|
||||
for(int dz = -1; dz <= 1; dz++) {
|
||||
int x = (int) Math.floor(mop.hitVec.xCoord) + dx;
|
||||
int y = (int) Math.floor(mop.hitVec.yCoord) + dy;
|
||||
int z = (int) Math.floor(mop.hitVec.zCoord) + dz;
|
||||
@ -103,7 +117,7 @@ public class XFactory40mm {
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static Consumer<Entity> LAMBDA_SPAWN_C130_SUPPLIESS = (entity) -> { spawnPlane(entity, C130PayloadType.SUPPLIES); };
|
||||
public static Consumer<Entity> LAMBDA_SPAWN_C130_WEAPONS = (entity) -> { spawnPlane(entity, C130PayloadType.WEAPONS); };
|
||||
@ -130,9 +144,10 @@ public class XFactory40mm {
|
||||
|
||||
BulletConfig g40_base = new BulletConfig().setLife(200).setVel(2F).setGrav(0.035D);
|
||||
g40_he = g40_base.clone().setItem(EnumAmmo.G40_HE).setOnImpact(LAMBDA_STANDARD_EXPLODE).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x777777).setScale(2, 2F, 1.5F).register("g40"));
|
||||
g40_heat = g40_base.clone().setItem(EnumAmmo.G40_HEAT).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x5E6854).setScale(2, 2F, 1.5F).register("g40heat"));
|
||||
g40_demo = g40_base.clone().setItem(EnumAmmo.G40_DEMO).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE30000).setScale(2, 2F, 1.5F).register("g40demo"));
|
||||
g40_inc = g40_base.clone().setItem(EnumAmmo.G40_INC).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE86F20).setScale(2, 2F, 1.5F).register("g40inc"));
|
||||
g40_heat = g40_base.clone().setItem(EnumAmmo.G40_HEAT).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT).setDamage(0.5F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0x5E6854).setScale(2, 2F, 1.5F).register("g40heat"));
|
||||
g40_demo = g40_base.clone().setItem(EnumAmmo.G40_DEMO).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE30000).setScale(2, 2F, 1.5F).register("g40demo"));
|
||||
g40_inc = g40_base.clone().setItem(EnumAmmo.G40_INC).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xE86F20).setScale(2, 2F, 1.5F).register("g40inc"));
|
||||
g40_phosphorus = g40_base.clone().setItem(EnumAmmo.G40_PHOSPHORUS).setOnImpact(LAMBDA_STANDARD_EXPLODE_PHOSPHORUS).setDamage(0.75F).setCasing(new SpentCasing(CasingType.STRAIGHT).setColor(0xC8C8C8).setScale(2, 2F, 1.5F).register("g40phos"));
|
||||
|
||||
ModItems.gun_flaregun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||
.dura(100).draw(7).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE)
|
||||
@ -149,7 +164,7 @@ public class XFactory40mm {
|
||||
.dura(400).draw(7).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE)
|
||||
.rec(new Receiver(0)
|
||||
.dmg(20F).delay(24).reload(16, 16, 16, 0).jam(0).sound("hbm:weapon.glShoot", 1.0F, 1.0F)
|
||||
.mag(new MagazineSingleReload(0, 4).addConfigs(g40_he, g40_heat, g40_demo, g40_inc))
|
||||
.mag(new MagazineSingleReload(0, 4).addConfigs(g40_he, g40_heat, g40_demo, g40_inc, g40_phosphorus))
|
||||
.offset(0.75, -0.0625, -0.1875D)
|
||||
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
||||
.setupStandardConfiguration()
|
||||
|
||||
@ -122,7 +122,7 @@ public class XFactoryCatapult {
|
||||
if(bullet.isDead) return;
|
||||
bullet.setDead();
|
||||
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5);
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F));
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).withRangeMod(1.5F));
|
||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F));
|
||||
vnt.explode();
|
||||
@ -134,7 +134,7 @@ public class XFactoryCatapult {
|
||||
nuke_demo = new BulletConfig().setItem(EnumAmmo.NUKE_DEMO).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_DEMO);
|
||||
nuke_high = new BulletConfig().setItem(EnumAmmo.NUKE_HIGH).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_HIGH);
|
||||
nuke_tots = new BulletConfig().setItem(EnumAmmo.NUKE_TOTS).setProjectiles(8).setLife(300).setVel(3F).setGrav(0.025F).setSpread(0.1F).setOnImpact(LAMBDA_NUKE_TINYTOT);
|
||||
nuke_hive = new BulletConfig().setItem(EnumAmmo.NUKE_HIVE).setProjectiles(12).setLife(300).setVel(1F).setGrav(0.025F).setSpread(0.15F).setOnImpact(LAMBDA_NUKE_HIVE);
|
||||
nuke_hive = new BulletConfig().setItem(EnumAmmo.NUKE_HIVE).setProjectiles(12).setLife(300).setVel(1F).setGrav(0.025F).setSpread(0.15F).setDamage(0.5F).setOnImpact(LAMBDA_NUKE_HIVE);
|
||||
|
||||
ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||
.dura(300).draw(20).inspect(30).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
|
||||
|
||||
@ -63,7 +63,7 @@ public class XFactoryEnergy {
|
||||
}
|
||||
|
||||
ExplosionVNT vnt = new ExplosionVNT(beam.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 2F);
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, beam.damage));
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, beam.damage).setDamageClass(beam.config.dmgClass));
|
||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
vnt.explode();
|
||||
beam.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, "hbm:entity.ufoBlast", 5.0F, 0.9F + beam.worldObj.rand.nextFloat() * 0.2F);
|
||||
|
||||
@ -30,8 +30,11 @@ import com.hbm.render.anim.BusAnimation;
|
||||
import com.hbm.render.anim.BusAnimationSequence;
|
||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||
import com.hbm.render.anim.HbmAnimations.AnimType;
|
||||
import com.hbm.util.EntityDamageUtil;
|
||||
import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -82,7 +85,11 @@ public class XFactoryRocket {
|
||||
};
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_HEAT = (bullet, mop) -> {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
|
||||
Lego.standardExplode(bullet, mop, 2.5F); bullet.setDead();
|
||||
Lego.standardExplode(bullet, mop, 3.5F); bullet.setDead();
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && mop.entityHit instanceof EntityLivingBase) {
|
||||
EntityLivingBase living = (EntityLivingBase) mop.entityHit;
|
||||
EntityDamageUtil.attackEntityFromNT(living, bullet.config.getDamage(bullet, bullet.getThrower(), DamageClass.EXPLOSIVE), bullet.damage * 3F, true, true, 0.5F, 5F, 0.2F);
|
||||
}
|
||||
};
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
|
||||
@ -96,10 +103,17 @@ public class XFactoryRocket {
|
||||
bullet.setDead();
|
||||
};
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_INC = (bullet, mop) -> {
|
||||
spawnFire(bullet, mop, false, 300);
|
||||
};
|
||||
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE_PHOSPHORUS = (bullet, mop) -> {
|
||||
spawnFire(bullet, mop, true, 600);
|
||||
};
|
||||
|
||||
public static void spawnFire(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, boolean phosphorus, int duration) {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return;
|
||||
World world = bullet.worldObj;
|
||||
Lego.standardExplode(bullet, mop, 3F);
|
||||
EntityFireLingering fire = new EntityFireLingering(world).setArea(6, 2).setDuration(300).setType(EntityFireLingering.TYPE_DIESEL);
|
||||
EntityFireLingering fire = new EntityFireLingering(world).setArea(6, 2).setDuration(duration).setType(phosphorus ? EntityFireLingering.TYPE_PHOSPHORUS : EntityFireLingering.TYPE_DIESEL);
|
||||
fire.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord);
|
||||
world.spawnEntityInWorld(fire);
|
||||
bullet.setDead();
|
||||
@ -118,7 +132,7 @@ public class XFactoryRocket {
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static BulletConfig makeRPZB(BulletConfig original) { return original.clone(); }
|
||||
public static BulletConfig makeQD(BulletConfig original) { return original.clone().setLife(400).setOnUpdate(LAMBDA_STEERING_ACCELERATE); }
|
||||
@ -127,14 +141,15 @@ public class XFactoryRocket {
|
||||
//this is starting to get messy but we need to put this crap *somewhere* and fragmenting it into a billion classes with two methods each just isn't gonna help
|
||||
public static void init() {
|
||||
|
||||
rocket_template = new BulletConfig[4];
|
||||
rocket_template = new BulletConfig[5];
|
||||
|
||||
BulletConfig baseRocket = new BulletConfig().setLife(300).setSelfDamageDelay(10).setVel(0F).setGrav(0D).setOnEntityHit(null).setOnRicochet(null).setOnUpdate(LAMBDA_STANDARD_ACCELERATE);
|
||||
|
||||
rocket_template[0] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HE).setOnImpact(LAMBDA_STANDARD_EXPLODE);
|
||||
rocket_template[1] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HEAT).setDamage(1.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT);
|
||||
rocket_template[2] = baseRocket.clone().setItem(EnumAmmo.ROCKET_DEMO).setDamage(0.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO);
|
||||
rocket_template[1] = baseRocket.clone().setItem(EnumAmmo.ROCKET_HEAT).setDamage(0.5F).setOnImpact(LAMBDA_STANDARD_EXPLODE_HEAT);
|
||||
rocket_template[2] = baseRocket.clone().setItem(EnumAmmo.ROCKET_DEMO).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_DEMO);
|
||||
rocket_template[3] = baseRocket.clone().setItem(EnumAmmo.ROCKET_INC).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_INC);
|
||||
rocket_template[4] = baseRocket.clone().setItem(EnumAmmo.ROCKET_PHOSPHORUS).setDamage(0.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE_PHOSPHORUS);
|
||||
|
||||
rocket_rpzb = new BulletConfig[rocket_template.length];
|
||||
rocket_qd = new BulletConfig[rocket_template.length];
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
package com.hbm.items.weapon.sedna.factory;
|
||||
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth;
|
||||
import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon;
|
||||
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.ItemAmmoEnums.Ammo240Shell;
|
||||
import com.hbm.items.weapon.sedna.BulletConfig;
|
||||
import com.hbm.particle.SpentCasing;
|
||||
import com.hbm.particle.SpentCasing.CasingType;
|
||||
|
||||
public class XFactoryTurret {
|
||||
|
||||
public static BulletConfig dgk_normal;
|
||||
|
||||
public static SpentCasing CASINNG240MM = new SpentCasing(CasingType.BOTTLENECK).setScale(7.5F).setBounceMotion(0.02F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20);
|
||||
public static BulletConfig shell_normal;
|
||||
public static BulletConfig shell_explosive;
|
||||
public static BulletConfig shell_ap;
|
||||
public static BulletConfig shell_du;
|
||||
public static BulletConfig shell_w9;
|
||||
|
||||
public static void init() {
|
||||
dgk_normal = new BulletConfig();
|
||||
|
||||
shell_normal = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.STOCK)).setDamage(1F).setCasing(CASINNG240MM).setOnImpact((bullet, mop) -> {
|
||||
Lego.standardExplode(bullet, mop, 10F); bullet.setDead();
|
||||
});
|
||||
shell_explosive = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE)).setDamage(1.5F).setCasing(CASINNG240MM).setOnImpact((bullet, mop) -> {
|
||||
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10F);
|
||||
vnt.setBlockAllocator(new BlockAllocatorStandard());
|
||||
vnt.setBlockProcessor(new BlockProcessorStandard());
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage));
|
||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F));
|
||||
vnt.explode();
|
||||
bullet.setDead();
|
||||
});
|
||||
shell_ap = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_T)).setDamage(2F).setDoesPenetrate(true).setCasing(CASINNG240MM);
|
||||
shell_du = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_DU)).setDamage(2.5F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(CASINNG240MM);
|
||||
shell_w9 = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9)).setDamage(2.5F).setCasing(CASINNG240MM).setOnImpact(XFactoryCatapult.LAMBDA_NUKE_STANDARD);
|
||||
}
|
||||
}
|
||||
@ -67,6 +67,7 @@ public class NEIRegistry {
|
||||
handlers.add(new ArcFurnaceSolidHandler());
|
||||
handlers.add(new ArcFurnaceFluidHandler());
|
||||
handlers.add(new RotaryFurnaceHandler());
|
||||
handlers.add(new AmmoPressHandler());
|
||||
|
||||
//this shit comes last
|
||||
handlers.add(new FluidRecipeHandler());
|
||||
|
||||
@ -66,6 +66,7 @@ public class ParticleGiblet extends EntityFX {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
this.theRenderEngine.bindTexture(texture);
|
||||
|
||||
/* use this instead of EntityFX.interpPosN since interpPosN isn't set up correctly for the current tick for layer 3 particles */
|
||||
|
||||
@ -7,6 +7,7 @@ import com.hbm.lib.RefStrings;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.particle.EntityFX;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
@ -84,9 +85,9 @@ public class ParticlePlasmaBlast extends EntityFX {
|
||||
|
||||
if(fog) GL11.glEnable(GL11.GL_FOG);
|
||||
GL11.glPolygonOffset(0.0F, 0.0F);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,6 +25,7 @@ import net.minecraftforge.client.model.IModelCustom;
|
||||
public class ParticleSkeleton extends EntityFX {
|
||||
|
||||
public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/skeleton.png");
|
||||
public static final ResourceLocation texture_ext = new ResourceLocation(RefStrings.MODID + ":textures/particle/skoilet.png");
|
||||
public static final IModelCustom skeleton = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/skeleton.obj"), false).asVBO();
|
||||
protected EnumSkeletonType type;
|
||||
|
||||
@ -107,8 +108,6 @@ public class ParticleSkeleton extends EntityFX {
|
||||
GL11.glAlphaFunc(GL11.GL_GREATER, 0);
|
||||
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
|
||||
this.textureManager.bindTexture(texture);
|
||||
|
||||
double pX = prevPosX + (posX - prevPosX) * interp;
|
||||
double pY = prevPosY + (posY - prevPosY) * interp;
|
||||
@ -139,9 +138,18 @@ public class ParticleSkeleton extends EntityFX {
|
||||
GL11.glRotated(-90, 0, 1, 0);
|
||||
|
||||
switch(type) {
|
||||
case SKULL: skeleton.renderPart("Skull"); break;
|
||||
case TORSO: skeleton.renderPart("Torso"); break;
|
||||
case LIMB: skeleton.renderPart("Limb"); break;
|
||||
case SKULL:
|
||||
this.textureManager.bindTexture(texture);
|
||||
skeleton.renderPart("Skull"); break;
|
||||
case TORSO:
|
||||
this.textureManager.bindTexture(texture);
|
||||
skeleton.renderPart("Torso"); break;
|
||||
case LIMB:
|
||||
this.textureManager.bindTexture(texture);
|
||||
skeleton.renderPart("Limb"); break;
|
||||
case SKULL_VILLAGER:
|
||||
this.textureManager.bindTexture(texture_ext);
|
||||
skeleton.renderPart("SkullVillager"); break;
|
||||
}
|
||||
|
||||
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||
|
||||
@ -20,7 +20,9 @@ import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntityPigZombie;
|
||||
import net.minecraft.entity.monster.EntitySkeleton;
|
||||
import net.minecraft.entity.monster.EntityWitch;
|
||||
import net.minecraft.entity.monster.EntityZombie;
|
||||
import net.minecraft.entity.passive.EntityVillager;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
@ -85,7 +87,7 @@ public class SkeletonCreator implements IParticleCreator {
|
||||
}
|
||||
|
||||
public static enum EnumSkeletonType {
|
||||
SKULL, TORSO, LIMB
|
||||
SKULL, TORSO, LIMB, SKULL_VILLAGER
|
||||
}
|
||||
|
||||
public static Function<EntityLivingBase, BoneDefinition[]> BONES_BIPED = (entity) -> {
|
||||
@ -96,8 +98,8 @@ public class SkeletonCreator implements IParticleCreator {
|
||||
new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftarm.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftarm.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.625, entity.posZ + leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.625, entity.posZ - leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord),
|
||||
};
|
||||
};
|
||||
|
||||
@ -110,8 +112,22 @@ public class SkeletonCreator implements IParticleCreator {
|
||||
new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -90, entity.posX + leftarm.xCoord + forward.xCoord, entity.posY + 1.375, entity.posZ + leftarm.zCoord + forward.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -90, entity.posX - leftarm.xCoord + forward.xCoord, entity.posY + 1.375, entity.posZ - leftarm.zCoord + forward.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.625, entity.posZ + leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.625, entity.posZ - leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord),
|
||||
};
|
||||
};
|
||||
|
||||
public static Function<EntityLivingBase, BoneDefinition[]> BONES_VILLAGER = (entity) -> {
|
||||
Vec3NT leftarm = new Vec3NT(0.375, 0, 0).rotateAroundYDeg(-entity.renderYawOffset);
|
||||
Vec3NT forward = new Vec3NT(0, 0, 0.25).rotateAroundYDeg(-entity.renderYawOffset);
|
||||
Vec3NT leftleg = new Vec3NT(0.125, 0, 0).rotateAroundYDeg(-entity.renderYawOffset);
|
||||
return new BoneDefinition[] {
|
||||
new BoneDefinition(EnumSkeletonType.SKULL_VILLAGER, -entity.rotationYawHead, entity.rotationPitch, entity.posX, entity.posY + 1.6875, entity.posZ),
|
||||
new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1, entity.posZ),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -45, entity.posX + leftarm.xCoord + forward.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord + forward.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, -45, entity.posX - leftarm.xCoord + forward.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord + forward.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord),
|
||||
};
|
||||
};
|
||||
|
||||
@ -123,8 +139,8 @@ public class SkeletonCreator implements IParticleCreator {
|
||||
new BoneDefinition(EnumSkeletonType.TORSO, -entity.renderYawOffset, 0, entity.posX, entity.posY + 1.125, entity.posZ),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftarm.xCoord, entity.posY + 1.125, entity.posZ + leftarm.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftarm.xCoord, entity.posY + 1.125, entity.posZ - leftarm.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.625, entity.posZ + leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.625, entity.posZ - leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX + leftleg.xCoord, entity.posY + 0.375, entity.posZ + leftleg.zCoord),
|
||||
new BoneDefinition(EnumSkeletonType.LIMB, -entity.renderYawOffset, 0, entity.posX - leftleg.xCoord, entity.posY + 0.375, entity.posZ - leftleg.zCoord),
|
||||
};
|
||||
};
|
||||
|
||||
@ -137,6 +153,9 @@ public class SkeletonCreator implements IParticleCreator {
|
||||
skullanizer.put(EntitySkeleton.class.getSimpleName(), BONES_ZOMBIE);
|
||||
skullanizer.put(EntityPigZombie.class.getSimpleName(), BONES_ZOMBIE);
|
||||
|
||||
skullanizer.put(EntityVillager.class.getSimpleName(), BONES_VILLAGER);
|
||||
skullanizer.put(EntityWitch.class.getSimpleName(), BONES_VILLAGER);
|
||||
|
||||
skullanizer.put(EntityDummy.class.getSimpleName(), BONES_DUMMY);
|
||||
|
||||
//techguns compat, for some reason
|
||||
|
||||
@ -104,8 +104,9 @@ public class ItemRenderAtlas extends ItemRenderWeaponBase {
|
||||
@Override
|
||||
public void setupThirdPerson(ItemStack stack) {
|
||||
super.setupThirdPerson(stack);
|
||||
double scale = 0.75D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glTranslated(0, 1, 3);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -89,9 +89,9 @@ public class ItemRenderBolter extends ItemRenderWeaponBase {
|
||||
@Override
|
||||
public void setupThirdPerson(ItemStack stack) {
|
||||
super.setupThirdPerson(stack);
|
||||
double scale = 3D;
|
||||
double scale = 2.5D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glTranslated(0, 0.25, 1.25);
|
||||
GL11.glTranslated(0, -0.75, 1.25);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -104,9 +104,9 @@ public class ItemRenderHangman extends ItemRenderWeaponBase {
|
||||
@Override
|
||||
public void setupThirdPerson(ItemStack stack) {
|
||||
super.setupThirdPerson(stack);
|
||||
double scale = 0.375D;
|
||||
double scale = 0.5D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glTranslated(0, 4.25, 8);
|
||||
GL11.glTranslated(0, 4.25, 11);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -15,6 +15,7 @@ import com.hbm.inventory.fluid.trait.FT_Flammable;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid;
|
||||
import com.hbm.inventory.gui.GUITurretFritz;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
|
||||
@ -57,7 +58,7 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl
|
||||
|
||||
ammoStacks = new ArrayList();
|
||||
|
||||
ammoStacks.add(new ItemStack(ModItems.ammo_fuel));
|
||||
ammoStacks.add(new ItemStack(ModItems.ammo_standard, 1, EnumAmmo.FLAME_DIESEL.ordinal()));
|
||||
|
||||
for(FluidType type : Fluids.getInNiceOrder()) {
|
||||
if(type.hasTrait(FT_Combustible.class) && type.hasTrait(FT_Liquid.class)) {
|
||||
@ -144,7 +145,7 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl
|
||||
|
||||
for(int i = 1; i < 10; i++) {
|
||||
|
||||
if(slots[i] != null && slots[i].getItem() == ModItems.ammo_fuel) {
|
||||
if(slots[i] != null && slots[i].getItem() == ModItems.ammo_standard && slots[i].getItemDamage() == EnumAmmo.FLAME_DIESEL.ordinal()) {
|
||||
if(this.tank.getTankType() == Fluids.DIESEL && this.tank.getFill() + 1000 <= this.tank.getMaxFill()) {
|
||||
this.tank.setFill(this.tank.getFill() + 1000);
|
||||
this.decrStackSize(i, 1);
|
||||
|
||||
@ -8,6 +8,7 @@ import com.hbm.handler.CasingEjector;
|
||||
import com.hbm.handler.guncfg.GunDGKFactory;
|
||||
import com.hbm.inventory.gui.GUITurretHoward;
|
||||
import com.hbm.items.weapon.sedna.BulletConfig;
|
||||
import com.hbm.items.weapon.sedna.factory.XFactoryTurret;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
@ -24,11 +25,10 @@ import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityTurretHoward extends TileEntityTurretBaseNT {
|
||||
|
||||
static BulletConfig dgk_normal = new BulletConfig();
|
||||
static List<Integer> configs = new ArrayList();
|
||||
|
||||
static {
|
||||
configs.add(dgk_normal.id);
|
||||
configs.add(XFactoryTurret.dgk_normal.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -3,23 +3,12 @@ package com.hbm.tileentity.turret;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth;
|
||||
import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon;
|
||||
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
|
||||
import com.hbm.handler.CasingEjector;
|
||||
import com.hbm.inventory.gui.GUITurretJeremy;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.ItemAmmoEnums.Ammo240Shell;
|
||||
import com.hbm.items.weapon.sedna.BulletConfig;
|
||||
import com.hbm.items.weapon.sedna.factory.Lego;
|
||||
import com.hbm.items.weapon.sedna.factory.XFactoryCatapult;
|
||||
import com.hbm.items.weapon.sedna.factory.XFactoryTurret;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
import com.hbm.particle.SpentCasing;
|
||||
import com.hbm.particle.SpentCasing.CasingType;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@ -30,32 +19,15 @@ import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityTurretJeremy extends TileEntityTurretBaseNT {
|
||||
|
||||
public static SpentCasing CASINNG240MM = new SpentCasing(CasingType.BOTTLENECK).setScale(7.5F).setBounceMotion(0.02F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20);
|
||||
public static BulletConfig shell_normal = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.STOCK)).setDamage(1F).setCasing(CASINNG240MM).setOnImpact((bullet, mop) -> {
|
||||
Lego.standardExplode(bullet, mop, 10F); bullet.setDead();
|
||||
});
|
||||
public static BulletConfig shell_explosive = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE)).setDamage(1.5F).setCasing(CASINNG240MM).setOnImpact((bullet, mop) -> {
|
||||
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10F);
|
||||
vnt.setBlockAllocator(new BlockAllocatorStandard());
|
||||
vnt.setBlockProcessor(new BlockProcessorStandard());
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage));
|
||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F));
|
||||
vnt.explode();
|
||||
bullet.setDead();
|
||||
});
|
||||
public static BulletConfig shell_ap = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_T)).setDamage(2F).setDoesPenetrate(true).setCasing(CASINNG240MM);
|
||||
public static BulletConfig shell_du = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_DU)).setDamage(2.5F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(CASINNG240MM);
|
||||
public static BulletConfig shell_w9 = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9)).setDamage(2.5F).setCasing(CASINNG240MM).setOnImpact(XFactoryCatapult.LAMBDA_NUKE_STANDARD);
|
||||
|
||||
static List<Integer> configs = new ArrayList();
|
||||
|
||||
static {
|
||||
configs.add(shell_normal.id);
|
||||
configs.add(shell_explosive.id);
|
||||
configs.add(shell_ap.id);
|
||||
configs.add(shell_du.id);
|
||||
configs.add(shell_w9.id);
|
||||
configs.add(XFactoryTurret.shell_normal.id);
|
||||
configs.add(XFactoryTurret.shell_explosive.id);
|
||||
configs.add(XFactoryTurret.shell_ap.id);
|
||||
configs.add(XFactoryTurret.shell_du.id);
|
||||
configs.add(XFactoryTurret.shell_w9.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -106,7 +106,7 @@ public class EntityDamageUtil {
|
||||
}
|
||||
|
||||
living.attackedAtYaw = (float) (Math.atan2(deltaZ, deltaX) * 180.0D / Math.PI) - living.rotationYaw;
|
||||
if(knockbackMultiplier > 0) living.knockBack(entity, amount, deltaX * knockbackMultiplier, deltaZ * knockbackMultiplier);
|
||||
if(knockbackMultiplier > 0) knockBack(living, entity, amount, deltaX, deltaZ, knockbackMultiplier);
|
||||
} else {
|
||||
living.attackedAtYaw = (float) ((int) (Math.random() * 2.0D) * 180);
|
||||
}
|
||||
@ -126,6 +126,24 @@ public class EntityDamageUtil {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void knockBack(EntityLivingBase living, Entity attacker, float damage, double motionX, double motionZ, double multiplier) {
|
||||
if(living.getRNG().nextDouble() >= living.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()) {
|
||||
living.isAirBorne = true;
|
||||
double horizontal = Math.sqrt(motionX * motionX + motionZ * motionZ);
|
||||
double magnitude = 0.4D * multiplier;
|
||||
living.motionX /= 2.0D;
|
||||
living.motionY /= 2.0D;
|
||||
living.motionZ /= 2.0D;
|
||||
living.motionX -= motionX / horizontal * magnitude;
|
||||
living.motionY += (double) magnitude;
|
||||
living.motionZ -= motionZ / horizontal * magnitude;
|
||||
|
||||
if(living.motionY > 0.2D) {
|
||||
living.motionY = 0.2D * multiplier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void damageEntityNT(EntityLivingBase living, DamageSource source, float amount) {
|
||||
if(!living.isEntityInvulnerable()) {
|
||||
amount = ForgeHooks.onLivingHurt(living, source, amount);
|
||||
|
||||
@ -1184,6 +1184,7 @@ item.ammo_standard.g40_demo.name=40mm Abrissgranate
|
||||
item.ammo_standard.g40_he.name=40mm Sprenggranate
|
||||
item.ammo_standard.g40_heat.name=40mm Hohlladungsgranate
|
||||
item.ammo_standard.g40_inc.name=40mm Brandgranate
|
||||
item.ammo_standard.g40_phosphorus.name=40mm Weiße Phosphorgranate
|
||||
item.ammo_standard.m357_ap.name=.357 Magnumkugel (Panzerbrechend)
|
||||
item.ammo_standard.m357_bp.name=.357 Magnumkugel (Schwarzpulver)
|
||||
item.ammo_standard.m357_express.name=.357 Magnumkugel (VMG Express)
|
||||
@ -1222,6 +1223,7 @@ item.ammo_standard.rocket_demo.name=Abrissrakete
|
||||
item.ammo_standard.rocket_he.name=Explosivrakete
|
||||
item.ammo_standard.rocket_heat.name=Hohlladungsrakete
|
||||
item.ammo_standard.rocket_inc.name=Brandrakete
|
||||
item.ammo_standard.rocket_phosphorus.name=Weiße Phosphorrakete
|
||||
item.ammo_standard.stone.name=Kugel und Pulver
|
||||
item.ammo_standard.stone_ap.name=Feuerstein und Pulver
|
||||
item.ammo_standard.stone_iron.name=Eisenkugel und Pulver
|
||||
@ -3778,23 +3780,30 @@ rbmk.rod.xenon=Xenonvergiftung: %s
|
||||
rbmk.rod.coreTemp=Kerntemperatur: %s
|
||||
rbmk.rod.skinTemp=Außentemperatur: %s / %s
|
||||
|
||||
shape.barrelHeavy=Schwerer Lauf
|
||||
shape.barrelLight=Leichter Lauf
|
||||
shape.billet=Billet
|
||||
shape.blade=Turbinenblatt
|
||||
shape.blades=Sägeblatt
|
||||
shape.block=Block
|
||||
shape.dust=Haufen
|
||||
shape.dusttiny=Winziger Haufen
|
||||
shape.hull_big=Große Hülle
|
||||
shape.grip=Griff
|
||||
shape.gunMechanism=Mechanism
|
||||
shape.hull_big=Große Mechanismus
|
||||
shape.hull_small=Kleine Hülle
|
||||
shape.ingot=Barren
|
||||
shape.nugget=Nugget
|
||||
shape.quantum=Quantum
|
||||
shape.quart=Viertel Block
|
||||
shape.receiverHeavy=Schwerer Verschluss
|
||||
shape.receiverLight=Leichter Verschluss
|
||||
shape.ntmpipe=Rohr
|
||||
shape.plate=Platte
|
||||
shape.plateTriple=Gussplatte
|
||||
shape.shell=Mantel
|
||||
shape.stamp=Stempel
|
||||
shape.stock=Schaft
|
||||
shape.wireFine=Drähte
|
||||
shape.wireDense=Dichter Draht
|
||||
shape.wiresDense=Dichte Drähte
|
||||
|
||||
@ -1907,6 +1907,7 @@ item.ammo_standard.g40_demo.name=40mm Grenade, Demolition
|
||||
item.ammo_standard.g40_he.name=40mm Grenade, High-Explosive
|
||||
item.ammo_standard.g40_heat.name=40mm Grenade, Shaped Charge
|
||||
item.ammo_standard.g40_inc.name=40mm Grenade, Incendiary
|
||||
item.ammo_standard.g40_phosphorus.name=40mm Grenade, White Phosphorus
|
||||
item.ammo_standard.m357_ap.name=.357 Magnum Round (Armor Piercing)
|
||||
item.ammo_standard.m357_bp.name=.357 Magnum Round (Black Powder)
|
||||
item.ammo_standard.m357_express.name=.357 Magnum Round (FMJ Express)
|
||||
@ -1945,6 +1946,7 @@ item.ammo_standard.rocket_demo.name=Rocket, Demolition
|
||||
item.ammo_standard.rocket_he.name=Rocket, High-Explosive
|
||||
item.ammo_standard.rocket_heat.name=Rocket, Shaped Charge
|
||||
item.ammo_standard.rocket_inc.name=Rocket, Incendiary
|
||||
item.ammo_standard.rocket_phosphorus.name=Rocket, White Phosphorus
|
||||
item.ammo_standard.stone.name=Ball and Powder
|
||||
item.ammo_standard.stone_ap.name=Flint and Powder
|
||||
item.ammo_standard.stone_iron.name=Iron Ball and Powder
|
||||
@ -4833,23 +4835,30 @@ rbmk.screen.rod=Control: %s
|
||||
rbmk.screen.temp=Temp: %s
|
||||
rbmk.screen.xenon=Xenon: %s
|
||||
|
||||
shape.barrelHeavy=Heavy Barrel
|
||||
shape.barrelLight=Light Barrel
|
||||
shape.billet=Billet
|
||||
shape.blade=Blade
|
||||
shape.blades=Shredder Blades
|
||||
shape.block=Block
|
||||
shape.dust=Dust
|
||||
shape.dusttiny=Tiny Dust
|
||||
shape.grip=Grip
|
||||
shape.gunMechanism=Mechanism
|
||||
shape.hull_big=Big Shell
|
||||
shape.hull_small=Small Shell
|
||||
shape.ingot=Ingot
|
||||
shape.nugget=Nugget
|
||||
shape.quantum=Quantum
|
||||
shape.quart=Quarter Block
|
||||
shape.receiverHeavy=Heavy Receiver
|
||||
shape.receiverLight=Light Receiver
|
||||
shape.ntmpipe=Pipe
|
||||
shape.plate=Plate
|
||||
shape.plateTriple=Cast Plate
|
||||
shape.shell=Shell
|
||||
shape.stamp=Press Stamp
|
||||
shape.stock=Stock
|
||||
shape.wireFine=Wires
|
||||
shape.wireDense=Dense Wire
|
||||
shape.wiresDense=Dense Wires
|
||||
|
||||
@ -1,182 +1,94 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: 'skeleton.blend'
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Torso
|
||||
v 0.125000 -0.375000 0.250000
|
||||
v 0.125000 0.375000 0.250000
|
||||
v 0.125000 -0.375000 -0.250000
|
||||
v 0.125000 0.375000 -0.250000
|
||||
v -0.125000 -0.375000 0.250000
|
||||
v -0.125000 0.375000 0.250000
|
||||
v -0.125000 -0.375000 -0.250000
|
||||
v -0.125000 0.375000 -0.250000
|
||||
v 0.125000 -0.375000 0.250000
|
||||
v 0.125000 0.375000 0.250000
|
||||
v 0.125000 -0.375000 -0.250000
|
||||
v 0.125000 0.375000 -0.250000
|
||||
v -0.125000 -0.375000 0.250000
|
||||
v -0.125000 0.375000 0.250000
|
||||
v -0.125000 -0.375000 -0.250000
|
||||
v -0.125000 0.375000 -0.250000
|
||||
vt 0.312500 0.000000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.500000 0.000000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.500000 0.375000
|
||||
vt 0.312500 0.000000
|
||||
vt 0.250000 0.375000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.437500 0.500000
|
||||
vt 0.562500 0.375000
|
||||
vt 0.562500 0.500000
|
||||
vt 0.312500 0.500000
|
||||
vt 0.437500 0.500000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.312500 0.000000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.500000 0.000000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.500000 0.375000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.250000 0.375000
|
||||
vt 0.312500 0.000000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.562500 0.375000
|
||||
vt 0.437500 0.500000
|
||||
vt 0.562500 0.500000
|
||||
vt 0.312500 0.500000
|
||||
vt 0.437500 0.500000
|
||||
vt 0.312500 0.375000
|
||||
vt 0.625000 0.375000
|
||||
vt 0.312500 0.375000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.312500 0.375000
|
||||
vt 0.625000 0.375000
|
||||
vt 0.312500 0.375000
|
||||
vt 0.437500 0.375000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s off
|
||||
f 3/1/1 2/2/1 1/3/1
|
||||
f 7/4/2 4/5/2 3/6/2
|
||||
f 5/7/3 8/8/3 7/4/3
|
||||
f 1/9/4 6/10/4 5/11/4
|
||||
f 1/12/5 7/13/5 3/14/5
|
||||
f 6/15/6 4/5/6 8/16/6
|
||||
f 10/17/3 11/18/3 9/19/3
|
||||
f 12/20/4 15/21/4 11/22/4
|
||||
f 16/23/1 13/24/1 15/21/1
|
||||
f 14/25/2 9/26/2 13/27/2
|
||||
f 15/28/6 9/29/6 11/30/6
|
||||
f 12/20/5 14/31/5 16/32/5
|
||||
f 3/1/1 4/33/1 2/2/1
|
||||
f 7/4/2 8/8/2 4/5/2
|
||||
f 5/7/3 6/34/3 8/8/3
|
||||
f 1/9/4 2/35/4 6/10/4
|
||||
f 1/12/5 5/36/5 7/13/5
|
||||
f 6/15/6 2/35/6 4/5/6
|
||||
f 10/17/3 12/37/3 11/18/3
|
||||
f 12/20/4 16/23/4 15/21/4
|
||||
f 16/23/1 14/38/1 13/24/1
|
||||
f 14/25/2 10/39/2 9/26/2
|
||||
f 15/28/6 13/40/6 9/29/6
|
||||
f 12/20/5 10/39/5 14/31/5
|
||||
o Skull
|
||||
v -0.250000 -0.250000 0.250000
|
||||
v -0.250000 0.250000 0.250000
|
||||
v -0.250000 -0.250000 -0.250000
|
||||
v -0.250000 0.250000 -0.250000
|
||||
v 0.250000 -0.250000 0.250000
|
||||
v 0.250000 0.250000 0.250000
|
||||
v 0.250000 -0.250000 -0.250000
|
||||
v 0.250000 0.250000 -0.250000
|
||||
v -0.250000 -0.250000 0.250000
|
||||
v -0.250000 0.250000 0.250000
|
||||
v -0.250000 -0.250000 -0.250000
|
||||
v -0.250000 0.250000 -0.250000
|
||||
v 0.250000 -0.250000 0.250000
|
||||
v 0.250000 0.250000 0.250000
|
||||
v 0.250000 -0.250000 -0.250000
|
||||
v 0.250000 0.250000 -0.250000
|
||||
vt 0.500000 0.750000
|
||||
vt 0.375000 0.500000
|
||||
vt 0.500000 0.500000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.250000 0.500000
|
||||
vt 0.250000 0.750000
|
||||
vt 0.125000 0.500000
|
||||
vt 0.125000 0.750000
|
||||
vt -0.000000 0.500000
|
||||
vt 0.250000 0.750000
|
||||
o SkullVillager
|
||||
v -0.250000 0.312500 0.250000
|
||||
v -0.250000 -0.312500 -0.250000
|
||||
v -0.250000 -0.312500 0.250000
|
||||
v -0.250000 0.312500 -0.250000
|
||||
v 0.250000 -0.312500 -0.250000
|
||||
v 0.250000 0.312500 -0.250000
|
||||
v 0.250000 -0.312500 0.250000
|
||||
v 0.250000 0.312500 0.250000
|
||||
v -0.250000 -0.312500 -0.250000
|
||||
v -0.250000 0.312500 0.250000
|
||||
v -0.250000 -0.312500 0.250000
|
||||
v 0.250000 -0.312500 -0.250000
|
||||
v -0.250000 0.312500 -0.250000
|
||||
v 0.250000 -0.312500 0.250000
|
||||
v 0.250000 0.312500 -0.250000
|
||||
v 0.250000 0.312500 0.250000
|
||||
vt 0.500000 0.875000
|
||||
vt 0.375000 0.718750
|
||||
vt 0.500000 0.718750
|
||||
vt 0.375000 0.875000
|
||||
vt 0.250000 0.718750
|
||||
vt 0.250000 0.875000
|
||||
vt 0.125000 0.718750
|
||||
vt 0.125000 0.875000
|
||||
vt 0.000000 0.718750
|
||||
vt 0.250000 0.875000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.250000 1.000000
|
||||
vt 0.250000 1.000000
|
||||
vt 0.375000 0.500000
|
||||
vt 0.500000 0.750000
|
||||
vt 0.500000 0.500000
|
||||
vt 0.250000 0.500000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.125000 0.500000
|
||||
vt 0.250000 0.750000
|
||||
vt -0.000000 0.500000
|
||||
vt 0.125000 0.750000
|
||||
vt 0.375000 0.718750
|
||||
vt 0.500000 0.875000
|
||||
vt 0.500000 0.718750
|
||||
vt 0.250000 0.718750
|
||||
vt 0.375000 0.875000
|
||||
vt 0.125000 0.718750
|
||||
vt 0.250000 0.875000
|
||||
vt 0.000000 0.718750
|
||||
vt 0.125000 0.875000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.250000 0.750000
|
||||
vt 0.250000 0.875000
|
||||
vt 0.250000 1.000000
|
||||
vt 0.250000 1.000000
|
||||
vt -0.000000 0.750000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.000000 0.875000
|
||||
vt 0.375000 0.875000
|
||||
vt 0.125000 1.000000
|
||||
vt -0.000000 0.750000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.000000 0.875000
|
||||
vt 0.375000 0.875000
|
||||
vt 0.125000 1.000000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s off
|
||||
f 18/41/7 19/42/7 17/43/7
|
||||
f 20/44/8 23/45/8 19/42/8
|
||||
f 24/46/9 21/47/9 23/45/9
|
||||
f 22/48/10 17/49/10 21/47/10
|
||||
f 23/50/11 17/51/11 19/52/11
|
||||
f 20/53/12 22/48/12 24/46/12
|
||||
f 27/54/9 26/55/9 25/56/9
|
||||
f 31/57/10 28/58/10 27/54/10
|
||||
f 29/59/7 32/60/7 31/57/7
|
||||
f 25/61/8 30/62/8 29/59/8
|
||||
f 25/63/12 31/64/12 27/65/12
|
||||
f 30/62/11 28/66/11 32/60/11
|
||||
f 18/41/7 20/44/7 19/42/7
|
||||
f 20/44/8 24/46/8 23/45/8
|
||||
f 24/46/9 22/48/9 21/47/9
|
||||
f 22/48/10 18/67/10 17/49/10
|
||||
f 23/50/11 21/68/11 17/51/11
|
||||
f 20/53/12 18/69/12 22/48/12
|
||||
f 27/54/9 28/58/9 26/55/9
|
||||
f 31/57/10 32/60/10 28/58/10
|
||||
f 29/59/7 30/62/7 32/60/7
|
||||
f 25/61/8 26/70/8 30/62/8
|
||||
f 25/63/12 29/71/12 31/64/12
|
||||
f 30/62/11 26/72/11 28/66/11
|
||||
s 1
|
||||
f 1/1/1 2/2/1 3/3/1
|
||||
f 4/4/2 5/5/2 2/2/2
|
||||
f 6/6/3 7/7/3 5/5/3
|
||||
f 8/8/4 3/9/4 7/7/4
|
||||
f 5/10/5 3/11/5 2/12/5
|
||||
f 4/13/6 8/8/6 6/6/6
|
||||
f 9/14/3 10/15/3 11/16/3
|
||||
f 12/17/4 13/18/4 9/14/4
|
||||
f 14/19/1 15/20/1 12/17/1
|
||||
f 11/21/2 16/22/2 14/19/2
|
||||
f 11/23/6 12/24/6 9/25/6
|
||||
f 16/22/5 13/26/5 15/20/5
|
||||
f 1/1/1 4/4/1 2/2/1
|
||||
f 4/4/2 6/6/2 5/5/2
|
||||
f 6/6/3 8/8/3 7/7/3
|
||||
f 8/8/4 1/27/4 3/9/4
|
||||
f 5/10/5 7/28/5 3/11/5
|
||||
f 4/13/6 1/29/6 8/8/6
|
||||
f 9/14/3 13/18/3 10/15/3
|
||||
f 12/17/4 15/20/4 13/18/4
|
||||
f 14/19/1 16/22/1 15/20/1
|
||||
f 11/21/2 10/30/2 16/22/2
|
||||
f 11/23/6 14/31/6 12/24/6
|
||||
f 16/22/5 10/32/5 13/26/5
|
||||
o Limb
|
||||
v -0.062500 -0.375000 0.062500
|
||||
v -0.062500 0.375000 0.062500
|
||||
v -0.062500 -0.375000 -0.062500
|
||||
v -0.062500 -0.375000 0.062500
|
||||
v -0.062500 0.375000 -0.062500
|
||||
v 0.062500 -0.375000 0.062500
|
||||
v 0.062500 0.375000 0.062500
|
||||
v 0.062500 -0.375000 -0.062500
|
||||
v 0.062500 0.375000 -0.062500
|
||||
v 0.062500 -0.375000 0.062500
|
||||
v 0.062500 0.375000 0.062500
|
||||
vt 0.125000 0.437500
|
||||
vt 0.093750 0.062500
|
||||
vt 0.125000 0.062500
|
||||
@ -196,19 +108,187 @@ vt 0.031250 0.500000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s off
|
||||
f 34/73/13 35/74/13 33/75/13
|
||||
f 36/76/14 39/77/14 35/74/14
|
||||
f 40/78/15 37/79/15 39/77/15
|
||||
f 38/80/16 33/81/16 37/79/16
|
||||
f 39/82/17 33/83/17 35/84/17
|
||||
f 36/85/18 38/80/18 40/78/18
|
||||
f 34/73/13 36/76/13 35/74/13
|
||||
f 36/76/14 40/78/14 39/77/14
|
||||
f 40/78/15 38/80/15 37/79/15
|
||||
f 38/80/16 34/86/16 33/81/16
|
||||
f 39/82/17 37/87/17 33/83/17
|
||||
f 36/85/18 34/88/18 38/80/18
|
||||
s 1
|
||||
f 17/33/7 18/34/7 19/35/7
|
||||
f 20/36/8 21/37/8 18/34/8
|
||||
f 22/38/9 23/39/9 21/37/9
|
||||
f 24/40/10 19/41/10 23/39/10
|
||||
f 21/42/11 19/43/11 18/44/11
|
||||
f 20/45/12 24/40/12 22/38/12
|
||||
f 17/33/7 20/36/7 18/34/7
|
||||
f 20/36/8 22/38/8 21/37/8
|
||||
f 22/38/9 24/40/9 23/39/9
|
||||
f 24/40/10 17/46/10 19/41/10
|
||||
f 21/42/11 23/47/11 19/43/11
|
||||
f 20/45/12 17/48/12 24/40/12
|
||||
o Skull
|
||||
v -0.250000 0.250000 0.250000
|
||||
v -0.250000 -0.250000 -0.250000
|
||||
v -0.250000 -0.250000 0.250000
|
||||
v -0.250000 0.250000 -0.250000
|
||||
v 0.250000 -0.250000 -0.250000
|
||||
v 0.250000 0.250000 -0.250000
|
||||
v 0.250000 -0.250000 0.250000
|
||||
v 0.250000 0.250000 0.250000
|
||||
v -0.250000 -0.250000 -0.250000
|
||||
v -0.250000 0.250000 0.250000
|
||||
v -0.250000 -0.250000 0.250000
|
||||
v 0.250000 -0.250000 -0.250000
|
||||
v -0.250000 0.250000 -0.250000
|
||||
v 0.250000 -0.250000 0.250000
|
||||
v 0.250000 0.250000 -0.250000
|
||||
v 0.250000 0.250000 0.250000
|
||||
vt 0.500000 0.750000
|
||||
vt 0.375000 0.500000
|
||||
vt 0.500000 0.500000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.250000 0.500000
|
||||
vt 0.250000 0.750000
|
||||
vt 0.125000 0.500000
|
||||
vt 0.125000 0.750000
|
||||
vt -0.000000 0.500000
|
||||
vt 0.250000 0.750000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.250000 1.000000
|
||||
vt 0.250000 1.000000
|
||||
vt 0.375000 0.500000
|
||||
vt 0.500000 0.750000
|
||||
vt 0.500000 0.500000
|
||||
vt 0.250000 0.500000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.125000 0.500000
|
||||
vt 0.250000 0.750000
|
||||
vt -0.000000 0.500000
|
||||
vt 0.125000 0.750000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.250000 0.750000
|
||||
vt 0.250000 1.000000
|
||||
vt 0.250000 1.000000
|
||||
vt -0.000000 0.750000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.125000 1.000000
|
||||
vt -0.000000 0.750000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.125000 1.000000
|
||||
vn -1.0000 -0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
vn 0.0000 -1.0000 -0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s 1
|
||||
f 25/49/13 26/50/13 27/51/13
|
||||
f 28/52/14 29/53/14 26/50/14
|
||||
f 30/54/15 31/55/15 29/53/15
|
||||
f 32/56/16 27/57/16 31/55/16
|
||||
f 29/58/17 27/59/17 26/60/17
|
||||
f 28/61/18 32/56/18 30/54/18
|
||||
f 33/62/15 34/63/15 35/64/15
|
||||
f 36/65/16 37/66/16 33/62/16
|
||||
f 38/67/13 39/68/13 36/65/13
|
||||
f 35/69/14 40/70/14 38/67/14
|
||||
f 35/71/18 36/72/18 33/73/18
|
||||
f 40/70/17 37/74/17 39/68/17
|
||||
f 25/49/13 28/52/13 26/50/13
|
||||
f 28/52/14 30/54/14 29/53/14
|
||||
f 30/54/15 32/56/15 31/55/15
|
||||
f 32/56/16 25/75/16 27/57/16
|
||||
f 29/58/17 31/76/17 27/59/17
|
||||
f 28/61/18 25/77/18 32/56/18
|
||||
f 33/62/15 37/66/15 34/63/15
|
||||
f 36/65/16 39/68/16 37/66/16
|
||||
f 38/67/13 40/70/13 39/68/13
|
||||
f 35/69/14 34/78/14 40/70/14
|
||||
f 35/71/18 38/79/18 36/72/18
|
||||
f 40/70/17 34/80/17 37/74/17
|
||||
o Torso
|
||||
v 0.125000 -0.375000 -0.250000
|
||||
v 0.125000 0.375000 0.250000
|
||||
v 0.125000 -0.375000 0.250000
|
||||
v -0.125000 -0.375000 -0.250000
|
||||
v 0.125000 0.375000 -0.250000
|
||||
v -0.125000 -0.375000 0.250000
|
||||
v -0.125000 0.375000 -0.250000
|
||||
v -0.125000 0.375000 0.250000
|
||||
v 0.125000 0.375000 0.250000
|
||||
v 0.125000 -0.375000 -0.250000
|
||||
v 0.125000 -0.375000 0.250000
|
||||
v 0.125000 0.375000 -0.250000
|
||||
v -0.125000 -0.375000 -0.250000
|
||||
v -0.125000 0.375000 -0.250000
|
||||
v -0.125000 -0.375000 0.250000
|
||||
v -0.125000 0.375000 0.250000
|
||||
vt 0.312500 0.000000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.500000 0.000000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.500000 0.375000
|
||||
vt 0.312500 0.000000
|
||||
vt 0.250000 0.375000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.437500 0.500000
|
||||
vt 0.562500 0.375000
|
||||
vt 0.562500 0.500000
|
||||
vt 0.312500 0.500000
|
||||
vt 0.437500 0.500000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.312500 0.000000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.500000 0.000000
|
||||
vt 0.437500 0.000000
|
||||
vt 0.500000 0.375000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.250000 0.375000
|
||||
vt 0.312500 0.000000
|
||||
vt 0.250000 0.000000
|
||||
vt 0.562500 0.375000
|
||||
vt 0.437500 0.500000
|
||||
vt 0.562500 0.500000
|
||||
vt 0.312500 0.500000
|
||||
vt 0.437500 0.500000
|
||||
vt 0.312500 0.375000
|
||||
vt 0.625000 0.375000
|
||||
vt 0.312500 0.375000
|
||||
vt 0.437500 0.375000
|
||||
vt 0.312500 0.375000
|
||||
vt 0.625000 0.375000
|
||||
vt 0.312500 0.375000
|
||||
vt 0.437500 0.375000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn -1.0000 -0.0000 0.0000
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s 1
|
||||
f 41/81/19 42/82/19 43/83/19
|
||||
f 44/84/20 45/85/20 41/86/20
|
||||
f 46/87/21 47/88/21 44/84/21
|
||||
f 43/89/22 48/90/22 46/91/22
|
||||
f 43/92/23 44/93/23 41/94/23
|
||||
f 48/95/24 45/85/24 47/96/24
|
||||
f 49/97/21 50/98/21 51/99/21
|
||||
f 52/100/22 53/101/22 50/102/22
|
||||
f 54/103/19 55/104/19 53/101/19
|
||||
f 56/105/20 51/106/20 55/107/20
|
||||
f 53/108/24 51/109/24 50/110/24
|
||||
f 52/100/23 56/111/23 54/112/23
|
||||
f 41/81/19 45/113/19 42/82/19
|
||||
f 44/84/20 47/88/20 45/85/20
|
||||
f 46/87/21 48/114/21 47/88/21
|
||||
f 43/89/22 42/115/22 48/90/22
|
||||
f 43/92/23 46/116/23 44/93/23
|
||||
f 48/95/24 42/115/24 45/85/24
|
||||
f 49/97/21 52/117/21 50/98/21
|
||||
f 52/100/22 54/103/22 53/101/22
|
||||
f 54/103/19 56/118/19 55/104/19
|
||||
f 56/105/20 49/119/20 51/106/20
|
||||
f 53/108/24 55/120/24 51/109/24
|
||||
f 52/100/23 49/119/23 56/111/23
|
||||
|
||||
|
Before Width: | Height: | Size: 702 B |
|
Before Width: | Height: | Size: 873 B |
|
Before Width: | Height: | Size: 867 B |
|
Before Width: | Height: | Size: 823 B |
|
Before Width: | Height: | Size: 868 B |
|
Before Width: | Height: | Size: 645 B |
|
Before Width: | Height: | Size: 337 B |
|
Before Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 322 B |
|
Before Width: | Height: | Size: 339 B |
|
Before Width: | Height: | Size: 333 B |
|
Before Width: | Height: | Size: 333 B |
|
Before Width: | Height: | Size: 375 B |
|
Before Width: | Height: | Size: 322 B |
|
Before Width: | Height: | Size: 326 B |
|
Before Width: | Height: | Size: 327 B |
|
Before Width: | Height: | Size: 187 B After Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 242 B |
|
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 221 B |
|
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 235 B |
BIN
src/main/resources/assets/hbm/textures/particle/skoilet.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |