NCR ranger power armor

This commit is contained in:
Bob 2026-02-22 21:07:19 +01:00
parent 22bd62f789
commit 84344889b7
30 changed files with 1977 additions and 1650 deletions

View File

@ -10,6 +10,7 @@
* No longer has a volatile power buffer, power isn't buffered at all anymore, similar to steam engines and MHD turbines * No longer has a volatile power buffer, power isn't buffered at all anymore, similar to steam engines and MHD turbines
* Steam capacity changes based on compression level, the ratio for turbine cascades is now 1:1:1:1 * Steam capacity changes based on compression level, the ratio for turbine cascades is now 1:1:1:1
* Comes with a flywheel, energy output slowly ramps up as steam is supplied and slowly goes down as steam cuts out * Comes with a flywheel, energy output slowly ramps up as steam is supplied and slowly goes down as steam cuts out
* Recipe is similar to the old inudstrial turbine, but slightly simplified and cheaper
* Leviathan turbines no longer have a power buffer * Leviathan turbines no longer have a power buffer
* Updated russian and chinese localization * Updated russian and chinese localization
* The PWR can now be controlled via RoR * The PWR can now be controlled via RoR
@ -21,6 +22,8 @@
* If all three modes are enabled, the "328 mode" badge also appears * If all three modes are enabled, the "328 mode" badge also appears
* Removed toothpicks, as they haven't been used in recipes for well over a year * Removed toothpicks, as they haven't been used in recipes for well over a year
* Cleaned up a ton of unused assets * Cleaned up a ton of unused assets
* The old crucible smelting rules when not using a template can be restores with the `/ntmserver` value `LEGACY_CRUCIBLE_RULES`
* Due to repeated complaints, power armor sounds are now generally more quiet, with 25% volume for steps and 50% volume for jumping and landing
# Fixed # Fixed
* Fixed proxy tiles that do not use electricity at all visually connecting to cables * Fixed proxy tiles that do not use electricity at all visually connecting to cables

View File

@ -21,6 +21,7 @@ public class ServerConfig extends RunningConfig {
public static ConfigWrapper<Boolean> CRATE_KEEP_CONTENTS = new ConfigWrapper(true); public static ConfigWrapper<Boolean> CRATE_KEEP_CONTENTS = new ConfigWrapper(true);
public static ConfigWrapper<Integer> ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2); public static ConfigWrapper<Integer> ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2);
public static ConfigWrapper<Boolean> ENABLE_MKU = new ConfigWrapper(true); public static ConfigWrapper<Boolean> ENABLE_MKU = new ConfigWrapper(true);
public static ConfigWrapper<Boolean> LEGACY_CRUCIBLE_RULES = new ConfigWrapper(false);
private static void initDefaults() { private static void initDefaults() {
configMap.put("DAMAGE_COMPATIBILITY_MODE", DAMAGE_COMPATIBILITY_MODE); configMap.put("DAMAGE_COMPATIBILITY_MODE", DAMAGE_COMPATIBILITY_MODE);
@ -34,6 +35,7 @@ public class ServerConfig extends RunningConfig {
configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS); configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS);
configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE); configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE);
configMap.put("ENABLE_MKU", ENABLE_MKU); configMap.put("ENABLE_MKU", ENABLE_MKU);
configMap.put("LEGACY_CRUCIBLE_RULES", LEGACY_CRUCIBLE_RULES);
} }
/** Initializes defaults, then reads the config file if it exists, then writes the config file. */ /** Initializes defaults, then reads the config file if it exists, then writes the config file. */

View File

@ -387,7 +387,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.pipe(), 12), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16)) .inputItems(new OreDictStack(STEEL.pipe(), 12), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(NB.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModBlocks.glass_quartz, 16))); .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(NB.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModBlocks.glass_quartz, 16)));
this.register(new GenericRecipe("ass.iturbine").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_industrial_turbine, 1)) this.register(new GenericRecipe("ass.iturbine").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_industrial_turbine, 1))
.inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 6), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) .inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 4), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 16), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.CIRCUIT))); .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 16), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.CIRCUIT)));
this.register(new GenericRecipe("ass.leviturbine").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_chungus, 1)) this.register(new GenericRecipe("ass.leviturbine").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_chungus, 1))
.inputItems(new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.plateWelded(), 16), new OreDictStack(TI.plate(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModItems.turbine_tungsten, 5), new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.flywheel_beryllium, 1), new OreDictStack(GOLD.wireDense(), 48), new OreDictStack(DURA.pipe(), 16), new OreDictStack(STEEL.pipe(), 16)) .inputItems(new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.plateWelded(), 16), new OreDictStack(TI.plate(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModItems.turbine_tungsten, 5), new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.flywheel_beryllium, 1), new OreDictStack(GOLD.wireDense(), 48), new OreDictStack(DURA.pipe(), 16), new OreDictStack(STEEL.pipe(), 16))

