Merge remote-tracking branch 'HbmMods/master'

This commit is contained in:
Vaern 2023-09-01 19:39:52 -07:00
commit 65aad4d894
24 changed files with 8323 additions and 8242 deletions

View File

@ -1,4 +1,16 @@
## Changed
* Chlorophyte rounds now deal 2x more damage than their standard counterparts instead of 1.5x
* Chlorophyte rounds now penetrate multiple enemies
* Decreased chlorophyte targeting range from 200 to 30 blocks
* Josh now has recoil and reload animations
* Anvil recipes for upgrading ammo types have been adjusted to match the crafting batch size
* Adjusted the corium block destruction function to be more in line with the recent concrete nerfs
* Reduced the blast resistance threshold for FEL, making concrete once again resistant to lasers
* Crafting bullet assemblies now only yields one item, it's that one assembly that turns into a full set of bullets after being pressed once. This should reduce the amount of press operations by up to a factor of 64.
* 5mm assemblies now yield 64 instead of 32 bullets
* The production complexity and time for making thermoelectric elements in the assembler has been reduced
* Thermoelectric elements can now also be made in a tier 2 anvil
## Fixed
* Fixed PWR still operating as normal even when the structure is dissolved
* Fixed the new watz not giving the meltdown achievement
* Fixed serverside crash caused by conveyor cranes
* Fixed logspam when pollution handler tries to save the pollution data for dimensions that have never been loaded before
* Fixed dead leaves layer not being replacable by other blocks

View File

@ -1,6 +1,6 @@
mod_version=1.0.27
# Empty build number makes a release type
mod_build_number=4705
mod_build_number=4707
credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\
\ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\

View File

@ -62,7 +62,7 @@ public class CoriumBlock extends BlockFluidClassic {
return true;
Random rand = new Random();
return b.getMaterial().isLiquid() || rand.nextInt((int) res) == 0;
return b.getMaterial().isLiquid() || rand.nextInt((int) (res * res)) == 0;
}
@Override

View File

@ -2,6 +2,7 @@ package com.hbm.blocks.generic;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.machine.ZirnoxDestroyed;
import com.hbm.blocks.machine.rbmk.RBMKDebris;
@ -99,6 +100,7 @@ public class BlockLayering extends Block {
}
public boolean isReplaceable(IBlockAccess world, int x, int y, int z) {
if(this == ModBlocks.leaves_layer) return true;
int meta = world.getBlockMetadata(x, y, z);
return meta >= 7 ? false : blockMaterial.isReplaceable();
}

View File

@ -2,6 +2,7 @@ package com.hbm.crafting;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.OreDictManager;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import static com.hbm.inventory.OreDictManager.*;
@ -168,29 +169,29 @@ public class WeaponRecipes {
//Ammo assemblies
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_gold, 24), new Object[] { " I", "GC", 'I', GOLD.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 6), new Object[] { " I ", "GCN", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'N', ModItems.billet_yharonite });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 24), new Object[] { " I", "GC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 24), new Object[] { " I", "GC", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 32), new Object[] { " I", "GC", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_gold, 1), new Object[] { " I", "GC", 'I', GOLD.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 1), new Object[] { " I ", "GCN", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'N', ModItems.billet_yharonite });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 1), new Object[] { " I", "GC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 1), new Object[] { " I", "GC", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 1), new Object[] { " I", "GC", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(ModItems.ammo_556.stackFromEnum(30, Ammo556mm.K), new Object[] { "G", "C", 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 32), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 1), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer });
CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot });
@ -206,14 +207,14 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_cluster, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() });
CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() });
CraftingManager.addRecipeAuto(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2), new Object[] { "I", "C", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 12), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 12), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 1), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ANY_HIGHEXPLOSIVE.ingot() });
CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) });
CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ModItems.plate_polymer });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 32), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44);
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 32), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50);
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 4), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power});
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44);
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50);
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 1), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power});
//Folly shells
CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet, 1), new Object[] { " S ", "STS", "SMS", 'S', STAR.ingot(), 'T', ModItems.powder_magic, 'M', ModBlocks.block_meteor });
@ -236,13 +237,9 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CHLORINE), new Object[] { "G", "R", 'G', ModItems.pellet_gas, 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CANISTER), new Object[] { "G", "R", 'G', ModItems.pellet_canister, 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR), new Object[] { " P ", "NRN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL_CRACK.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket });
CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.BIOFUEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket });
FluidType[] chainsawTypes = new FluidType[] {Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.BIOFUEL};
for(FluidType type : chainsawTypes) CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', type.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket });
//Stinger Rockets
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", " S ", " F ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', ModItems.hull_small_aluminium);

View File

