mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
fresh from the juice, fresh from the juice! don't get it on your shoese
This commit is contained in:
parent
4e0171159e
commit
7e01544c19
11
changelog
11
changelog
@ -1,3 +1,14 @@
|
||||
## Added
|
||||
* N I 4 N I
|
||||
* It's that one gun from that one game, you throw coins and your shots bounce around
|
||||
* Needs no introduction
|
||||
* Can be upgraded with nickels or gold doubloons for more pocket change to yeet
|
||||
* Found in airdrop supply crates, about 10x rarer than a double barrel shotgun
|
||||
* More structures
|
||||
* I haven't even looked at them so it's a surprise for everyone
|
||||
* PWR printer
|
||||
* Using it on a PWR controller will cause the game to generate images of each layer of the reactor
|
||||
|
||||
## Changed
|
||||
* Updated ukrainian, chinese and russian localization, including QMAW
|
||||
* Some previously hardcoded lang strings are now affected by translations
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
mod_version=1.0.27
|
||||
# Empty build number makes a release type
|
||||
mod_build_number=5426
|
||||
mod_build_number=5439
|
||||
|
||||
credits=HbMinecraft,\
|
||||
\ rodolphito (explosion algorithms),\
|
||||
|
||||
@ -56,7 +56,7 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
return metadata == 0 && side != 0 && side != 1 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon);
|
||||
return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -266,13 +266,13 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa
|
||||
newBeam.setPosition(coinHit.hitVec.xCoord, coinHit.hitVec.yCoord, coinHit.hitVec.zCoord);
|
||||
Vec3 delta = Vec3.createVectorHelper(target.posX - newBeam.posX, (target.posY + target.height / 2D) - newBeam.posY, target.posZ - newBeam.posZ);
|
||||
newBeam.setRotationsFromVector(delta);
|
||||
newBeam.performHitscanExternal(delta.lengthVector());
|
||||
newBeam.performHitscanExternal(250D);
|
||||
worldObj.spawnEntityInWorld(newBeam);
|
||||
} else {
|
||||
EntityBulletBeamBase newBeam = new EntityBulletBeamBase(hitCoin.getThrower() != null ? hitCoin.getThrower() : this.thrower, this.config, this.damage * 1.25F);
|
||||
newBeam.setPosition(coinHit.hitVec.xCoord, coinHit.hitVec.yCoord, coinHit.hitVec.zCoord);
|
||||
newBeam.setRotationsFromVector(Vec3.createVectorHelper(rand.nextGaussian() * 0.5, -1, rand.nextGaussian() * 0.5));
|
||||
newBeam.performHitscanExternal(100);
|
||||
newBeam.performHitscanExternal(250D);
|
||||
worldObj.spawnEntityInWorld(newBeam);
|
||||
}
|
||||
|
||||
|
||||
@ -33,14 +33,15 @@ public class ItemPoolsC130 {
|
||||
|
||||
new ItemPool(POOL_WEAPONS) {{
|
||||
this.pool = new WeightedRandomChestContent[] {
|
||||
weighted(ModItems.gun_light_revolver, 0, 1, 1, 10),
|
||||
weighted(ModItems.gun_henry, 0, 1, 1, 10),
|
||||
weighted(ModItems.gun_maresleg, 0, 1, 1, 10),
|
||||
weighted(ModItems.gun_greasegun, 0, 1, 1, 10),
|
||||
weighted(ModItems.gun_carbine, 0, 1, 1, 5),
|
||||
weighted(ModItems.gun_heavy_revolver, 0, 1, 1, 5),
|
||||
weighted(ModItems.gun_panzerschreck, 0, 1, 1, 2),
|
||||
weighted(ModItems.gun_double_barrel, 0, 1, 1, 1),
|
||||
weighted(ModItems.gun_light_revolver, 0, 1, 1, 100),
|
||||
weighted(ModItems.gun_henry, 0, 1, 1, 100),
|
||||
weighted(ModItems.gun_maresleg, 0, 1, 1, 100),
|
||||
weighted(ModItems.gun_greasegun, 0, 1, 1, 100),
|
||||
weighted(ModItems.gun_carbine, 0, 1, 1, 50),
|
||||
weighted(ModItems.gun_heavy_revolver, 0, 1, 1, 50),
|
||||
weighted(ModItems.gun_panzerschreck, 0, 1, 1, 20),
|
||||
weighted(ModItems.gun_double_barrel, 0, 1, 1, 10),
|
||||
weighted(ModItems.gun_n_i_4_n_i, 0, 1, 1, 1),
|
||||
};
|
||||
}};
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import static com.hbm.lib.HbmChestContents.weighted;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ItemEnums.EnumSecretType;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumModSpecial;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import net.minecraft.util.WeightedRandomChestContent;
|
||||
@ -44,6 +45,8 @@ public class ItemPoolsRedRoom {
|
||||
weighted(ModItems.gun_hangman, 0, 1, 1, 1),
|
||||
weighted(ModItems.gun_mas36, 0, 1, 1, 1),
|
||||
weighted(ModItems.item_secret, EnumSecretType.FOLLY.ordinal(), 1, 1, 1),
|
||||
weighted(ModItems.weapon_mod_special, EnumModSpecial.NICKEL.ordinal(), 1, 1, 1),
|
||||
weighted(ModItems.weapon_mod_special, EnumModSpecial.DOUBLOONS.ordinal(), 1, 1, 1),
|
||||
};
|
||||
}};
|
||||
|
||||
|
||||
@ -209,7 +209,7 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, I
|
||||
}
|
||||
|
||||
if(Minecraft.getMinecraft().currentScreen instanceof GUIWeaponTable && !this.recognizedMods.isEmpty()) {
|
||||
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.weapon.accepts" + ":"));
|
||||
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.weapon.accepts") + ":");
|
||||
for(ComparableStack comp : this.recognizedMods) list.add(EnumChatFormatting.RED + " " + comp.toStack().getDisplayName());
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,7 +164,8 @@ public class GunFactory {
|
||||
SPEEDUP, CHOKE, SPEEDLOADER,
|
||||
FURNITURE_GREEN, FURNITURE_BLACK, BAYONET,
|
||||
STACK_MAG, SKIN_SATURNITE, LAS_SHOTGUN,
|
||||
LAS_CAPACITOR, LAS_AUTO
|
||||
LAS_CAPACITOR, LAS_AUTO,
|
||||
NICKEL, DOUBLOONS
|
||||
}
|
||||
|
||||
public static enum EnumModCaliber {
|
||||
|
||||
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import com.hbm.items.ICustomizable;
|
||||
import com.hbm.items.weapon.sedna.GunConfig;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.items.weapon.sedna.mods.WeaponModManager;
|
||||
import com.hbm.util.ChatBuilder;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@ -27,7 +28,12 @@ public class ItemGunNI4NI extends ItemGunBaseNT implements ICustomizable {
|
||||
super.onUpdate(stack, world, entity, slot, isHeld);
|
||||
|
||||
if(!world.isRemote) {
|
||||
if(this.getCoinCount(stack) < 4) {
|
||||
|
||||
int maxCoin = 4;
|
||||
if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_NI4NI_NICKEL)) maxCoin += 2;
|
||||
if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_NI4NI_DOUBLOONS)) maxCoin += 2;
|
||||
|
||||
if(this.getCoinCount(stack) < maxCoin) {
|
||||
this.setCoinCharge(stack, this.getCoinCharge(stack) + 1);
|
||||
|
||||
if(this.getCoinCharge(stack) >= 80) {
|
||||
@ -36,7 +42,7 @@ public class ItemGunNI4NI extends ItemGunBaseNT implements ICustomizable {
|
||||
this.setCoinCount(stack, newCount);
|
||||
|
||||
if(isHeld) {
|
||||
world.playSoundAtEntity(entity, "hbm:item.techBoop", 1.0F, 1.25F + newCount * 0.125F);
|
||||
world.playSoundAtEntity(entity, "hbm:item.techBoop", 1.0F, 1F + newCount / (float) maxCoin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,6 +149,8 @@ public class WeaponModManager {
|
||||
new WeaponModDefinition(EnumModSpecial.LAS_SHOTGUN).addMod(new Item[] {ModItems.gun_lasrifle}, new WeaponModLasShotgun(ID_LAS_SHOTGUN));
|
||||
new WeaponModDefinition(EnumModSpecial.LAS_CAPACITOR).addMod(new Item[] {ModItems.gun_lasrifle}, new WeaponModLasCapacitor(ID_LAS_CAPACITOR));
|
||||
new WeaponModDefinition(EnumModSpecial.LAS_AUTO).addMod(new Item[] {ModItems.gun_lasrifle}, new WeaponModLasAuto(ID_LAS_AUTO));
|
||||
new WeaponModDefinition(EnumModSpecial.NICKEL).addMod(new Item[] {ModItems.gun_n_i_4_n_i}, new WeaponModNickel(ID_NI4NI_NICKEL, "COIN1"));
|
||||
new WeaponModDefinition(EnumModSpecial.DOUBLOONS).addMod(new Item[] {ModItems.gun_n_i_4_n_i}, new WeaponModNickel(ID_NI4NI_DOUBLOONS, "COIN2"));
|
||||
|
||||
BulletConfig[] p9 = new BulletConfig[] {XFactory9mm.p9_sp, XFactory9mm.p9_fmj, XFactory9mm.p9_jhp, XFactory9mm.p9_ap};
|
||||
BulletConfig[] p45 = new BulletConfig[] {XFactory45.p45_sp, XFactory45.p45_fmj, XFactory45.p45_jhp, XFactory45.p45_ap, XFactory45.p45_du};
|
||||
@ -202,6 +204,8 @@ public class WeaponModManager {
|
||||
public static final int ID_LAS_CAPACITOR = 217;
|
||||
public static final int ID_LAS_AUTO = 218;
|
||||
public static final int ID_CARBINE_BAYONET = 219;
|
||||
public static final int ID_NI4NI_NICKEL = 220;
|
||||
public static final int ID_NI4NI_DOUBLOONS = 221;
|
||||
|
||||
public static ItemStack[] getUpgradeItems(ItemStack stack, int cfg) {
|
||||
if(!stack.hasTagCompound()) return new ItemStack[0];
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.hbm.items.weapon.sedna.mods;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class WeaponModNickel extends WeaponModBase {
|
||||
|
||||
public WeaponModNickel(int id, String name) {
|
||||
super(id, name);
|
||||
this.setPriority(PRIORITY_SET);
|
||||
}
|
||||
|
||||
@Override public <T> T eval(T base, ItemStack gun, String key, Object parent) { return base; }
|
||||
}
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||
public static final String VERSION = "1.0.27 BETA (5426)";
|
||||
public static final String VERSION = "1.0.27 BETA (5439)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -94,12 +94,12 @@ public class ItemRenderNI4NI extends ItemRenderWeaponBase {
|
||||
ResourceManager.n_i_4_n_i.renderPart("Barrel");
|
||||
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glColor3f(0F, 1F, 0F);
|
||||
int coinCount = ItemGunNI4NI.getCoinCount(stack);
|
||||
if(coinCount > 3) ResourceManager.n_i_4_n_i.renderPart("Coin1");
|
||||
if(coinCount > 2) ResourceManager.n_i_4_n_i.renderPart("Coin2");
|
||||
if(coinCount > 1) ResourceManager.n_i_4_n_i.renderPart("Coin3");
|
||||
if(coinCount > 0) ResourceManager.n_i_4_n_i.renderPart("Coin4");
|
||||
if(coinCount > 3) { GL11.glColor3f(coinCount > 7 ? 1F : 0F, 1F, 0F); ResourceManager.n_i_4_n_i.renderPart("Coin1"); }
|
||||
if(coinCount > 2) { GL11.glColor3f(coinCount > 6 ? 1F : 0F, 1F, 0F); ResourceManager.n_i_4_n_i.renderPart("Coin2"); }
|
||||
if(coinCount > 1) { GL11.glColor3f(coinCount > 5 ? 1F : 0F, 1F, 0F); ResourceManager.n_i_4_n_i.renderPart("Coin3"); }
|
||||
if(coinCount > 0) { GL11.glColor3f(coinCount > 4 ? 1F : 0F, 1F, 0F); ResourceManager.n_i_4_n_i.renderPart("Coin4"); }
|
||||
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
|
||||
RenderArcFurnace.fullbright(false);
|
||||
|
||||
@ -6,6 +6,7 @@ import org.lwjgl.opengl.GL12;
|
||||
import com.hbm.blocks.generic.BlockBobble.BobbleType;
|
||||
import com.hbm.blocks.generic.BlockBobble.TileEntityBobble;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumModSpecial;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
@ -201,6 +202,8 @@ public class RenderBobble extends TileEntitySpecialRenderer {
|
||||
case FRIZZLE:
|
||||
rotLeftArm = new double[]{0, 15, 45};
|
||||
rotRightArm = new double[]{0, 0, 80};
|
||||
rotLeftLeg = new double[]{0, 0, 2};
|
||||
rotRightLeg = new double[]{0, 0, -2};
|
||||
break;
|
||||
case ADAM29:
|
||||
rotRightArm = new double[]{0, 0, 60};
|
||||
@ -410,19 +413,24 @@ public class RenderBobble extends TileEntitySpecialRenderer {
|
||||
break;
|
||||
case FRIZZLE:
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0.7, 1.7, 0.4);
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
GL11.glRotated(-90, 0, 1, 0);
|
||||
GL11.glRotated(-10, 1, 0, 0);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_gun_dark); ResourceManager.ff_nightmare.renderPart("Grip");
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_gun_normal); ResourceManager.ff_nightmare.renderPart("Dark");
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ff_gun_bright); ResourceManager.ff_nightmare.renderPart("Light");
|
||||
GL11.glTranslated(0.8, 1.6, 0.4);
|
||||
GL11.glScaled(0.125, 0.125, 0.125);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glRotated(10, 1, 0, 0);
|
||||
this.bindTexture(ResourceManager.n_i_4_n_i_tex);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
ResourceManager.n_i_4_n_i.renderPart("FrameDark");
|
||||
ResourceManager.n_i_4_n_i.renderPart("Grip");
|
||||
ResourceManager.n_i_4_n_i.renderPart("FrameLight");
|
||||
ResourceManager.n_i_4_n_i.renderPart("Cylinder");
|
||||
ResourceManager.n_i_4_n_i.renderPart("Barrel");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glTranslated(0.3, 1.4, -0.2);
|
||||
GL11.glRotated(-100, 1, 0, 0);
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
renderItem(new ItemStack(ModItems.coin_maskman, 1, 5));
|
||||
renderItem(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.DOUBLOONS.ordinal()));
|
||||
break;
|
||||
case ADAM29:
|
||||
GL11.glTranslated(0.4, 1.15, 0.4);
|
||||
|
||||
@ -3647,12 +3647,14 @@ item.weapon_mod_generic.wsteel_damage.name=Optimierter Waffenstahl-Verschluss
|
||||
item.weapon_mod_generic.wsteel_dura.name=Langlebige Waffenstahl-Teile
|
||||
item.weapon_mod_special.bayonet.name=Bayonet
|
||||
item.weapon_mod_special.choke.name=Choke
|
||||
item.weapon_mod_special.doubloons.name=Zwei Golddublonen
|
||||
item.weapon_mod_special.furniture_black.name=Polymergriff (Schwarz)
|
||||
item.weapon_mod_special.furniture_green.name=Polymergriff (Grün)
|
||||
item.weapon_mod_special.greasegun.name=Grease Gun Modernisierungskit
|
||||
item.weapon_mod_special.las_auto.name=Lasergewehr - Autommatischer Verschluss
|
||||
item.weapon_mod_special.las_capacitor.name=Lasergewehr - Erweiterter Kondensator
|
||||
item.weapon_mod_special.las_shotgun.name=Lasergewehr - Strahlteiler
|
||||
item.weapon_mod_special.nickel.name=10 Cent
|
||||
item.weapon_mod_special.saw.name=Bügelsäge
|
||||
item.weapon_mod_special.scope.name=Ziehlvorrichtung
|
||||
item.weapon_mod_special.silencer.name=Schalldämpfer
|
||||
|
||||
@ -4791,12 +4791,14 @@ item.weapon_mod_generic.wsteel_damage.name=Optimized Weapon Steel Receiver
|
||||
item.weapon_mod_generic.wsteel_dura.name=High-Durability Weapon Steel Parts
|
||||
item.weapon_mod_special.bayonet.name=Bayonet
|
||||
item.weapon_mod_special.choke.name=Choke
|
||||
item.weapon_mod_special.doubloons.name=Two Gold Doubloons
|
||||
item.weapon_mod_special.furniture_black.name=Polymer Furniture (Black)
|
||||
item.weapon_mod_special.furniture_green.name=Polymer Furniture (Green)
|
||||
item.weapon_mod_special.greasegun.name=Grease Gun Modernization Kit
|
||||
item.weapon_mod_special.las_auto.name=Laser Rifle Automatic Receiver
|
||||
item.weapon_mod_special.las_capacitor.name=Laser Rifle Extended Capacitor
|
||||
item.weapon_mod_special.las_shotgun.name=Laser Rifle Beam Splitter
|
||||
item.weapon_mod_special.nickel.name=Two Nickels
|
||||
item.weapon_mod_special.saw.name=Hacksaw
|
||||
item.weapon_mod_special.scope.name=Scope
|
||||
item.weapon_mod_special.silencer.name=Silencer
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 307 B |
Binary file not shown.
|
After Width: | Height: | Size: 302 B |
Binary file not shown.
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.7 KiB |
Loading…
x
Reference in New Issue
Block a user