View File

@ -1439,6 +1439,7 @@ public class ModItems {
public static Item gun_n_i_4_n_i; public static Item gun_n_i_4_n_i;
public static Item gun_charge_thrower; public static Item gun_charge_thrower;
public static Item gun_drill; public static Item gun_drill;
public static Item gun_pa_melee;
public static Item ammo_standard; public static Item ammo_standard;
public static Item ammo_secret; public static Item ammo_secret;
@ -6328,6 +6329,7 @@ public class ModItems {
GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName());
GameRegistry.registerItem(gun_charge_thrower, gun_charge_thrower.getUnlocalizedName()); GameRegistry.registerItem(gun_charge_thrower, gun_charge_thrower.getUnlocalizedName());
GameRegistry.registerItem(gun_drill, gun_drill.getUnlocalizedName()); GameRegistry.registerItem(gun_drill, gun_drill.getUnlocalizedName());
GameRegistry.registerItem(gun_pa_melee, gun_pa_melee.getUnlocalizedName());
GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName()); GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName());
GameRegistry.registerItem(ammo_secret, ammo_secret.getUnlocalizedName()); GameRegistry.registerItem(ammo_secret, ammo_secret.getUnlocalizedName());

View File

@ -288,7 +288,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
Block block = player.worldObj.getBlock(px, py, pz); Block block = player.worldObj.getBlock(px, py, pz);
if(block.getMaterial() != Material.air && player.getEntityData().getFloat("hfr_nextStepDistance") <= distanceWalkedOnStepModified.getFloat(player)) if(block.getMaterial() != Material.air && player.getEntityData().getFloat("hfr_nextStepDistance") <= distanceWalkedOnStepModified.getFloat(player))
player.playSound(sound, 1.0F, 1.0F); player.playSound(sound, 0.25F, 1.0F);
player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player)); player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player));
@ -303,7 +303,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
ArmorFSB chestplate = (ArmorFSB) player.inventory.armorInventory[2].getItem(); ArmorFSB chestplate = (ArmorFSB) player.inventory.armorInventory[2].getItem();
if(chestplate.jump != null) if(chestplate.jump != null)
player.playSound(chestplate.jump, 1.0F, 1.0F); player.playSound(chestplate.jump, 0.5F, 1.0F);
} }
} }
@ -315,9 +315,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
if(chestplate.hardLanding && player.fallDistance > 10) { if(chestplate.hardLanding && player.fallDistance > 10) {
// player.playSound(Block.soundTypeAnvil.func_150496_b(), 2.0F,
// 0.5F);
List<Entity> entities = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, player.boundingBox.expand(3, 0, 3)); List<Entity> entities = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, player.boundingBox.expand(3, 0, 3));
for(Entity e : entities) { for(Entity e : entities) {
@ -337,11 +334,10 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
e.attackEntityFrom(DamageSource.causePlayerDamage(player).setDamageBypassesArmor(), (float) (intensity * 10)); e.attackEntityFrom(DamageSource.causePlayerDamage(player).setDamageBypassesArmor(), (float) (intensity * 10));
} }
} }
// return;
} }
if(chestplate.fall != null) if(chestplate.fall != null)
player.playSound(chestplate.fall, 1.0F, 1.0F); player.playSound(chestplate.fall, 0.5F, 1.0F);
} }
} }

View File