@ -6,10 +6,14 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.util.fauxpointtwelve.BlockPos;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Vec3;
import net.minecraft.world.ChunkCoordIntPair;
import net.minecraft.world.World;
@ -76,6 +80,8 @@ public class ExplosionNukeRayBatched {
}
public void collectTip(int count) {
//count = Math.min(count, 10);
int amountProcessed = 0;
@ -119,7 +125,16 @@ public class ExplosionNukeRayBatched {
chunkCoords.add(chunkPos);
}
if(res <= 0 || i + 1 >= this.length) {
if(res <= 0 || i + 1 >= this.length || i == length - 1) {
/*NBTTagCompound fx = new NBTTagCompound();
fx.setString("type", "debugline");
fx.setDouble("mX", vec.xCoord * i);
fx.setDouble("mY", vec.yCoord * i);
fx.setDouble("mZ", vec.zCoord * i);
fx.setInteger("color", 0xff0000);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(fx, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 200));*/
break;
}
}

View File

@ -182,12 +182,14 @@ public class BulletConfiguration implements Cloneable {
}
public BulletConfiguration getChlorophyte() {
this.bntUpdate = BulletConfigFactory.getHomingBehavior(200, 45);
this.dmgMin *= 1.5F;
this.dmgMax *= 1.5F;
this.bntUpdate = BulletConfigFactory.getHomingBehavior(30, 180);
this.bntHurt = BulletConfigFactory.getPenHomingBehavior();
this.dmgMin *= 2F;
this.dmgMax *= 2F;
this.wear *= 0.5;
this.velocity *= 0.3;
this.doesRicochet = false;
this.doesPenetrate = false;
this.doesPenetrate = true;
this.vPFX = "greendust";
if(this.spentCasing != null) {

View File

@ -446,7 +446,7 @@ public class BulletConfigFactory {
}
public static IBulletUpdateBehaviorNT getHomingBehavior(final double range, final double angle) {
IBulletUpdateBehaviorNT onUpdate = new IBulletUpdateBehaviorNT() {
@Override
@ -465,7 +465,6 @@ public class BulletConfigFactory {
Vec3 delta = Vec3.createVectorHelper(target.posX - bullet.posX, target.posY + target.height / 2 - bullet.posY, target.posZ - bullet.posZ);
delta = delta.normalize();
double vel = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ).lengthVector();
bullet.motionX = delta.xCoord * vel;
@ -500,6 +499,10 @@ public class BulletConfigFactory {
double deltaAngle = BobMathUtil.getCrossAngle(mot, delta);
if(deltaAngle < targetAngle) {
//Checks if the bullet is not already inside the entity's bounding box, so it doesn't pick the same target
if(bullet.getConfig().doesPenetrate && bullet.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, bullet.boundingBox.expand(2, 2, 2)) == null) {
continue;
}
target = e;
targetAngle = deltaAngle;
}
@ -514,4 +517,9 @@ public class BulletConfigFactory {
return onUpdate;
}
/** Resets the bullet's target **/
public static IBulletHurtBehaviorNT getPenHomingBehavior(){
return (bullet, hit) -> bullet.getEntityData().setInteger("homingTarget", 0);
}
}

View File

@ -108,6 +108,7 @@ public class Gun50BMGFactory {
config.firingMode = GunConfiguration.FIRE_AUTO;
config.reloadDuration = 20;
config.firingDuration = 0;
config.reloadSoundEnd = false;
config.ammoCap = 50;
config.reloadType = GunConfiguration.RELOAD_FULL;
config.allowsInfinity = true;
@ -134,7 +135,26 @@ public class Gun50BMGFactory {
config.config.add(BulletConfigSyncingUtil.BMG50_SLEEK);
config.ejector = EJECTOR_BMG;
config.animations.put(AnimType.CYCLE, new BusAnimation()
.addBus("RECOIL", new BusAnimationSequence()
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75))
)
);
config.animations.put(AnimType.RELOAD, new BusAnimation()
.addBus("TILT", new BusAnimationSequence()
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125))
.addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125))
)
.addBus("MAG", new BusAnimationSequence()
.addKeyframe(new BusAnimationKeyframe(0, 0, 1, 200))
.addKeyframe(new BusAnimationKeyframe(1, 0, 1, 200))
.addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200))
)
);
return config;
}

View File

@ -142,8 +142,11 @@ public class PollutionHandler {
try {
if(!pollutionFile.getParentFile().exists()) pollutionFile.getParentFile().mkdirs();
if(!pollutionFile.exists()) pollutionFile.createNewFile();
NBTTagCompound data = perWorld.get(world).writeToNBT();
CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile));
PollutionPerWorld ppw = perWorld.get(world);
if(ppw != null) {
NBTTagCompound data = ppw.writeToNBT();
CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile));
}
} catch(Exception ex) {
System.out.println("Failed to write " + pollutionFile.getAbsolutePath());
ex.printStackTrace();

View File

@ -258,7 +258,7 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), },50);
makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50);
makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50);
makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150);
makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), }, 60);
makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50);
makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500);
makeRecipe(new ComparableStack(ModBlocks.cmb_brick, 8), new AStack[] {new OreDictStack(CMB.ingot(), 1), new OreDictStack(CMB.plate(), 8), },100);

View File

@ -92,28 +92,28 @@ public class PressRecipes extends SerializableRecipe {
makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_arsenic_raw), ModItems.circuit_arsenic);
makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_tantalium_raw), ModItems.circuit_tantalium);
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.IRON));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_steel), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.LEAD));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_lead), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NUCLEAR));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_gold), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.GOLD));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_schrabidium), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.SCHRABIDIUM));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_nightmare), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NIGHTMARE1));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_desh), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.DESH));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.IRON));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_steel), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.LEAD));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_lead), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.NUCLEAR));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_gold), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.GOLD));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_schrabidium), ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.SCHRABIDIUM));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_nightmare), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.NIGHTMARE1));
makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_desh), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.DESH));
makeRecipe(StampType.C357, new OreDictStack(STEEL.ingot()), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.STEEL));
makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_nopip), ModItems.ammo_44);
makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_45), ModItems.ammo_45);
makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_nopip), new ItemStack(ModItems.ammo_44, 24));
makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_45), new ItemStack(ModItems.ammo_45, 32));
makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_smg), ModItems.ammo_9mm);
makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_uzi), ModItems.ammo_22lr);
makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_smg), new ItemStack(ModItems.ammo_9mm, 32));
makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_uzi), new ItemStack(ModItems.ammo_22lr, 32));
makeRecipe(StampType.C9, new OreDictStack(GOLD.ingot()), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.GOLD));
makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_lacunae), ModItems.ammo_5mm);
makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_556), ModItems.ammo_556);
makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_lacunae), new ItemStack(ModItems.ammo_5mm, 64));
makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_556), new ItemStack(ModItems.ammo_556, 32));
makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_calamity), ModItems.ammo_50bmg);
makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), ModItems.ammo_50ae);
makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.SABOT));
makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), ModItems.ammo_762);
makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_calamity), new ItemStack(ModItems.ammo_50bmg, 12));
makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), new ItemStack(ModItems.ammo_50ae, 12));
makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.SABOT));
makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), new ItemStack(ModItems.ammo_762, 32));
}
public static void makeRecipe(StampType type, AStack in, Item out) {

View File

@ -205,6 +205,8 @@ public class AnvilRecipes {
new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)},
new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3));
pullFromAssembler(new ComparableStack(ModItems.thermo_element), 2);
constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {
new ComparableStack(Blocks.stonebrick, 4),
@ -524,85 +526,93 @@ public class AnvilRecipes {
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(20, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.INCENDIARY), 2},
{ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.SHRAPNEL), 2},
{ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), U238.ingot(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.DU), 3},
{ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.SLEEK), 4},
{ModItems.ammo_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(20, Ammo20Gauge.STOCK), P_RED.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.INCENDIARY), 2},
{ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.SHRAPNEL), 2},
{ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), ModItems.powder_poison, ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.CAUSTIC), 2},
{ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), DIAMOND.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.SHOCK), 2},
{ModItems.ammo_20gauge.stackFromEnum(10, Ammo20Gauge.STOCK), Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge.stackFromEnum(10, Ammo20Gauge.WITHER), 3},
{ModItems.ammo_20gauge.stackFromEnum(100, Ammo20Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_20gauge.stackFromEnum(100, Ammo20Gauge.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(20, Ammo4Gauge.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_4gauge.stackFromEnum(20, Ammo4Gauge.FLECHETTE_PHOSPHORUS), 2},
{ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.EXPLOSIVE), ModItems.egg_balefire_shard, ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.BALEFIRE), 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(10, Ammo4Gauge.KAMPF), ModItems.pellet_canister, ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.CANISTER), 3},
{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(100, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(100, Ammo4Gauge.SLEEK), 4},
{ModItems.ammo_4gauge.stackFromEnum(120, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(120, Ammo4Gauge.SLEEK), 4},
{ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), DURA.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.AP), 2},
{ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), U238.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.DU), 2},
{ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), P_WHITE.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.PHOSPHORUS), 2},
{ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.DU), STAR.ingot(), ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STAR), 3},
{ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.CHLOROPHYTE), 3},
{ModItems.ammo_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(20, Ammo45ACP.STOCK), DURA.ingot(), ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.AP), 3},
{ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.STOCK), U238.ingot(), ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.DU), 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(100, Ammo5mm.STOCK), ModItems.ingot_semtex, ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.EXPLOSIVE), 2},
{ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), U238.ingot(), ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.DU), 2},
{ModItems.ammo_5mm.stackFromEnum(25, Ammo5mm.DU), STAR.ingot(), ModItems.ammo_5mm.stackFromEnum(25, Ammo5mm.STAR), 3},
{ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.CHLOROPHYTE), 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(20, Ammo9mm.STOCK), DURA.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.AP), 2},
{ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), U238.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.DU), 2},
{ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.CHLOROPHYTE), 3},
{ModItems.ammo_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(20, Ammo22LR.STOCK), DURA.ingot(), ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.AP), 2},
{ModItems.ammo_22lr.stackFromEnum(10, Ammo22LR.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_22lr.stackFromEnum(10, Ammo22LR.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(20, Ammo50BMG.STOCK), P_RED.dust(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.INCENDIARY), 2},
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), P_WHITE.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.PHOSPHORUS), 2},
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.ingot_semtex, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.EXPLOSIVE), 2},
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), DURA.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.AP), 2},
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), U238.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.DU), 2},
{ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.DU), STAR.ingot(), ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STAR), 3},
{ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.CHLOROPHYTE), 3},
{ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.STOCK), ModItems.coin_maskman, ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.SLEEK), 4},
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.pellet_flechette, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), 2},
{ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.FLECHETTE), ModItems.nugget_am_mix, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.FLECHETTE_AM), 3},
{ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), ModItems.powder_polonium, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE_PO), 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(20, Ammo50AE.STOCK), DURA.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.AP), 2},
{ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), U238.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.DU), 2},
{ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.DU), STAR.ingot(), ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STAR), 3},
{ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.CHLOROPHYTE), 3},
{ModItems.ammo_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(20, Ammo556mm.STOCK), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.PHOSPHORUS), 2},
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), DURA.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.AP), 2},
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), U238.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.DU), 2},
{ModItems.ammo_556.stackFromEnum(10, Ammo556mm.DU), STAR.ingot(), ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STAR), 3},
{ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.CHLOROPHYTE), 3},
{ModItems.ammo_556.stackFromEnum(100, Ammo556mm.STOCK), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.SLEEK), 4},
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), Items.redstone, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.TRACER), 2},
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), ModItems.pellet_flechette, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), 2},
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_RED.dust(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_INCENDIARY), 2},
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_PHOSPHORUS), 2},
{ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), U238.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_DU), 2},
{ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE_SLEEK), 4},
{ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE_CHLOROPHYTE), 3},
{ModItems.ammo_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(20, Ammo762NATO.STOCK), Items.redstone, ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.TRACER), 2},
{ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), DURA.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.AP), 2},
{ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), P_WHITE.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.PHOSPHORUS), 2},
{ModItems.ammo_762.stackFromEnum(10, Ammo762NATO.STOCK), U238.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.DU), 2}
{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) {

View File

@ -18,7 +18,7 @@ public class HbmCollection {
public static final Set<AmmoItemTrait> ExplosiveType = ImmutableSet.of(AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR);
public static final Set<AmmoItemTrait> DUType = ImmutableSet.of(AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.CON_HEAVY_WEAR);
public static final Set<AmmoItemTrait> StarmetalType = ImmutableSet.of(AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.NEU_STARMETAL, AmmoItemTrait.CON_HEAVY_WEAR);
public static final Set<AmmoItemTrait> ChlorophyteType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.NEU_CHLOROPHYTE, AmmoItemTrait.NEU_HOMING, AmmoItemTrait.CON_PENETRATION);
public static final Set<AmmoItemTrait> ChlorophyteType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_CHLOROPHYTE, AmmoItemTrait.NEU_HOMING, AmmoItemTrait.CON_SPEED);
/// BULLET COLLECTIONS
// SHOTGUNS

View File

@ -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 (4705)";
public static final String VERSION = "1.0.27 BETA (4707)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version

View File