@ -1,5 +1,7 @@
package com.hbm.items.armor; package com.hbm.items.armor;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase; import com.hbm.render.item.ItemRenderBase;
import com.hbm.render.model.ModelArmorNCRPA; import com.hbm.render.model.ModelArmorNCRPA;
@ -9,11 +11,12 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.IItemRenderer;
public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider { public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider, IPAWeaponsProvider {
public ArmorNCRPA(ArmorMaterial material, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) { public ArmorNCRPA(ArmorMaterial material, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) {
super(material, slot, texture, maxPower, chargeRate, consumption, drain); super(material, slot, texture, maxPower, chargeRate, consumption, drain);
@ -41,9 +44,18 @@ public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider
public void renderInventory() { setupRenderInv(); } public void renderInventory() { setupRenderInv(); }
public void renderNonInv() { setupRenderNonInv(); } public void renderNonInv() { setupRenderNonInv(); }
public void renderCommon() { public void renderCommon() {
if(armorType == 0) GL11.glTranslated(0, 0.5, 0);
renderStandard(ResourceManager.armor_ncr, armorType, renderStandard(ResourceManager.armor_ncr, armorType,
ResourceManager.ncrpa_helmet, ResourceManager.ncrpa_chest, ResourceManager.ncrpa_arm, ResourceManager.ncrpa_leg, ResourceManager.ncrpa_helmet, ResourceManager.ncrpa_chest, ResourceManager.ncrpa_arm, ResourceManager.ncrpa_leg,
"Helmet,Eyes", "Chest", "LeftArm", "RightArm", "LeftLeg", "RightLeg", "LeftBoot", "RightBoot"); "Helmet,Eyes", "Chest", "LeftArm", "RightArm", "LeftLeg", "RightLeg", "LeftBoot", "RightBoot");
}}; }};
} }
public static final ArmorNCRPAMelee meleeComponent = new ArmorNCRPAMelee();
@Override
public IPAMelee getMeleeComponent(EntityPlayer entity) {
if(this.hasFSBArmorIgnoreCharge(entity)) return meleeComponent;
return null;
}
} }

View File

@ -0,0 +1,50 @@
package com.hbm.items.armor;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
public class ArmorNCRPAMelee implements IPAMelee {
public void setupFirstPerson(ItemStack stack) { }
public void renderFirstPerson(ItemStack stack) {
Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.ncrpa_arm);
GL11.glTranslated(0, -1.5, 0.5);
double scale = 0.125D;
GL11.glScaled(scale, scale, scale);
double forwardTilt = 60;
double offsetOutward = 3;
double roll = 60;
GL11.glPushMatrix();
GL11.glRotated(forwardTilt, 1, 0, 0);
GL11.glTranslated(offsetOutward, 0, 0);
GL11.glTranslated(6, 8, 0);
GL11.glRotated(roll, 0, 1, 0);
GL11.glRotated(10, 0, 0, 1);
GL11.glTranslated(-6, -8, 0);
ResourceManager.armor_ncr.renderPart("LeftArm");
GL11.glPopMatrix();
GL11.glPushMatrix();
//GL11.glTranslated(7, 0, 4);
GL11.glRotated(forwardTilt, 1, 0, 0);
GL11.glTranslated(-offsetOutward, 0, 0);
GL11.glTranslated(-6, 8, 0);
GL11.glRotated(-90, 0, 0, 1);
GL11.glRotated(-roll - 30, 0, 1, 0);
GL11.glTranslated(6, -8, 0);
ResourceManager.armor_ncr.renderPart("RightArm");
GL11.glPopMatrix();
}
}

View File

@ -0,0 +1,9 @@
package com.hbm.items.armor;
import net.minecraft.item.ItemStack;
public interface IPAMelee {
public void setupFirstPerson(ItemStack stack);
public void renderFirstPerson(ItemStack stack);
}

View File

@ -0,0 +1,22 @@
package com.hbm.items.armor;
import com.hbm.main.MainRegistry;
import net.minecraft.entity.player.EntityPlayer;
public interface IPAWeaponsProvider {
public IPAMelee getMeleeComponent(EntityPlayer entity);
public static IPAMelee getMeleeComponentClient() {
return getMeleeComponentCommon(MainRegistry.proxy.me());
}
public static IPAMelee getMeleeComponentCommon(EntityPlayer player) {
if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof IPAWeaponsProvider) {
IPAWeaponsProvider prov = (IPAWeaponsProvider) player.inventory.armorInventory[2].getItem();
return prov.getMeleeComponent(player);
}
return null;
}
}