@ -1833,6 +1833,15 @@ public class ClientProxy extends ServerProxy {
Minecraft.getMinecraft().effectRenderer.addEffect(text);
}
if("debugline".equals(type)) {
double mX = data.getDouble("mX");
double mY = data.getDouble("mY");
double mZ = data.getDouble("mZ");
int color = data.getInteger("color");
ParticleDebugLine text = new ParticleDebugLine(world, x, y, z, mX, mY, mZ, color);
Minecraft.getMinecraft().effectRenderer.addEffect(text);
}
if("network".equals(type)) {
ParticleDebug debug = null;
double mX = data.getDouble("mX");

View File

@ -0,0 +1,72 @@
package com.hbm.particle;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.World;
public class ParticleDebugLine extends EntityFX {
int color;
public ParticleDebugLine(World world, double x, double y, double z, double lx, double ly, double lz, int color) {
super(world, x, y, z, lx, ly, lz);
this.motionX = lx;
this.motionY = ly;
this.motionZ = lz;
this.color = color;
this.particleMaxAge = 60;
}
@Override
public void onUpdate() {
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
if(this.particleAge++ >= this.particleMaxAge) {
this.setDead();
}
}
@Override
public int getFXLayer() {
return 3;
}
@Override
public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) {
double pX = this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX;
double pY = this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY;
double pZ = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ;
double mX = pX + motionX;
double mY = pY + motionY;
double mZ = pZ + motionZ;
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_COLOR_MATERIAL);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_POINT_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA);
tess.startDrawing(GL11.GL_LINES);
tess.setBrightness((int) (240 - (240 * (this.particleAge + interp) / this.particleMaxAge)));
tess.setColorOpaque_I(color);
tess.addVertex(pX, pY, pZ);
tess.addVertex(mX, mY, mZ);
tess.draw();
GL11.glEnable(GL11.GL_COLOR_MATERIAL);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_POINT_SMOOTH);
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glPopMatrix();
}
}

View File

@ -1,5 +1,7 @@
package com.hbm.render.item.weapon;
import com.hbm.render.anim.HbmAnimations;
import net.minecraftforge.client.model.IModelCustom;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
@ -32,62 +34,90 @@ public class ItemRenderWeaponAR15 implements IItemRenderer {
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ar15_tex);
switch(type) {
case EQUIPPED_FIRST_PERSON:
double s0 = 0.125D;
GL11.glRotated(25, 0, 0, 1);
GL11.glTranslated(1.0, 0.0, -0.5);
GL11.glRotated(80, 0, 1, 0);
GL11.glScaled(s0, s0, s0);
break;
case EQUIPPED:
double scale = 0.125D;
GL11.glScaled(scale, scale, scale);
GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(10, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(4F, -2F, 5F);
break;
case ENTITY:
IModelCustom model = ResourceManager.ar15;
double s1 = 0.1D;
GL11.glScaled(s1, s1, s1);
break;
case INVENTORY:
switch (type) {
GL11.glEnable(GL11.GL_LIGHTING);
double s = 0.75D;
GL11.glTranslated(6, 9, 0);
GL11.glRotated(-90, 0, 1, 0);
GL11.glRotated(-135, 1, 0, 0);
GL11.glScaled(s, s, -s);
break;
default: break;
case EQUIPPED_FIRST_PERSON:
double s0 = 0.25D;
GL11.glRotated(25, 0, 0, 1);
GL11.glTranslated(1.25, 0, -0.25);
GL11.glRotated(-100, 0, 1, 0);
GL11.glScaled(s0, s0, s0);
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
GL11.glRotated(recoil[0] * 2.5, 1, 0, 0);
GL11.glTranslated(0, 0, recoil[0]);
double[] tilt = HbmAnimations.getRelevantTransformation("TILT");
GL11.glTranslated(0, tilt[0], 3);
GL11.glRotated(tilt[0] * -35, 0, 0, 1);
GL11.glTranslated(0, 0, -3);
model.renderPart("main");
double[] mag = HbmAnimations.getRelevantTransformation("MAG");
GL11.glPushMatrix();
GL11.glTranslated(0, 0, 5);
GL11.glRotated(mag[0] * 60 * (mag[2] == 1 ? 2.5 : 1), -1, 0, 0);
GL11.glTranslated(0, 0, -5);
model.renderPart("mag");
GL11.glPopMatrix();
break;
case EQUIPPED:
double scale = 0.25D;
GL11.glScaled(scale, scale, scale);
GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(-2F, -0.9F, -0.75F);
break;
case ENTITY:
double s1 = 0.2D;
GL11.glScaled(s1, s1, s1);
GL11.glTranslated(0, 1, 0);
GL11.glRotatef(90, 0, 1, 0);
break;
case INVENTORY:
GL11.glEnable(GL11.GL_LIGHTING);
double s = 1.45D;
GL11.glTranslated(6, 9, 0);
GL11.glRotated(90, 0, 1, 0);
GL11.glRotated(135, 1, 0, 0);
GL11.glScaled(s, s, -s);
break;
default:
break;
}
if (type != ItemRenderType.EQUIPPED_FIRST_PERSON) {
model.renderAll();
}
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.ar15.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
}

View File

@ -160,7 +160,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser,
}
float hardness = b.getExplosionResistance(null);
if(hardness < 2400 && worldObj.rand.nextInt(5) == 0) {
if(hardness < 75 && worldObj.rand.nextInt(5) == 0) {
worldObj.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.fizz", 1.0F, 1.0F);
Block block = (this.mode != EnumWavelengths.DRX) ? Blocks.fire : (MainRegistry.polaroidID == 11) ? ModBlocks.digamma_matter : ModBlocks.fire_digamma;
worldObj.setBlock(x, y, z, block);

View File

@ -25,6 +25,8 @@ import com.hbm.util.EnumUtil;
import com.hbm.util.fauxpointtwelve.BlockPos;
import api.hbm.fluid.IFluidStandardTransceiver;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
@ -506,6 +508,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG
}
@Override
@SideOnly(Side.CLIENT)
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUIPWR(player.inventory, this);
}

View File

@ -1392,11 +1392,11 @@ item.cape_vertice.name=Lord Vertices Cape
item.cart.crate.name=Stahlkistenlore
item.cart.destroyer.name=Schuttzerstörende Lore
item.cart.empty.name=Lore
item.casing_357.name=.357 Magnum-Hülse (x24)
item.casing_44.name=.44 Magnum-Hülse (x24)
item.casing_50.name=Großkaliberhülse (x12)
item.casing_9.name=Kleinkaliberhülse (x32)
item.casing_buckshot.name=Schrothülse (x12)
item.casing_357.name=.357 Magnum-Hülsen
item.casing_44.name=.44 Magnum-Hülsen
item.casing_50.name=Großkaliberhülsen
item.casing_9.name=Kleinkaliberhülsen
item.casing_buckshot.name=Schrothülsen
item.catalyst_clay.name=Tonerde-Katalysator
item.catalytic_converter.name=Katalytischer Konverter
item.cbt_device.name=CBT-Gerät