View File

@ -82,6 +82,7 @@ public class GunFactory {
XFactory45.init(); XFactory45.init();
XFactoryTool.init(); XFactoryTool.init();
XFactoryDrill.init(); XFactoryDrill.init();
XFactoryPA.init();
ModItems.weapon_mod_test = new ItemEnumMulti(EnumModTest.class, true, true).setUnlocalizedName("weapon_mod_test").setMaxStackSize(1); ModItems.weapon_mod_test = new ItemEnumMulti(EnumModTest.class, true, true).setUnlocalizedName("weapon_mod_test").setMaxStackSize(1);
ModItems.weapon_mod_generic = new ItemEnumMulti(EnumModGeneric.class, true, true).setUnlocalizedName("weapon_mod_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab); ModItems.weapon_mod_generic = new ItemEnumMulti(EnumModGeneric.class, true, true).setUnlocalizedName("weapon_mod_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab);

View File

@ -105,6 +105,7 @@ public class GunFactoryClient {
MinecraftForgeClient.registerItemRenderer(ModItems.gun_charge_thrower, new ItemRenderChargeThrower()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_charge_thrower, new ItemRenderChargeThrower());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_drill, new ItemRenderDrill()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_drill, new ItemRenderDrill());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_n_i_4_n_i, new ItemRenderNI4NI()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_n_i_4_n_i, new ItemRenderNI4NI());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_pa_melee, new ItemRenderPAMelee());
//PROJECTILES //PROJECTILES
ammo_debug.setRenderer(LegoClient.RENDER_STANDARD_BULLET); ammo_debug.setRenderer(LegoClient.RENDER_STANDARD_BULLET);

View File

@ -0,0 +1,64 @@
package com.hbm.items.weapon.sedna.factory;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import com.hbm.items.ModItems;
import com.hbm.items.weapon.sedna.Crosshair;
import com.hbm.items.weapon.sedna.GunConfig;
import com.hbm.items.weapon.sedna.Receiver;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
import com.hbm.render.anim.BusAnimation;
import com.hbm.render.anim.BusAnimationSequence;
import com.hbm.render.anim.AnimationEnums.GunAnimation;
import com.hbm.render.anim.BusAnimationKeyframe.IType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
public class XFactoryPA {
public static void init() {
ModItems.gun_pa_melee = new ItemGunMelee(WeaponQuality.UTILITY, new GunConfig()
.draw(10).inspect(55).crosshair(Crosshair.NONE)
.rec(new Receiver(0)
.dmg(10F).delay(20).jam(0)
.offset(1, -0.0625 * 2.5, -0.25D)
.canFire(LAMBDA_MELEE_CAN_FIRE).fire(LAMBDA_MELEE_FIRE))
.pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).rp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
.anim(LAMBDA_MELEE_ANIMS).orchestra(Orchestras.ORCHESTRA_DRILL)
).setUnlocalizedName("gun_pa_melee");
}
public static BiFunction<ItemStack, GunAnimation, BusAnimation> LAMBDA_MELEE_ANIMS = (stack, type) -> {
if(type == GunAnimation.EQUIP) return new BusAnimation()
.addBus("EQUIP", new BusAnimationSequence().setPos(-1, 0, 0).addPos(0, 0, 0, 750, IType.SIN_DOWN));
return new BusAnimation()
.addBus("SWING", new BusAnimationSequence().setPos(-1, 0, 0).addPos(0, 0, 0, 750, IType.SIN_DOWN));
};
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_MELEE_CAN_FIRE = (stack, ctx) -> { return true; };
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_MELEE_FIRE = (stack, ctx) -> {
EntityPlayer player = ctx.getPlayer();
ItemGunBaseNT.playAnimation(player, stack, ItemGunBaseNT.getPrimary(stack, 0) ? GunAnimation.CYCLE : GunAnimation.ALT_CYCLE, ctx.configIndex);
};
public static class ItemGunMelee extends ItemGunBaseNT {
public ItemGunMelee(WeaponQuality quality, GunConfig... cfg) {
super(quality, cfg);
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { }
}
}

View File

@ -88,7 +88,7 @@ public class ModEventHandlerRenderer {
IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED);
if(customRenderer instanceof ItemRenderWeaponBase) { if(customRenderer instanceof ItemRenderWeaponBase) {
ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer;
if(renderGun.isAkimbo()) { if(renderGun.isAkimbo(player)) {
partsHidden[EnumPlayerPart.LEFT_ARM.ordinal()] = true; partsHidden[EnumPlayerPart.LEFT_ARM.ordinal()] = true;
ModelRenderer box = getBoxFromType(renderer, EnumPlayerPart.LEFT_ARM); ModelRenderer box = getBoxFromType(renderer, EnumPlayerPart.LEFT_ARM);
box.isHidden = true; box.isHidden = true;
@ -139,7 +139,7 @@ public class ModEventHandlerRenderer {
IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED);
if(customRenderer instanceof ItemRenderWeaponBase) { if(customRenderer instanceof ItemRenderWeaponBase) {
ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer;
if(renderGun.isAkimbo()) akimbo = true; if(renderGun.isAkimbo(player)) akimbo = true;
if(renderGun.isLeftHanded()) leftHand = true; if(renderGun.isLeftHanded()) leftHand = true;
} }
} }
@ -233,7 +233,7 @@ public class ModEventHandlerRenderer {
IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED);
if(customRenderer instanceof ItemRenderWeaponBase) { if(customRenderer instanceof ItemRenderWeaponBase) {
ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer; ItemRenderWeaponBase renderGun = (ItemRenderWeaponBase) customRenderer;
if(renderGun.isAkimbo()) { if(renderGun.isAkimbo(player)) {
ModelBiped biped = renderer.modelBipedMain; ModelBiped biped = renderer.modelBipedMain;
renderer.modelArmorChestplate.bipedLeftArm.rotateAngleY = renderer.modelArmor.bipedLeftArm.rotateAngleY = biped.bipedLeftArm.rotateAngleY = 0.1F + biped.bipedHead.rotateAngleY; renderer.modelArmorChestplate.bipedLeftArm.rotateAngleY = renderer.modelArmor.bipedLeftArm.rotateAngleY = biped.bipedLeftArm.rotateAngleY = 0.1F + biped.bipedHead.rotateAngleY;
} }
@ -258,7 +258,7 @@ public class ModEventHandlerRenderer {
if(customRenderer instanceof ItemRenderWeaponBase) { if(customRenderer instanceof ItemRenderWeaponBase) {
ItemRenderWeaponBase renderWeapon = (ItemRenderWeaponBase) customRenderer; ItemRenderWeaponBase renderWeapon = (ItemRenderWeaponBase) customRenderer;
if(renderWeapon.isAkimbo() || renderWeapon.isLeftHanded()) { if(renderWeapon.isAkimbo(player) || renderWeapon.isLeftHanded()) {
GL11.glPushMatrix(); GL11.glPushMatrix();
renderer.modelBipedMain.bipedLeftArm.isHidden = false; renderer.modelBipedMain.bipedLeftArm.isHidden = false;
renderer.modelBipedMain.bipedLeftArm.postRender(0.0625F); renderer.modelBipedMain.bipedLeftArm.postRender(0.0625F);

View File

@ -12,7 +12,7 @@ import net.minecraft.item.ItemStack;
public class ItemRenderDANI extends ItemRenderWeaponBase { public class ItemRenderDANI extends ItemRenderWeaponBase {
@Override public boolean isAkimbo() { return true; } @Override public boolean isAkimbo(EntityLivingBase entity) { return true; }
@Override @Override
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; }

View File

@ -13,7 +13,7 @@ import net.minecraft.item.ItemStack;
public class ItemRenderEOTT extends ItemRenderWeaponBase { public class ItemRenderEOTT extends ItemRenderWeaponBase {
@Override public boolean isAkimbo() { return true; } @Override public boolean isAkimbo(EntityLivingBase entity) { return true; }
@Override @Override
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; }

View File

@ -12,7 +12,7 @@ import net.minecraft.item.ItemStack;
public class ItemRenderMareslegAkimbo extends ItemRenderWeaponBase { public class ItemRenderMareslegAkimbo extends ItemRenderWeaponBase {
@Override public boolean isAkimbo() { return true; } @Override public boolean isAkimbo(EntityLivingBase entity) { return true; }
@Override @Override
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; }

View File

@ -13,7 +13,7 @@ import net.minecraft.item.ItemStack;
public class ItemRenderMinigunDual extends ItemRenderWeaponBase { public class ItemRenderMinigunDual extends ItemRenderWeaponBase {
@Override public boolean isAkimbo() { return true; } @Override public boolean isAkimbo(EntityLivingBase entity) { return true; }
@Override @Override
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; }

View File

@ -0,0 +1,82 @@
package com.hbm.render.item.weapon.sedna;
import org.lwjgl.opengl.GL11;
import com.hbm.items.armor.IPAMelee;
import com.hbm.items.armor.IPAWeaponsProvider;
import com.hbm.main.ResourceManager;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
public class ItemRenderPAMelee extends ItemRenderWeaponBase {
@Override public boolean isAkimbo(EntityLivingBase entity) { return true; }
@Override
public void setupFirstPerson(ItemStack stack) {
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
if(component != null) component.setupFirstPerson(stack);
}
@Override
public void renderFirstPerson(ItemStack stack) {
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
if(component != null) component.renderFirstPerson(stack);
}
@Override public void setupThirdPerson(ItemStack stack) { }
@Override public void setupThirdPersonAkimbo(ItemStack stack) { }
@Override
public void setupInv(ItemStack stack) {
GL11.glAlphaFunc(GL11.GL_GREATER, 0F);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glScaled(1, 1, -1);
GL11.glTranslated(8, 8, 0);
double scale = 2.5D;
GL11.glScaled(scale, scale, scale);
}
@Override
public void setupModTable(ItemStack stack) {
double scale = -12.5D;
GL11.glScaled(scale, scale, scale);
GL11.glRotated(90, 0, 1, 0);
GL11.glTranslated(0, -0.5, 1);
}
@Override
public void renderInv(ItemStack stack) {
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.maresleg_tex);
GL11.glPushMatrix();
GL11.glRotated(225, 0, 0, 1);
GL11.glRotated(90, 0, 1, 0);
GL11.glRotated(25, 1, 0, 0);
GL11.glRotated(45, 0, 1, 0);
GL11.glTranslated(-1, 0, 0);
ResourceManager.maresleg.renderPart("Gun");
ResourceManager.maresleg.renderPart("Lever");
GL11.glPopMatrix();
GL11.glTranslated(0, 0, 5);
GL11.glPushMatrix();
GL11.glRotated(225, 0, 0, 1);
GL11.glRotated(-90, 0, 1, 0);
GL11.glRotated(-90, 1, 0, 0);
GL11.glRotated(25, 1, 0, 0);
GL11.glRotated(-45, 0, 1, 0);
GL11.glTranslated(1, 0, 0);
ResourceManager.maresleg.renderPart("Gun");
ResourceManager.maresleg.renderPart("Lever");
GL11.glPopMatrix();
GL11.glShadeModel(GL11.GL_FLAT);
}
}

View File

@ -14,7 +14,7 @@ import net.minecraft.item.ItemStack;
public class ItemRenderStarFAkimbo extends ItemRenderWeaponBase { public class ItemRenderStarFAkimbo extends ItemRenderWeaponBase {
@Override public boolean isAkimbo() { return true; } @Override public boolean isAkimbo(EntityLivingBase entity) { return true; }
@Override @Override
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; }

View File

@ -13,7 +13,7 @@ import net.minecraft.item.ItemStack;
public class ItemRenderUziAkimbo extends ItemRenderWeaponBase { public class ItemRenderUziAkimbo extends ItemRenderWeaponBase {
@Override public boolean isAkimbo() { return true; } @Override public boolean isAkimbo(EntityLivingBase entity) { return true; }
@Override @Override
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; }

View File

@ -36,7 +36,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer {
public static float interp; public static float interp;
public static HashMap<EntityLivingBase, Long> flashMap = new HashMap<EntityLivingBase, Long>(); public static HashMap<EntityLivingBase, Long> flashMap = new HashMap<EntityLivingBase, Long>();
public boolean isAkimbo() { return false; } public boolean isAkimbo(EntityLivingBase entity) { return false; }
public boolean isLeftHanded() { return false; } public boolean isLeftHanded() { return false; }
@Override @Override

View File

@ -7,6 +7,7 @@ import java.util.List;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter; import com.google.gson.stream.JsonWriter;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.config.ServerConfig;
import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler;
import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.handler.pollution.PollutionHandler.PollutionType;
import com.hbm.handler.threading.PacketThreading; import com.hbm.handler.threading.PacketThreading;
@ -381,7 +382,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
for(MaterialStack material : materials) { for(MaterialStack material : materials) {
boolean recipeMaterial = recipe != null && (getQuantaFromType(recipe.input, material.material) > 0 || getQuantaFromType(recipe.output, material.material) > 0); boolean recipeMaterial = recipe != null && (getQuantaFromType(recipe.input, material.material) > 0 || getQuantaFromType(recipe.output, material.material) > 0);
if(recipe == null || recipeMaterial) { if((recipe == null && !ServerConfig.LEGACY_CRUCIBLE_RULES.get()) || recipeMaterial) {
this.addToStack(this.recipeStack, material); this.addToStack(this.recipeStack, material);
} else { } else {
this.addToStack(this.wasteStack, material); this.addToStack(this.wasteStack, material);

View File

@ -2710,6 +2710,10 @@ item.multitool_silk.name=Power Fist (Behutsamkeitsklaue)
item.multitool_sky.name=Power Fist (Crack the Sky) item.multitool_sky.name=Power Fist (Crack the Sky)
item.mysteryshovel.name=Brüchiger Spaten item.mysteryshovel.name=Brüchiger Spaten
item.n2_charge.name=Große Sprengladung item.n2_charge.name=Große Sprengladung
item.ncrpa_boots.name=RNK Ranger Powerrüstungsstiefel
item.ncrpa_helmet.name=RNK Ranger Powerrüstungshelm
item.ncrpa_legs.name=RNK Ranger Powerrüstungsbeinschutz
item.ncrpa_plate.name=RNK Ranger Powerrüstungsbrustpanzer
item.neutrino_lens.name=Neutrinolinse item.neutrino_lens.name=Neutrinolinse
item.neutron_reflector.name=Neutronenreflektor item.neutron_reflector.name=Neutronenreflektor
item.niter.name=Salpeter item.niter.name=Salpeter

View File

@ -3641,6 +3641,10 @@ item.multitool_silk.name=Power Fist (Silk Touch Claw)
item.multitool_sky.name=Power Fist (Crack the Sky) item.multitool_sky.name=Power Fist (Crack the Sky)
item.mysteryshovel.name=Brittle Spade item.mysteryshovel.name=Brittle Spade
item.n2_charge.name=Large Explosive Charge item.n2_charge.name=Large Explosive Charge
item.ncrpa_boots.name=NCR Ranger Power Armor Boots
item.ncrpa_helmet.name=NCR Ranger Power Armor Helmet
item.ncrpa_legs.name=NCR Ranger Power Armor Leggings
item.ncrpa_plate.name=NCR Ranger Power Armor Chestplate
item.neutrino_lens.name=Neutrino Lens item.neutrino_lens.name=Neutrino Lens
item.neutron_reflector.name=Neutron Reflector item.neutron_reflector.name=Neutron Reflector
item.night_vision.name=Night Vision Goggles item.night_vision.name=Night Vision Goggles

File diff suppressed because it is too large Load Diff

View File

@ -202,14 +202,14 @@
"weapon.rocketFlame": {"category": "block", "sounds": [{"name": "weapon/rocketFlame", "stream": false}]}, "weapon.rocketFlame": {"category": "block", "sounds": [{"name": "weapon/rocketFlame", "stream": false}]},
"weapon.ballsLaser": {"category": "hostile", "sounds": [{"name": "weapon/ballsLaser", "stream": false}]}, "weapon.ballsLaser": {"category": "hostile", "sounds": [{"name": "weapon/ballsLaser", "stream": false}]},
"weapon.dartShoot": {"category": "player", "sounds": [{"name": "weapon/dartShoot", "stream": false}]}, "weapon.dartShoot": {"category": "player", "sounds": [{"name": "weapon/dartShoot", "stream": false}]},
"weapon.mukeExplosion": {"category": "player", "sounds": [{"name": "weapon/mukeExplosion", "stream": false}]}, "weapon.mukeExplosion": {"category": "block", "sounds": [{"name": "weapon/mukeExplosion", "stream": false}]},
"weapon.cDeploy": {"category": "player", "sounds": [{"name": "weapon/cDeploy", "stream": false}]}, "weapon.cDeploy": {"category": "player", "sounds": [{"name": "weapon/cDeploy", "stream": false}]},
"weapon.cSwing": {"category": "player", "sounds": [{"name": "weapon/cSwing", "stream": false}]}, "weapon.cSwing": {"category": "player", "sounds": [{"name": "weapon/cSwing", "stream": false}]},
"weapon.extinguisher": {"category": "player", "sounds": [{"name": "weapon/extinguisher", "stream": false}]}, "weapon.extinguisher": {"category": "player", "sounds": [{"name": "weapon/extinguisher", "stream": false}]},
"weapon.robin_explosion": {"category": "player", "sounds": [{"name": "weapon/robin_explosion", "stream": false}]}, "weapon.robin_explosion": {"category": "player", "sounds": [{"name": "weapon/robin_explosion", "stream": false}]},
"weapon.shotgunPump": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPump", "stream": false}]}, "weapon.shotgunPump": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPump", "stream": false}]},
"weapon.shotgunPumpAlt": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPumpAlt", "stream": false}]}, "weapon.shotgunPumpAlt": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPumpAlt", "stream": false}]},
"weapon.explosionMedium": {"category": "player", "sounds": [{"name": "weapon/explosion_medium", "stream": false}]}, "weapon.explosionMedium": {"category": "block", "sounds": [{"name": "weapon/explosion_medium", "stream": false}]},
"weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]}, "weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]},
"weapon.coilgunReload": {"category": "player", "sounds": [{"name": "weapon/coilgunReload", "stream": false}]}, "weapon.coilgunReload": {"category": "player", "sounds": [{"name": "weapon/coilgunReload", "stream": false}]},
"weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]},
@ -219,12 +219,12 @@
"weapon.glClose": {"category": "player", "sounds": [{"name": "weapon/glClose", "stream": false}]}, "weapon.glClose": {"category": "player", "sounds": [{"name": "weapon/glClose", "stream": false}]},
"weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]},
"weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]}, "weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]},
"weapon.nuclearExplosion": {"category": "player", "sounds": [{"name": "weapon/nuclearExplosion", "stream": true}]}, "weapon.nuclearExplosion": {"category": "block", "sounds": [{"name": "weapon/nuclearExplosion", "stream": true}]},
"weapon.explosionLargeNear": {"category": "player", "sounds": [{"name": "weapon/explosionLargeNear", "stream": false}]}, "weapon.explosionLargeNear": {"category": "block", "sounds": [{"name": "weapon/explosionLargeNear", "stream": false}]},
"weapon.explosionLargeFar": {"category": "player", "sounds": [{"name": "weapon/explosionLargeFar", "stream": false}]}, "weapon.explosionLargeFar": {"category": "block", "sounds": [{"name": "weapon/explosionLargeFar", "stream": false}]},
"weapon.explosionSmallNear": {"category": "player", "sounds": ["weapon/explosionSmallNear1", "weapon/explosionSmallNear2", "weapon/explosionSmallNear3"]}, "weapon.explosionSmallNear": {"category": "block", "sounds": ["weapon/explosionSmallNear1", "weapon/explosionSmallNear2", "weapon/explosionSmallNear3"]},
"weapon.explosionSmallFar": {"category": "player", "sounds": ["weapon/explosionSmallFar1", "weapon/explosionSmallFar2"]}, "weapon.explosionSmallFar": {"category": "block", "sounds": ["weapon/explosionSmallFar1", "weapon/explosionSmallFar2"]},
"weapon.explosionTiny": {"category": "player", "sounds": ["weapon/explosionTiny1", "weapon/explosionTiny2"]}, "weapon.explosionTiny": {"category": "block", "sounds": ["weapon/explosionTiny1", "weapon/explosionTiny2"]},
"weapon.hkShoot": {"category": "player", "sounds": [{"name": "weapon/hkShoot", "stream": false}]}, "weapon.hkShoot": {"category": "player", "sounds": [{"name": "weapon/hkShoot", "stream": false}]},
"weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 946 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 780 B

After

Width:  |  Height:  |  Size: 1.1 KiB