View File

@ -2087,11 +2087,11 @@ item.cape_vertice.name=Lord Vertice's Cape
item.cart.crate.name=Crate Cart
item.cart.destroyer.name=Scrap Destroying Cart
item.cart.empty.name=Minecart
item.casing_357.name=.357 Magnum Casing (x24)
item.casing_44.name=.44 Magnum Casing (x24)
item.casing_50.name=Large Caliber Casing (x12)
item.casing_9.name=Small Caliber Casing (x32)
item.casing_buckshot.name=Buckshot Casing (x12)
item.casing_357.name=.357 Magnum Casings
item.casing_44.name=.44 Magnum Casings
item.casing_50.name=Large Caliber Casings
item.casing_9.name=Small Caliber Casings
item.casing_buckshot.name=Buckshot Casings
item.catalyst_clay.name=Clay Catalyst
item.catalytic_converter.name=Catalytic Converter
item.cbt_device.name=CBT Device

View File

@ -494,6 +494,12 @@ contents.program.doom=DOOM
contents.program.unknown=???
contents.program.windows=Установка Windows 12
commands.satellite.no_satellite=Спутник с такой частотой не найден!
commands.satellite.not_a_satellite=Предмет в руке не спутник!
commands.satellite.satellite_descended=Спутник успешно удалён.
commands.satellite.satellite_orbited=Спутник запущен.
commands.satellite.should_be_run_as_player=Команда должна быть выполнена игроком!
desc.block.barrel.acid=едкие жидкости
desc.block.barrel.acidAlt=едкие жидкости правильно
desc.block.barrel.acidStrong=сильные едкие жидкости
@ -643,6 +649,7 @@ desc.item.gun.ammoEnergyAlt=%sHE за вторичный выстрел
desc.item.gun.ammoMag=%s / %s
desc.item.gun.ammoType=Тип патронов: %s
desc.item.gun.ammoTypeAlt=Вторичные патроны: %s
desc.item.ammo.neu_leadburster=* Прикрепляется к поверхностям и распыляет пули
desc.item.gun.damage=Урон: %s - %s
desc.item.gun.damageAlt=Урон: %s
desc.item.gun.lore=чтобы увидеть более глубокий лор
@ -733,7 +740,7 @@ gun.make.MANN=Манн Ко.
gun.make.MAXIM=Хайрам Максим
gun.make.METRO=Оружейники Метро
gun.make.MWT=Лаборатории прототипов МВТ
gun.make.NAZI=Erfurter Maschinenfabrik Geipel
gun.make.ERFURT=Erfurter Maschinenfabrik Geipel
gun.make.NONE=-
gun.make.ROCKWELL=Корпорация "Рокуэлл"
gun.make.ROCKWELL_U=Корпорация "Рокуэлл"?
@ -746,6 +753,7 @@ gun.make.WINCHESTER=Winchester Repeating Arms Company
gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / Большая Гора
gun.make.REMINGTON=Remington Arms
gun.make.DRG=Deep Rock Galactic
gun.make.NAWS=Kayarm Industries
gun.name.ar15_50=Модификация AR-15 под .50 BMG
gun.name.baeAR=Стандартная винтовка британнской армии
@ -816,6 +824,7 @@ gun.name.win20Poly=Winchester Model 20 Polymer
gun.name.win20Satur=Winchester Model 20 D-25A
gun.name.zomg=Пушка отрицательной энергии EMC101
gun.name.remington870=Remington 870
gun.name.congoLake=Помповый гранатомет Congo Lake
book.error.cover=Адронный Коллайдер:$Диагностирование проблем
book.error.title1=Ошибка 0x01 [NC]
@ -1065,6 +1074,21 @@ book_lore.insanity_7.page.0=December 12th $ $ I've been out of a job, but to be
book_lore.insanity_7.page.1=The seismological observatory a couple miles south recorded constant earthquakes for days on end, not that anyone else would have noticed this deep in the desert.
book_lore.insanity_7.page.2=I have concluded that this place was cursed, making everyone sick and then descending into hell like some sort of Edgar Allan Poe story. Good riddance.
book_lore.beacon.name=Signal Beacon Instruction Booklet
book_lore.beacon.author=Flim Flam Industries
book_lore.beacon.page.0=Thank you for your purchase of a Mk.2 Illuminated Signal Beacon (rev. 1.3)! This small booklet will provide a short introduction in the operation of the beacon, as well as its inner workings.
book_lore.beacon.page.1=Chapter 1: Architecture $ Each unit is composed of four main parts: The control circuit, a lantern, a fog horn and the casing which houses the other parts. For a detailed explanation of the main circuit, please
book_lore.beacon.page.2=refer to the circuit diagram found on the inside of the maintenance lid of the casing. The lantern is made up of a polycarbonate case containing a dual-color 250 Watt halogen bulb with a standard 200mm socket, replacements
book_lore.beacon.page.3=for the bulb can be ordered from our stores. Third party bulbs are not recommended, as we cannot ensure safe operation. The case is made from a specialized zinc-coated stainless steel and is resistant to weathering.
book_lore.beacon.page.4=Chapter 2: Lantern $ The lantern's primary uses are providing light for ease of maintenance in harsh weather conditions as well as a status indicator. Should the power-on self test (POST) fail, the lantern will
book_lore.beacon.page.5=light up red, otherwise it will light up green. Note that colors can vary depending on the replacement bulb.
book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) commincation as well as for message boradcasting.
book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal,
book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection")
book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respon with two long tones. All communication afterwards has to happen using pre-negotiated signals,
book_lore.beacon.page.10=most commonly using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION".
book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ]
hbmfluid.none=Ничего
hbmfluid.water=Вода
hbmfluid.steam=Пар
@ -1201,6 +1225,12 @@ hbmfluid.calcium_solution=Раствор кальция
hbmfluid.smoke=Дым
hbmfluid.smoke_leaded=Свинцовый дым
hbmfluid.smoke_poison=Ядовитый дым
hbmfluid.sodium=Жидкий натрий
hbmfluid.sodium_hot=Горячий жидкий натрий
hbmfluid.thorium_salt=Жидкая ториевая соль
hbmfluid.thorium_salt_depleted=Обедненная жидкая ториевая соль
hbmfluid.thorium_salt_hot=Горячая жидкая ториевая соль
hbmfluid.heavywater_hot=Горячая тяжёлая вода
hbmmat.actinium227=Актиний-227
hbmmat.advancedalloy=Продвинутый сплав
@ -1294,6 +1324,7 @@ hbmmat.desh=Деш
hbmmat.cdalloy=Кадмиевая сталь
hbmmat.cadmium=Кадмий
hbmmat.watzmud=Токсичные отходы
hbmmat.zirconium=Цирконий
crucible.aa=Производство продвинутого сплава
crucible.ferro=Производство ферроуранового сплава
@ -1518,6 +1549,7 @@ chem.CC_CENTRIFUGE=Отделение хлоркальцита
chem.CC_ELECTROLYSIS=Электролиз хлорида кальция
chem.PC_ELECTROLYSIS=Электролиз хлорида калия
chem.LAMINATE=Производство ламината
chem.THORIUM_SALT=Обогащение ториевой соли
item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core
item.record.ss.desc=Valve - Sector Sweep
@ -2034,24 +2066,38 @@ tile.machine_liquefactor.desc=Мощная машина для превраще
container.machineSolidifier=Отвердитель
tile.machine_solidifier.name=Промышленный отвердитель
tile.machine_solidifier.desc=Универсальная машина, оснащенная системами охлаждения и другими$универсальными инструментами для превращения жидкостей в твердые вещества с использованием различных$процессов, таких как замораживание и нефтехимическая полимеризация.
tile.conveyor.name=Конвейер
tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend
container.craneExtractor=Конвейерный извлекатель
container.craneInserter=Конвейерный вставщик
tile.crane_extractor.name=Конвейерный извлекатель
tile.crane_extractor.desc=Takes items from inventories and places them on covneyor belts$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side
tile.crane_inserter.name=Конвейерный вставщик
tile.crane_inserter.desc=Accepts items from conveyors and places them into containers$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side
container.craneBoxer=Конвейерный упаковщик
container.craneRouter=Конвейерный сортировщик
container.craneUnboxer=Конвейерный распаковщик
tile.crane_boxer.name=Конвейерный упаковщик
tile.crane_boxer.desc=Loads a configurable amount of stacks into boxes which move along conveyor belts$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side
tile.crane_router.name=Конвейерный сортировщик
tile.crane_router.desc=Sorts item based on defined criteria$Sides can be defined as blacklist, whitelist or wildcard$Wildcard sides are only chosen if no other filter matches
tile.crane_unboxer.name=Конвейерный распаковщик
tile.crane_unboxer.desc=Receives boxes and extracts their contents$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side
tile.conveyor_chute.name=Конвейерный желоб
tile.conveyor_double.name=Двухполосная конвейер
tile.conveyor_chute.desc=Moves items down$The bottom-most chute will act like a regular conveyor belt
tile.conveyor_double.name=Двухполосный конвейер
tile.conveyor_double.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend
tile.conveyor_lift.name=Конвейерный цепной лифт
tile.conveyor_lift.desc=Moves items up$Requires at least two blocks on top of each other to work properly
tile.conveyor_triple.name=Трёхполосный конвейер
tile.conveyor_triple.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend
container.craneGrabber=Конвейерный сборщик
tile.crane_grabber.name=Конвейерный сборщик
tile.crane_grabber.desc=Takes items from passing conveyors and places them into containers$Will only take items from the closest lane$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side
tile.crane_splitter.name=Конвейерный разделитель
tile.crane_splitter.desc=Splits items and stacks evenly onto two conveyor belts$Is a conveyor belt itself, so it can directly input into an inserter or sorter
container.turretArty=Грег
tile.turret_arty.name=Артиллерийская турель "Грег"
container.heaterFirebox=Топка
@ -2147,6 +2193,7 @@ container.machineMixer=Промышленный смеситель
tile.machine_turbinegas.name=Газовая турбина комбинированного цикла
container.turbinegas=Газовая турбина комбинированного цикла
tile.machine_autosaw.name=Автоматическая пила
tile.machine_autosaw.desc=Срубает ближайшие растения, пересаживает деревья$Принимает:$-Древесное масло$-Этанол$-Рыбное масло$-Тяжелую нефть
tile.machine_hephaestus.name=Геотермальный теплообменик
tile.ore_volcano.name=Геотермальный источник
container.vacuumDistill=Вакуумный нефтеперерабатывающий завод
@ -2154,6 +2201,7 @@ tile.machine_vacuum_distill.name=Вакуумный нефтеперерабат
tile.machine_catalytic_reformer.name=Каталитический реформер
container.catalyticReformer=Каталитический реформер
tile.fan.name=Вентилятор
tile.fan.desc=Активируется редстоуном$Толкает существ до 10 блоков$ПКМ отвёрткой чтобы повернуть
tile.watz.name=Реактор Ватцз
tile.watz_pump.name=Нагнетающая помпа Ватцза
tile.machine_coker.name=Коксовая установка
@ -2169,6 +2217,15 @@ tile.machine_industrial_boiler.name=Промышленный бойлер
tile.machine_industrial_boiler.desc=Большой бойлер, в котором можно вскипятить воду или разогреть нефть.$Требует внешний источник тепла.$Скорость передачи тепла: ΔT*0.01 TU/t$Не может взорваться
container.crateTemplate=Сборочный ящик
tile.crate_template.name=Сборочный ящик
container.machineElectrolyser=Электролизёр
tile.machine_electrolyser.name=Электролизёр
tile.lantern.name=Светильник
tile.lantern_behemoth.name=Старый светильник
container.ashpit=Зольник
tile.machine_ashpit.name=Зольник
tile.machine_ashpit.desc=Собирает золу из топок и нагревательных печей
tile.machine_stirling_creative.name=Творческий генератор Стирлинга
tile.machine_stirling_creative.desc=Превращает тепло в энергию. Требует внешний источник тепла.$Скорость теплопередачи: T*0.1 TU/t$Бесконечное потребление/t$Эффективность: 100%%
tile.cm_block.alloy.name=Корпус машины из продвинутого сплава
tile.cm_block.desh.name=Корпус машины из деша
@ -2195,6 +2252,26 @@ tile.cm_circuit.gold.name=Блок микросхем 4-го уровня
tile.cm_circuit.red_copper.name=Блок микросхем 3-го уровня
tile.cm_circuit.schrabidium.name=Блок микросхем 5-го уровня
tile.pwr_block.name=Водо-водяной энергетический реактор (ВВЭР)
tile.pwr_casing.name=Внешняя обшивка ВВЭР
tile.pwr_casing.desc=Для формирования реактора необходимо покрыть все внутренние части$Размещение: Обшивка
tile.pwr_channel.name=Каналы с охладителем ВВЭР
tile.pwr_channel.desc=Использует тепло корпуса для нагрева охлаждающей жидкости$Размещение: Любое
tile.pwr_control.name=Регулирующие стержни ВВЭР
tile.pwr_control.desc=Позволяет управлять размещёнными топливными стержнями$Размещение: Внутри, между топливными стержнями
tile.pwr_controller.name=Контроллер ВВЭР
tile.pwr_controller.desc=Панель управления ВВЭР$Размещение: Обшивка, только один на весь реактор$ПКМ чтобы собрать реактор
tile.pwr_fuel.name=Топливный стержень ВВЭР
tile.pwr_fuel.desc=Увеличивает вместимость топлива$Размещение: Внутри, повышает реактивность
tile.pwr_heatex.name=Теплообменник ВВЭР
tile.pwr_heatex.desc=Перемещает тепло из активной зоны на корпус$Размещение: Любое
tile.pwr_neutron_source.name=Источник нейтронов ВВЭР
tile.pwr_neutron_source.desc=Добавляет 20 единиц потока в активную зону$Размещение: Любое$Поток достигает топливных стержней если между ними ничего нет
tile.pwr_port.name=Люк доступа ВВЭР
tile.pwr_port.desc=Ввод/вывод жидкостей и предметов$Размещение: Обшивка
tile.pwr_reflector.name=Нейтронный отражатель ВВЭР
tile.pwr_reflector.desc=Отражает нейтроны обратно к топливным стержням$Размещение: Внутри, повышает реактивность$Подходит для обшивки
container.hadron=Ускоритель частиц
tile.hadron_access.name=Терминал доступа ускорителя частиц
tile.hadron_core.name=Ядро ускорителя частиц
@ -2718,6 +2795,7 @@ item.gem_tantalium.desc='Танталум'
item.gem_tantalium.desc.P11=АКА Танталий.
item.gem_alexandrite.name=Александрит
item.gem_volcanic.name=Вулканический самоцвет
item.gem_sodalite.name=Содалит
item.black_diamond.name=Чёрный алмаз
item.crystal_cobalt.name=Кристализованный кобальт
item.crystal_osmiridium.name=Кристализованный осмиридий
@ -2841,6 +2919,9 @@ tile.block_waste_vitrified.name=Блок остеклованных ядерны
tile.block_fallout.name=Блок радиоактивных осадков
tile.fallout.name=Радиоактивный осадок
tile.ash_digamma.name=Пепел
item.powder_ash.coal.name=Угольная зола
item.powder_ash.misc.name=Пепел
item.powder_ash.wood.name=Древесная зола
tile.glass_ash.name=Пепельное стекло
tile.fire_digamma.name=Затяжная Дигамма
tile.balefire.name=Жар-пламя
@ -3078,6 +3159,7 @@ tile.hazmat.name=Блок защитной ткани
tile.deco_emitter.name=Декоративный источник света
tile.part_emitter.name=Декоративный источник частиц
tile.piston_inserter.name=Вставщик
tile.piston_inserter.desc=Может принимать один предмет$Если подан сигнал редстоуна, то вставит предмет в просверленный графит$Все предметы в просверленном графите в цепочке будут сдвинуты на один блок$Требуется один блок воздуха между графитом
tile.plant_flower.foxglove.name=Наперстянка
tile.plant_flower.nightshade.name=Белладонна
tile.plant_flower.tobacco.name=Табак
@ -3369,6 +3451,7 @@ item.powder_sr90.name=Порошок стронция-90
item.powder_sr90_tiny.name=Кучка порошка стронция-90
item.powder_sawdust.name=Древесные опилки
item.powder_flux.name=Флюс
item.powder_sodium.name=Натрий
item.fragment_neodymium.name=Неодимовый осколок
item.fragment_cobalt.name=Кобальтовый осколок
@ -3658,6 +3741,52 @@ item.rod_quad.waste.name=Счетверённый стержень с ядерн
item.rod_quad.lead.name=Счетверённый свинцовый стержень
item.rod_quad.uranium.name=Счетверённый урановый стержень
item.pwr_fuel.bfb_am_mix.name=Стержень ВВЭР ЦБР с реакторным америцием
item.pwr_fuel.bfb_pu241.name=Стержень ВВЭР ЦБР с плутонием-241
item.pwr_fuel.hea242.name=Топливный стержень ВВЭР с высокообогащенным америцием-242
item.pwr_fuel.hen237.name=Топливный стержень ВВЭР с высокообогащенным нептунием-237
item.pwr_fuel.hep239.name=Топливный стержень ВВЭР с высокообогащенным плутонием-239
item.pwr_fuel.hep241.name=Топливный стержень ВВЭР с высокообогащенным плутонием-241
item.pwr_fuel.hes326.name=Топливный стержень ВВЭР с высокообогащенным шрабидием-326
item.pwr_fuel.hes327.name=Топливный стержень ВВЭР с высокообогащенным шрабидием-327
item.pwr_fuel.heu233.name=Топливный стержень ВВЭР с высокообогащенным ураном-233
item.pwr_fuel.heu235.name=Топливный стержень ВВЭР с высокообогащенным ураном-235
item.pwr_fuel.mea.name=Топливный стержень ВВЭР со среднеобогащенным америцием
item.pwr_fuel.men.name=Топливный стержень ВВЭР со среднеобогащенным нептунием
item.pwr_fuel.mep.name=Топливный стержень ВВЭР со среднеобогащенным плутонием
item.pwr_fuel.meu.name=Топливный стержень ВВЭР со среднеобогащенным ураном
item.pwr_fuel.mox.name=Топливный стержень ВВЭР с МОКС-топливом
item.pwr_fuel_depleted.bfb_am_mix.name=Обедненный стержень ВВЭР ЦБР с реакторным америцием
item.pwr_fuel_depleted.bfb_pu241.name=Обедненный стержень ВВЭР ЦБР с плутонием-241
item.pwr_fuel_depleted.hea242.name=Обедненный топливный стержень ВВЭР с высокообогащенным америцием-242
item.pwr_fuel_depleted.hen237.name=Обедненный топливный стержень ВВЭР с высокообогащенным нептунием-237
item.pwr_fuel_depleted.hep239.name=Обедненный топливный стержень ВВЭР с высокообогащенным плутонием-239
item.pwr_fuel_depleted.hep241.name=Обедненный топливный стержень ВВЭР с высокообогащенным плутонием-241
item.pwr_fuel_depleted.hes326.name=Обедненный топливный стержень ВВЭР с высокообогащенным шрабидием-326
item.pwr_fuel_depleted.hes327.name=Обедненный топливный стержень ВВЭР с высокообогащенным шрабидием-327
item.pwr_fuel_depleted.heu233.name=Обедненный топливный стержень ВВЭР с высокообогащенным ураном-233
item.pwr_fuel_depleted.heu235.name=Обедненный топливный стержень ВВЭР с высокообогащенным ураном-235
item.pwr_fuel_depleted.mea.name=Обедненный топливный стержень ВВЭР со среднеобогащенным америцием
item.pwr_fuel_depleted.men.name=Обедненный топливный стержень ВВЭР со среднеобогащенным нептунием
item.pwr_fuel_depleted.mep.name=Обедненный топливный стержень ВВЭР со среднеобогащенным плутонием
item.pwr_fuel_depleted.meu.name=Обедненный топливный стержень ВВЭР со среднеобогащенным ураном
item.pwr_fuel_depleted.mox.name=Обедненный топливный стержень ВВЭР с МОКС-топливом
item.pwr_fuel_hot.bfb_am_mix.name=Горячий стержень ВВЭР ЦБР с реакторным америцием
item.pwr_fuel_hot.bfb_pu241.name=Горячий стержень ВВЭР ЦБР с плутонием-241
item.pwr_fuel_hot.hea242.name=Горячий стержень ВВЭР с высокообогащенным америцием-242
item.pwr_fuel_hot.hen237.name=Горячий стержень ВВЭР с высокообогащенным нептунием-237
item.pwr_fuel_hot.hep239.name=Горячий стержень ВВЭР с высокообогащенным плутонием-239
item.pwr_fuel_hot.hep241.name=Горячий стержень ВВЭР с высокообогащенным плутонием-241
item.pwr_fuel_hot.hes326.name=Горячий стержень ВВЭР с высокообогащенным шрабидием-326
item.pwr_fuel_hot.hes327.name=Горячий стержень ВВЭР с высокообогащенным шрабидием-327
item.pwr_fuel_hot.heu233.name=Горячий стержень ВВЭР с высокообогащенным ураном-233
item.pwr_fuel_hot.heu235.name=Горячий стержень ВВЭР с высокообогащенным ураном-235
item.pwr_fuel_hot.mea.name=Горячий стержень ВВЭР со среднеобогащенным америцием
item.pwr_fuel_hot.men.name=Горячий стержень ВВЭР со среднеобогащенным нептунием
item.pwr_fuel_hot.mep.name=Горячий стержень ВВЭР со среднеобогащенным плутонием
item.pwr_fuel_hot.meu.name=Горячий стержень ВВЭР со среднеобогащенным ураном
item.pwr_fuel_hot.mox.name=Горячий стержень ВВЭР с МОКС-топливом
item.billet_mox_fuel.name=Заготовка МОКС-топлива
item.billet_mox_fuel.desc=Карманный Мокси!
item.billet_neptunium.name=Заготовка нептуния
@ -4185,6 +4314,8 @@ item.gun_mymy.name=Ньетес
item.gun_ar15.name="Джош"
item.gun_glass_cannon.name=Стеклянная пушка
item.boltgun.name=Пневматический заклепочник
item.gun_congolake.name=Congo Lake
item.gun_cryocannon.name=Криопушка
item.gun_revolver_iron_ammo.name=Пуля
item.gun_revolver_ammo.name=Свинцовая пуля
@ -4232,6 +4363,7 @@ item.gun_hp_ammo.name=Чернильный картридж
item.gun_euthanasia_ammo.name=Шприцы
item.gun_defabricator_ammo.name=Энергетические ячейки Дефабрикатора
item.ammo_cell.name=Энерго-патроны
item.ammo_grenade_leadburster.name=40мм Лидбастер
item.ammo_12gauge.name=Картечь 12 калибра
item.ammo_12gauge_incendiary.name=Картечь 12 калибра (Зажигательная)
@ -4985,6 +5117,10 @@ item.dieselsuit_boots.name=Высокие каблуки с дизельным
item.dieselsuit_helmet.name=Головной датчик окружающей среды с дизельным двигателем
item.dieselsuit_legs.name=Сервоприводы для ног с дизельным приводом
item.dieselsuit_plate.name=Кибернетика с дизельным двигателем
item.envsuit_boots.name=Ботинки защитного костюма M1TTY
item.envsuit_helmet.name=Шлем защитного костюма M1TTY
item.envsuit_legs.name=Поножи защитного костюма M1TTY
item.envsuit_plate.name=Нагрудник защитного костюма M1TTY
tile.mush.name=Светящийся гриб
tile.waste_mycelium.name=Светящийся мицелий
@ -5029,6 +5165,7 @@ item.wand_k.name=Строительная палочка
item.wand_s.name=Структурная палочка
item.wand_d.name=Отладочная палочка
item.analyzer.name=Анализатор
item.analysis_tool.name=Анализатор
item.screwdriver.name=Отвёртка
item.screwdriver_desh.name=Деш-отвёртка
item.chemistry_set.name=Лабораторная посуда

File diff suppressed because it is too large Load Diff