Compare commits

..

No commits in common. "960d28740b5f24655a9abc89056c236ebb260ca8" and "04708e8c90157be08443176a17f41f779f0fda3d" have entirely different histories.

27 changed files with 126 additions and 379 deletions

View File

@ -1,6 +1,49 @@
## Changed
* Snow golems now use the grey metallic gib particles instead of blood
## Added
* Target pistol
* Weapon steel tier pistol that holds 15 rounds and shoots .22 LR
* Accepts silencers
* NCR Ranger Power Armor
* Legendary set, like the remnants power armor
* Stats are largely similar, but has a speed boost when sprinting
* Comes with the power armor - melee controller item
* If the full set is equipped, the melee controller allows for powerful melee attacks
* Left click does two rapid swings, right click causes both arms to swing at once
* The NCRPA's blades are armor-piercing and gib enemies on death
* The blades do 250% damage on large enemies, i.e. ones with 100 or more max health
## Fixed
* Fixed chemical factory internal tank sharing ignoring tank pressure
* Fixed the NCR ranger power armor missing most protection stats
## Changed
* Reworked the industrial turbine
* New model and texture
* Removed the GUI, it now uses the same in-world compressor toggle as the leviathan turbine
* No longer has a volatile power buffer, power isn't buffered at all anymore, similar to steam engines and MHD turbines
* Steam capacity changes based on compression level, the ratio for turbine cascades is now 1:1:1:1
* Comes with a flywheel, energy output slowly ramps up as steam is supplied and slowly goes down as steam cuts out
* Recipe is similar to the old inudstrial turbine, but slightly simplified and cheaper
* Leviathan turbines no longer have a power buffer
* Updated russian and chinese localization
* The PWR can now be controlled via RoR
* The RoR value reader can read core and hull heat as well as fuel depletion in percent
* The RoR controller can set the control rod level in percent as well as jetison all loaded fuel
* Having 528, expensive or rampant mode enabled now displays a badge in the top left corner, showing that it is enabled
* Badges can be disabled with the `BADGES_HUD` value of `/ntmclient`
* The badge only shows up if the "true" configuration is used, 528 requires default settings, expensive requires the precision assembler config to not be modified and rampant needs most of the default settings enabled
* If all three modes are enabled, the "328 mode" badge also appears
* Removed toothpicks, as they haven't been used in recipes for well over a year
* Cleaned up a ton of unused assets
* The old crucible smelting rules when not using a template can be restores with the `/ntmserver` value `LEGACY_CRUCIBLE_RULES`
* Due to repeated complaints, power armor sounds are now generally more quiet, with 25% volume for steps and 50% volume for jumping and landing
* Reduced mask man's projectile resistance from 75% to 50%
* Reduced maskman's resistance to damage above 50 from 75% to 50%
* Remnants power armor can now use the melee controller, allowing Sergeant Arch Dornan to beat the snot out of people
* Improved gibbing
* All cybercrab variants can now be gibbed, turning into metal fragments
* Iron golems now also turn into metal instead of fleshy chunks
* Slimes can now be gibbed, turning into slime globs
* Creepers now also gib into slime instead of blood
# Fixed
* Fixed proxy tiles that do not use electricity at all visually connecting to cables
* Fixed missing texture for canned horse slime
* Fixed incorrect ore dictionary key used by enriched naquadah watz pellet recipe
* Fixed out of bounds light level for the RTG blast furnace
* Fixed the recipe configs now allowing NBT data for output items, rendering the precision assembler and annihilator configs useless

View File

@ -1,6 +1,6 @@
mod_version=1.0.27
# Empty build number makes a release type
mod_build_number=5615
mod_build_number=5593
credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\
@ -36,7 +36,6 @@ credits=HbMinecraft,\
\ xxwinhere (chinese localization),\
\ Nycticoraxnightheron (chinese localization),\
\ NarekoMichigami810 (chinese localization),\
\ Romarku (chinese localization),\
\ Maksymisio (polish localization)\
\ el3ctro4ndre (italian localization),\
\ Goaty1208 (italian localization),\
@ -75,7 +74,6 @@ credits=HbMinecraft,\
\ Dash (PA particle serialization fix),\
\ archiecarrot123 (armor rendering compatibility fix),\
\ mikkerlo (mining laser & builder's jetpack improvements),\
\ Hacker6329 (ZIRNOX redstone control),\
\ icomet (refactoring),\
\ martemen (project settings),\
\ OvermindDL1 (project settings),\

View File

@ -205,18 +205,10 @@ public class BlockKeyhole extends BlockStone {
if(rand == 0) {
world.setBlock(x, y + 1, z, ModBlocks.deco_loot);
TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y + 1, z);
if(world.rand.nextInt(5) == 0) {
loot.addItem(new ItemStack(ModItems.ncrpa_helmet), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.ncrpa_plate), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.ncrpa_legs), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.ncrpa_boots), 0, 0, 0);
} else {
loot.addItem(new ItemStack(ModItems.trenchmaster_helmet), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.trenchmaster_plate), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.trenchmaster_legs), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.trenchmaster_boots), 0, 0, 0);
}
loot.addItem(new ItemStack(ModItems.trenchmaster_helmet), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.trenchmaster_plate), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.trenchmaster_legs), 0, 0, 0);
loot.addItem(new ItemStack(ModItems.trenchmaster_boots), 0, 0, 0);
} else {
spawnPedestalItem(world, x, y + 1, z);
}

View File

@ -9,7 +9,6 @@ import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityReactorZirnox;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
@ -40,7 +39,7 @@ public class ReactorZirnox extends BlockDummyable {
return true;
} else if(!player.isSneaking()) {
BossSpawnHandler.markFBI(player);
int[] pos = this.findCore(world, x, y, z);
if(pos == null)
@ -55,7 +54,7 @@ public class ReactorZirnox extends BlockDummyable {
@Override
public int[] getDimensions() {
return new int[] {1, 0, 2, 2, 2, 2,};
return new int[] {1, 0, 2, 2, 2, 2,};
}
@Override
@ -88,43 +87,4 @@ public class ReactorZirnox extends BlockDummyable {
this.makeExtra(world, x + dir.offsetX * o, y + 4, z + dir.offsetZ * o);
}
@Override
public void onNeighborBlockChange(World world, int x, int y, int z, Block neighbor) {
super.onNeighborBlockChange(world, x, y, z, neighbor);
if (world.isRemote) return;
int[] core = this.findCore(world, x, y, z);
if (core == null) return;
int cx = core[0];
int cy = core[1];
int cz = core[2];
TileEntity te = world.getTileEntity(cx, cy, cz);
if (!(te instanceof TileEntityReactorZirnox)) return;
TileEntityReactorZirnox reactor = (TileEntityReactorZirnox) te;
boolean powered = false;
// 2. Scan multiblock
for (int dx = -2; dx <= 2 && !powered; dx++) {
for (int dy = 0; dy <= 4 && !powered; dy++) {
for (int dz = -2; dz <= 2 && !powered; dz++) {
// Get only surface blocks
if (dx == -2 || dx == 2 ||
dy == 0 || dy == 4 ||
dz == -2 || dz == 2) {
int sx = cx + dx;
int sy = cy + dy;
int sz = cz + dz;
if (world.isBlockIndirectlyGettingPowered(sx, sy, sz) ||
world.getBlockPowerInput(sx, sy, sz) > 0) {
powered = true;
break;
}
}
}
}
}
reactor.setRedstonePowered(powered);
}
}
}

View File

@ -103,9 +103,6 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_charge_thrower, 1), new Object[] { "MMM", "BBL", "GG ", 'M', GUNMETAL.mechanism(), 'B', STEEL.heavyBarrel(), 'G', STEEL.grip(), 'L', ANY_RUBBER.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_drill, 1), new Object[] { " GL", "IBP", " GL", 'G', GUNMETAL.ingot(), 'L', ANY_RUBBER.ingot(), 'I', TI.ingot(), 'B', STEEL.block(), 'P', ModItems.piston_selenium });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_pa_melee, 1), new Object[] { " C ", "MWM", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.motor, 'W', GOLD.wireDense() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_pa_ranged, 1), new Object[] { "C", "W", "P", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'P', ANY_PLASTIC.ingot(), 'W', GOLD.wireDense() });
//SEDNA Ammo
CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE, 6), new Object[] { "C", "P", "G", 'C', KEY_COBBLESTONE, 'P', Items.paper, 'G', Items.gunpowder });
CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE_AP, 6), new Object[] { "C", "P", "G", 'C', Items.flint, 'P', Items.paper, 'G', Items.gunpowder });

View File

@ -1440,7 +1440,6 @@ public class ModItems {
public static Item gun_charge_thrower;
public static Item gun_drill;
public static Item gun_pa_melee;
public static Item gun_pa_ranged;
public static Item ammo_standard;
public static Item ammo_secret;
@ -6331,7 +6330,6 @@ public class ModItems {
GameRegistry.registerItem(gun_charge_thrower, gun_charge_thrower.getUnlocalizedName());
GameRegistry.registerItem(gun_drill, gun_drill.getUnlocalizedName());
GameRegistry.registerItem(gun_pa_melee, gun_pa_melee.getUnlocalizedName());
GameRegistry.registerItem(gun_pa_ranged, gun_pa_ranged.getUnlocalizedName());
GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName());
GameRegistry.registerItem(ammo_secret, ammo_secret.getUnlocalizedName());

View File

@ -21,8 +21,6 @@ import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
import net.minecraftforge.client.IItemRenderer;
@ -55,6 +53,8 @@ public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider
if(this != ModItems.ncrpa_plate) return;
HbmPlayerProps props = HbmPlayerProps.getData(player);
/// SPEED ///
Multimap multimap = super.getAttributeModifiers(stack);
multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(speed, "NCRPA SPEED", 0.1, 0));
@ -63,9 +63,6 @@ public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider
if(player.isSprinting()) {
player.getAttributeMap().applyAttributeModifiers(multimap);
}
if(world.getTotalWorldTime() % 20 != 0) return;
if(HbmPlayerProps.getData(player).enableHUD) player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 300, 0, true));
}
@Override public Item getItemForRenderer() { return this; }
@ -82,19 +79,12 @@ public class ArmorNCRPA extends ArmorFSBPowered implements IItemRendererProvider
"Helmet,Eyes", "Chest", "LeftArm", "RightArm", "LeftLeg", "RightLeg", "LeftBoot", "RightBoot");
}};
}
public static final ArmorNCRPAMelee meleeComponent = new ArmorNCRPAMelee();
public static final ArmorNCRPARanged rangedComponent = new ArmorNCRPARanged();
@Override
public IPAMelee getMeleeComponent(EntityPlayer entity) {
if(this.hasFSBArmorIgnoreCharge(entity)) return meleeComponent;
return null;
}
@Override
public IPARanged getRangedComponent(EntityPlayer entity) {
if(this.hasFSBArmorIgnoreCharge(entity)) return rangedComponent;
return null;
}
}

View File

@ -1,51 +0,0 @@
package com.hbm.items.armor;
import com.hbm.entity.projectile.EntityBulletBaseMK4;
import com.hbm.items.weapon.sedna.BulletConfig;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
import com.hbm.items.weapon.sedna.factory.XFactoryRocket;
import com.hbm.items.weapon.sedna.mags.MagazineBelt;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
public class ArmorNCRPARanged implements IPARanged {
public static MagazineBelt rocketSteerMag = new MagazineBelt();
public static MagazineBelt rocketMag = new MagazineBelt();
@Override public void clickPrimary(ItemStack stack, LambdaContext ctx) { fireRocket(stack, ctx, true); }
@Override public void clickSecondary(ItemStack stack, LambdaContext ctx) { fireRocket(stack, ctx, false); }
public static void fireRocket(ItemStack stack, LambdaContext ctx, boolean steer) {
EntityPlayer player = ctx.getPlayer();
GunState state = ItemGunBaseNT.getState(stack, 0);
MagazineBelt mag = steer ? rocketSteerMag : rocketMag;
if(state == GunState.IDLE) {
if(mag.acceptedBullets.isEmpty()) {
mag.addConfigs(steer ? XFactoryRocket.rocket_ncrpa_steer : XFactoryRocket.rocket_ncrpa);
}
BulletConfig cfg = mag.getType(stack, player.inventory);
int amount = mag.getAmount(stack, player.inventory);
if(amount > 0) {
mag.useUpAmmo(stack, player.inventory, 1);
EntityBulletBaseMK4 mk4 = new EntityBulletBaseMK4(player, cfg, 25, 0, 0.25F * (player.getRNG().nextBoolean() ? - 1 : 1), 0, 0);
player.worldObj.spawnEntityInWorld(mk4);
ItemGunBaseNT.setState(stack, 0, GunState.COOLDOWN);
ItemGunBaseNT.setTimer(stack, 0, 10);
player.worldObj.playSoundAtEntity(player, "hbm:weapon.rpgShoot", 0.5F, 0.9F + player.getRNG().nextFloat() * 0.2F);
player.inventoryContainer.detectAndSendChanges();
} else {
ItemGunBaseNT.setState(stack, 0, GunState.COOLDOWN);
ItemGunBaseNT.setTimer(stack, 0, 10);
player.worldObj.playSoundAtEntity(player, "hbm:weapon.reload.dryFireClick", 1F, 1F);
}
}
}
}

View File

@ -61,6 +61,4 @@ public class ArmorRPA extends ArmorFSBPowered implements IItemRendererProvider,
if(this.hasFSBArmorIgnoreCharge(entity)) return meleeComponent;
return null;
}
@Override public IPARanged getRangedComponent(EntityPlayer entity) { return null; }
}

View File

@ -1,11 +0,0 @@
package com.hbm.items.armor;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
import net.minecraft.item.ItemStack;
public interface IPARanged {
public void clickPrimary(ItemStack stack, LambdaContext ctx);
public void clickSecondary(ItemStack stack, LambdaContext ctx);
}

View File

@ -19,18 +19,4 @@ public interface IPAWeaponsProvider {
}
return null;
}
public IPARanged getRangedComponent(EntityPlayer entity);
public static IPARanged getRangedComponentClient() {
return getRangedComponentCommon(MainRegistry.proxy.me());
}
public static IPARanged getRangedComponentCommon(EntityPlayer player) {
if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof IPAWeaponsProvider) {
IPAWeaponsProvider prov = (IPAWeaponsProvider) player.inventory.armorInventory[2].getItem();
return prov.getRangedComponent(player);
}
return null;
}
}

View File

@ -14,7 +14,6 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.monster.EntityBlaze;
import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.entity.monster.EntityGolem;
import net.minecraft.entity.monster.EntityIronGolem;
import net.minecraft.entity.monster.EntityMagmaCube;
import net.minecraft.entity.monster.EntitySkeleton;
@ -55,7 +54,6 @@ public class ConfettiUtil {
if(entity instanceof EntitySlime) type = 1;
if(entity instanceof EntityMagmaCube) type = 1;
if(entity instanceof EntityCreeper) type = 1;
if(entity instanceof EntityGolem) type = 2;
if(entity instanceof EntityIronGolem) type = 2;
if(entity instanceof EntityCyberCrab) type = 2;
if(entity instanceof EntityTeslaCrab) type = 2;

View File

@ -211,8 +211,6 @@ public class GunFactoryClient {
setRendererBulk(LegoClient.RENDER_RPZB, rocket_rpzb);
setRendererBulk(LegoClient.RENDER_QD, rocket_qd);
setRendererBulk(LegoClient.RENDER_ML, rocket_ml);
setRendererBulk(LegoClient.RENDER_RPZB, rocket_ncrpa_steer);
setRendererBulk(LegoClient.RENDER_RPZB, rocket_ncrpa);
setRendererBulk(LegoClient.RENDER_NUKE, nuke_standard, nuke_demo, nuke_high);
nuke_tots.setRenderer(LegoClient.RENDER_GRENADE);

View File

@ -6,12 +6,10 @@ import java.util.function.BiFunction;
import com.hbm.items.ModItems;
import com.hbm.items.armor.IPAMelee;
import com.hbm.items.armor.IPARanged;
import com.hbm.items.armor.IPAWeaponsProvider;
import com.hbm.items.weapon.sedna.Crosshair;
import com.hbm.items.weapon.sedna.GunConfig;
import com.hbm.items.weapon.sedna.Receiver;
import com.hbm.lib.RefStrings;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState;
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
@ -28,18 +26,14 @@ public class XFactoryPA {
public static void init() {
ModItems.gun_pa_melee = new ItemGunPA(WeaponQuality.UTILITY, new GunConfig()
.draw(10).crosshair(Crosshair.NONE)
.rec(new Receiver(0))
.pp(LAMBDA_CLICK_MELEE_PRIMARY).ps(LAMBDA_CLICK_MELEE_SENONDARY).decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
ModItems.gun_pa_melee = new ItemGunMelee(WeaponQuality.UTILITY, new GunConfig()
.draw(10).inspect(55).crosshair(Crosshair.NONE)
.rec(new Receiver(0)
.dmg(10F).delay(20).jam(0)
.offset(1, -0.0625 * 2.5, -0.25D))
.pp(LAMBDA_CLICK_PRIMARY).ps(LAMBDA_CLICK_SENONDARY).decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
.anim(LAMBDA_MELEE_ANIMS).orchestra(ORCHESTRA)
).setUnlocalizedName("gun_pa_melee");
ModItems.gun_pa_ranged = new ItemGunPA(WeaponQuality.UTILITY, new GunConfig()
.draw(0).crosshair(Crosshair.CROSS)
.rec(new Receiver(0))
.pp(LAMBDA_CLICK_RANGED_PRIMARY).ps(LAMBDA_CLICK_RANGED_SENONDARY).decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
).setUnlocalizedName("gun_pa_ranged").setFull3D().setTextureName(RefStrings.MODID + ":gun_pa_ranged");
}
public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA = (stack, ctx) -> {
@ -53,11 +47,11 @@ public class XFactoryPA {
return null;
};
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_CLICK_MELEE_PRIMARY = (stack, ctx) -> {
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_CLICK_PRIMARY = (stack, ctx) -> {
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
if(component != null) component.clickPrimary(stack, ctx);
};
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_CLICK_MELEE_SENONDARY = (stack, ctx) -> {
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_CLICK_SENONDARY = (stack, ctx) -> {
IPAMelee component = IPAWeaponsProvider.getMeleeComponentClient();
if(component != null) component.clickSecondary(stack, ctx);
};
@ -75,18 +69,9 @@ public class XFactoryPA {
}
}
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_CLICK_RANGED_PRIMARY = (stack, ctx) -> {
IPARanged component = IPAWeaponsProvider.getRangedComponentClient();
if(component != null) component.clickPrimary(stack, ctx);
};
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_CLICK_RANGED_SENONDARY = (stack, ctx) -> {
IPARanged component = IPAWeaponsProvider.getRangedComponentClient();
if(component != null) component.clickSecondary(stack, ctx);
};
public static class ItemGunPA extends ItemGunBaseNT {
public static class ItemGunMelee extends ItemGunBaseNT {
public ItemGunPA(WeaponQuality quality, GunConfig... cfg) {
public ItemGunMelee(WeaponQuality quality, GunConfig... cfg) {
super(quality, cfg);
}

View File

@ -50,8 +50,6 @@ public class XFactoryRocket {
public static BulletConfig[] rocket_rpzb;
public static BulletConfig[] rocket_qd;
public static BulletConfig[] rocket_ml;
public static BulletConfig[] rocket_ncrpa;
public static BulletConfig[] rocket_ncrpa_steer;
// FLYING
public static Consumer<Entity> LAMBDA_STANDARD_ACCELERATE = (entity) -> {
@ -59,25 +57,13 @@ public class XFactoryRocket {
if(bullet.accel < 7) bullet.accel += 0.4D;
};
public static Consumer<Entity> LAMBDA_STEERING_ACCELERATE = (entity) -> {
EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity;
if(!(entity instanceof EntityPlayer)) {
if(bullet.accel < 7) bullet.accel += 0.4D;
return;
}
EntityPlayer player = (EntityPlayer) bullet.getThrower();
steeringAccelerate(entity, player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemGunBaseNT) || !ItemGunBaseNT.getIsAiming(player.getHeldItem()));
};
public static Consumer<Entity> LAMBDA_NCR_ACCELERATE = (entity) -> {
steeringAccelerate(entity, false);
};
public static void steeringAccelerate(Entity entity, boolean noSteer) {
EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity;
if(bullet.accel < 4) bullet.accel += 0.4D;
if(bullet.getThrower() == null || !(bullet.getThrower() instanceof EntityPlayer)) return;
EntityPlayer player = (EntityPlayer) bullet.getThrower();
if(Vec3.createVectorHelper(bullet.posX - player.posX, bullet.posY - player.posY, bullet.posZ - player.posZ).lengthVector() > 100) return;
if(noSteer) return;
if(player.getHeldItem() == null || !(player.getHeldItem().getItem() instanceof ItemGunBaseNT) || !ItemGunBaseNT.getIsAiming(player.getHeldItem())) return;
MovingObjectPosition mop = Library.rayTrace(player, 200, 1);
if(mop == null || mop.hitVec == null) return;
@ -90,7 +76,7 @@ public class XFactoryRocket {
bullet.motionX = vec.xCoord * speed;
bullet.motionY = vec.yCoord * speed;
bullet.motionZ = vec.zCoord * speed;
}
};
// IMPACT
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> {
@ -152,7 +138,6 @@ public class XFactoryRocket {
public static BulletConfig makeRPZB(BulletConfig original) { return original.clone(); }
public static BulletConfig makeQD(BulletConfig original) { return original.clone().setLife(400).setOnUpdate(LAMBDA_STEERING_ACCELERATE); }
public static BulletConfig makeNCR(BulletConfig original) { return original.clone().setLife(400).setOnUpdate(LAMBDA_NCR_ACCELERATE); }
public static BulletConfig makeML(BulletConfig original) { return original.clone(); }
//this is starting to get messy but we need to put this crap *somewhere* and fragmenting it into a billion classes with two methods each just isn't gonna help
@ -171,15 +156,11 @@ public class XFactoryRocket {
rocket_rpzb = new BulletConfig[rocket_template.length];
rocket_qd = new BulletConfig[rocket_template.length];
rocket_ml = new BulletConfig[rocket_template.length];
rocket_ncrpa_steer = new BulletConfig[rocket_template.length];
rocket_ncrpa = new BulletConfig[rocket_template.length];
for(int i = 0; i < rocket_template.length; i++) {
rocket_rpzb[i] = makeRPZB(rocket_template[i]);
rocket_qd[i] = makeQD(rocket_template[i]);
rocket_ml[i] = makeML(rocket_template[i]);
rocket_ncrpa_steer[i] = makeNCR(rocket_template[i]);
rocket_ncrpa[i] = makeRPZB(rocket_template[i]);
}
ModItems.gun_panzerschreck = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()

View File

@ -268,7 +268,6 @@ public class XWeaponModManager {
/** Saves the state on receiver 0 so that if the mag changes through upgrading, the state may potentially be restored, if compatible */
private static void saveMagState(ItemStack stack, int cfg) {
IMagazine mag = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, cfg).getReceivers(stack)[0].getMagazine(stack);
if(mag == null) return;
prevMagType = mag.getType(stack, null);
prevMagCount = mag.getAmount(stack, null);
}
@ -286,7 +285,6 @@ public class XWeaponModManager {
changedMagState = false;
IMagazine mag = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, cfg).getReceivers(stack)[0].getMagazine(stack);
if(mag == null) return;
if(mag.getType(stack, null) == prevMagType) {
mag.setAmount(stack, MathHelper.clamp_int(prevMagCount, 0, mag.getCapacity(stack)));
} else {

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

View File

@ -73,27 +73,4 @@ public class ItemRenderPAMelee extends ItemRenderWeaponBase {
GL11.glShadeModel(GL11.GL_FLAT);
}
public void renderOther(ItemStack stack, ItemRenderType type, Object... data) {
if(type == type.EQUIPPED) return;
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glShadeModel(GL11.GL_SMOOTH);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ncrpa_arm);
GL11.glPushMatrix();
double scale = 0.3125D;
GL11.glScaled(scale, scale, scale);
GL11.glRotated(90, 1, 0, 0);
GL11.glTranslated(0, -5.5, 0);
GL11.glTranslated(-2, 0, 0);
ResourceManager.armor_ncr.renderPart("Leftarm");
GL11.glTranslated(4, 0, 0);
ResourceManager.armor_ncr.renderPart("RightArm");
GL11.glPopMatrix();
GL11.glShadeModel(GL11.GL_FLAT);
}
}

View File

@ -5,7 +5,6 @@ import org.lwjgl.opengl.GL12;
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
import com.hbm.items.ModItems;
import com.hbm.items.armor.ArmorNCRPA;
import com.hbm.items.armor.ArmorTrenchmaster;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
import com.hbm.main.ResourceManager;
@ -48,8 +47,6 @@ public class RenderLoot extends TileEntitySpecialRenderer {
} else if(stack.getItem() instanceof ArmorTrenchmaster) {
renderTrenchmaster(stack);
} else if(stack.getItem() instanceof ArmorNCRPA) {
renderNCR(stack);
} else {
renderStandardItem(item.getW());
}
@ -110,57 +107,6 @@ public class RenderLoot extends TileEntitySpecialRenderer {
}
GL11.glPopMatrix();
}
private void renderNCR(ItemStack stack) {
GL11.glPushMatrix();
GL11.glTranslated(0.5, 1.5, 0.5);
GL11.glScaled(0.0625, 0.0625, 0.0625);
GL11.glRotated(180, 1, 0, 0);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
if(stack.getItem() == ModItems.ncrpa_helmet) {
bindTexture(ResourceManager.ncrpa_helmet);
GL11.glEnable(GL11.GL_BLEND);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
ResourceManager.armor_ncr.renderPart("Helmet");
GL11.glDisable(GL11.GL_BLEND);
float lastX = OpenGlHelper.lastBrightnessX;
float lastY = OpenGlHelper.lastBrightnessY;
GL11.glPushAttrib(GL11.GL_LIGHTING_BIT);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F);
GL11.glDisable(GL11.GL_LIGHTING);
ResourceManager.armor_ncr.renderPart("Eyes");
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopAttrib();
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY);
}
if(stack.getItem() == ModItems.ncrpa_plate) {
bindTexture(ResourceManager.ncrpa_chest);
ResourceManager.armor_ncr.renderPart("Chest");
bindTexture(ResourceManager.ncrpa_arm);
GL11.glPushMatrix();
GL11.glRotated(-3, 1, 0, 0);
ResourceManager.armor_ncr.renderPart("LeftArm");
ResourceManager.armor_ncr.renderPart("RightArm");
GL11.glPopMatrix();
}
if(stack.getItem() == ModItems.ncrpa_legs) {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ncrpa_leg);
ResourceManager.armor_ncr.renderPart("LeftLeg");
GL11.glPushMatrix();
GL11.glRotated(-0.1, 1, 0, 0);
ResourceManager.armor_ncr.renderPart("RightLeg");
GL11.glPopMatrix();
}
if(stack.getItem() == ModItems.ncrpa_boots) {
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ncrpa_leg);
ResourceManager.armor_ncr.renderPart("LeftBoot");
GL11.glPushMatrix();
GL11.glRotated(-0.1, 1, 0, 0);
ResourceManager.armor_ncr.renderPart("RightBoot");
GL11.glPopMatrix();
}
GL11.glPopMatrix();
}
private void renderNuke() {
GL11.glScaled(0.5, 0.5, 0.5);

View File

@ -206,7 +206,6 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl
for(FluidTank in : inputTanks) if(in.getTankType() != Fluids.NONE) for(FluidTank out : outputTanks) { // up to 144 iterations, but most of them are NOP anyway
if(out.getTankType() == Fluids.NONE) continue;
if(out.getTankType() != in.getTankType()) continue;
if(out.getPressure() != in.getPressure()) continue;
int toMove = BobMathUtil.min(in.getMaxFill() - in.getFill(), out.getFill(), 50);
if(toMove > 0) {
in.setFill(in.getFill() + toMove);

View File

@ -53,7 +53,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC
public int heat;
public static final int maxHeat = 100000;
public boolean redstonePowered = false;
public int pressure;
public static final int maxPressure = 100000;
public boolean isOn = false;
@ -86,12 +85,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC
carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000);
water = new FluidTank(Fluids.WATER, 32000);
}
public void setRedstonePowered(boolean powered) {
if (!powered && this.redstonePowered) {
isOn = false;
}
this.redstonePowered = powered;
}
@Override
public String getName() {
@ -122,7 +115,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC
steam.readFromNBT(nbt, "steam");
carbonDioxide.readFromNBT(nbt, "carbondioxide");
water.readFromNBT(nbt, "water");
redstonePowered = nbt.getBoolean("redstonePowered");
}
@Override
@ -134,7 +126,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC
steam.writeToNBT(nbt, "steam");
carbonDioxide.writeToNBT(nbt, "carbondioxide");
water.writeToNBT(nbt, "water");
nbt.setBoolean("redstonePowered", redstonePowered);
}
@ -185,9 +176,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC
public void updateEntity() {
if(!worldObj.isRemote) {
if (redstonePowered) {
isOn = true;
}
this.output = 0;
if(worldObj.getTotalWorldTime() % 20 == 0) {
@ -239,7 +228,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC
buf.writeInt(this.heat);
buf.writeInt(this.pressure);
buf.writeBoolean(this.isOn);
buf.writeBoolean(this.redstonePowered);
steam.serialize(buf);
carbonDioxide.serialize(buf);
water.serialize(buf);
@ -251,7 +239,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC
this.heat = buf.readInt();
this.pressure = buf.readInt();
this.isOn = buf.readBoolean();
this.redstonePowered = buf.readBoolean();
steam.deserialize(buf);
carbonDioxide.deserialize(buf);
water.deserialize(buf);
@ -442,7 +429,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IC
@Override
public void receiveControl(NBTTagCompound data) {
if(data.hasKey("control") && !redstonePowered) {
if(data.hasKey("control")) {
this.isOn = !this.isOn;
}

View File

@ -190,13 +190,6 @@ public class DamageResistanceHandler {
.addCategory(CATEGORY_ENERGY, 25F, 0.75F)
.addExact(DamageSource.fall.damageType, 0F, 1F)
.setOther(15F, 0.3F));
registerSet(ModItems.ncrpa_helmet, ModItems.ncrpa_plate, ModItems.ncrpa_legs, ModItems.ncrpa_boots, new ResistanceStats()
.addCategory(CATEGORY_PHYSICAL, 25F, 0.65F)
.addCategory(CATEGORY_FIRE, 10F, 0.9F)
.addCategory(CATEGORY_EXPLOSION, 15F, 0.25F)
.addCategory(CATEGORY_ENERGY, 10F, 0.5F)
.addExact(DamageSource.fall.damageType, 0F, 1F)
.setOther(15F, 0.25F));
ResistanceStats bj = new ResistanceStats()
.addCategory(CATEGORY_PHYSICAL, 5F, 0.5F)
.addCategory(CATEGORY_FIRE, 2.5F, 0.5F)

View File

@ -2221,7 +2221,6 @@ item.gun_minigun_lacunae.name=Lacunae
item.gun_missile_launcher.name=Raketenwerfer
item.gun_n_i_4_n_i.name=N I 4 N I
item.gun_pa_melee.name=Powerrüstung - Nahkampfcontroller
item.gun_pa_ranged.name=Powerrüstung - Fernkampfcontroller
item.gun_panzerschreck.name=Panzerschreck
item.gun_pepperbox.name=Bündelrevolver
item.gun_quadro.name=Vierfachraketenwerfer

View File

@ -3064,7 +3064,6 @@ item.gun_minigun_lacunae.name=Lacunae
item.gun_missile_launcher.name=Missile Launcher
item.gun_n_i_4_n_i.name=N I 4 N I
item.gun_pa_melee.name=Power Armor - Melee Controller
item.gun_pa_ranged.name=Power Armor - Ranged Controller
item.gun_panzerschreck.name=Panzerschreck
item.gun_pepperbox.name=Pepperbox
item.gun_quadro.name=Quad Rocket Launcher

View File

@ -3162,7 +3162,6 @@ item.gun_missile_launcher.name=Ракетная пусковая установ
item.gun_n_i_4_n_i.name=Энергетический револьвер "N I 4 N I"
item.gun_pepperbox.name=Револьвер "Перечница"
item.gun_pa_melee.name=Силовая броня - Контроллер ближнего боя
item.gun_pa_ranged.name=Силовая броня - Контроллер дальнего боя
item.gun_panzerschreck.name=Гранатомёт "Panzerschreck"
item.gun_quadro.name=Четырехствольная ракетная пусковая установка
item.gun_spas12.name=Дробовик "SPAS-12"
@ -6646,4 +6645,3 @@ desc.gui.upgrade.speed= * §4Скорость§r: Стакается до 3-х
// Last updated 15.02.2026 by RayzerHan //

View File

@ -1806,44 +1806,42 @@ item.ballistite.name=混合无烟火药
item.bandaid.name=邦迪创可贴
item.bathwater.name=有毒肥皂水
item.bathwater_mk2.name=有毒肥皂水(马香味)
item.battery_advanced.name=高级电池
item.battery_advanced_cell.name=高级电池组
item.battery_advanced_cell_12.name=十二联高级电池组
item.battery_advanced_cell_4.name=四联高级电池组
item.battery_advanced.name=高级电池(遗留)
item.battery_advanced_cell.name=高级电池组(遗留)
item.battery_advanced_cell_12.name=十二联高级电池组(遗留)
item.battery_advanced_cell_4.name=四联高级电池组(遗留)
item.battery_creative.name=无限电池
item.battery_generic.name=电池
item.battery_lithium.name=锂电池
item.battery_lithium_cell.name=锂电池组
item.battery_lithium_cell_3.name=三联锂电池组
item.battery_lithium_cell_6.name=六联锂电池组
item.battery_generic.name=电池(遗留)
item.battery_lithium.name=锂电池(遗留)
item.battery_lithium_cell.name=锂电池组(遗留)
item.battery_lithium_cell_3.name=三联锂电池组(遗留)
item.battery_lithium_cell_6.name=六联锂电池组(遗留)
item.battery_potato.name=马铃薯电池
item.battery_potatos.name=马铃薯OS
item.battery_red_cell.name=红石电池组
item.battery_red_cell_24.name=二十四联红石电池组
item.battery_red_cell_6.name=六联红石电池组
item.battery_sc_americium.name=自充电 镅-241电池
item.battery_sc_gold.name=自充电 金-198电池
item.battery_sc_lead.name=自充电 铅-209电池
item.battery_sc_plutonium.name=自充电 钚-238电池
item.battery_sc_polonium.name=自充电 钋-210电池
item.battery_sc_technetium.name=自充电 锝-98电池
item.battery_sc_uranium.name=自充电 铀-238电池
item.battery_schrabidium.name=Sa326电池
item.battery_schrabidium_cell.name=Sa326电池组
item.battery_schrabidium_cell_2.name=双联Sa326电池组
item.battery_schrabidium_cell_4.name=四联Sa326电池组
item.battery_red_cell.name=红石电池组(遗留)
item.battery_red_cell_24.name=二十四联红石电池组(遗留)
item.battery_red_cell_6.name=六联红石电池组(遗留)
item.battery_sc_americium.name=自充电 镅-241电池(遗留)
item.battery_sc_gold.name=自充电 金-198电池(遗留)
item.battery_sc_lead.name=自充电 铅-209电池(遗留)
item.battery_sc_plutonium.name=自充电 钚-238电池(遗留)
item.battery_sc_polonium.name=自充电 钋-210电池(遗留)
item.battery_sc_technetium.name=自充电 锝-99电池遗留
item.battery_sc_uranium.name=自充电 铀-238电池(遗留)
item.battery_schrabidium.name=Sa326电池(遗留)
item.battery_schrabidium_cell.name=Sa326电池组(遗留)
item.battery_schrabidium_cell_2.name=双联Sa326电池组(遗留)
item.battery_schrabidium_cell_4.name=四联Sa326电池组(遗留)
item.battery_spark.name=Spark电池
item.battery_spark_cell_100.name=Spark神秘储能电池组
item.battery_spark_cell_1000.name=Spark神秘物质能量空间
item.battery_spark_cell_10000.name=Spark时空晶体
item.battery_spark_cell_25.name=Spark神秘汽车电池
item.battery_spark_cell_2500.name=Spark神秘迪拉克之海
item.battery_spark_cell_6.name=Spark电池组
item.battery_spark_cell_power.name=Spark反物理储能装置
item.battery_steam.name=蒸汽动力储能罐
item.battery_steam_large.name=大型蒸汽动力储能罐
item.battery_su.name=SU-电池
item.battery_su_l.name=大型SU-电池
item.battery_spark_cell_100.name=Spark神秘储能电池组遗留
item.battery_spark_cell_1000.name=Spark神秘物质能量空间遗留
item.battery_spark_cell_10000.name=Spark时空晶体遗留
item.battery_spark_cell_25.name=Spark神秘汽车电池遗留
item.battery_spark_cell_2500.name=Spark神秘迪拉克之海遗留
item.battery_spark_cell_6.name=Spark电池组遗留
item.battery_spark_cell_power.name=Spark反物理储能装置遗留
item.battery_steam.name=蒸汽动力储能罐(遗留)
item.battery_steam_large.name=大型蒸汽动力储能罐(遗留)
item.battery_trixite.name=杂牌Spark电池
item.bdcl.name=BDCL
item.bedrock_ore.grade.base.name=%s基岩矿石
@ -2073,8 +2071,6 @@ item.canned_fried.name=炸鸡罐头
item.canned_fried.desc=甚至罐头都是油炸的!
item.canned_hotdogs.name=热狗罐头
item.canned_hotdogs.desc=不要与冷猫混淆。
item.canned_jizz.name=FlimFlam工业牌?马奶罐头
item.canned_jizz.desc=等等什么——
item.canned_kerosene.name=煤油罐头
item.canned_kerosene.desc=想象一下这句俏皮的台词。
item.canned_leftovers.name=剩菜罐头
@ -4516,16 +4512,10 @@ shape.wireFine=线
shape.wireDense=致密线
shape.wiresDense=致密线
soundCategory.ntmMachines=NTM机器
tile.absorber.name=辐射吸收器 OLD
tile.absorber_green.name=高级辐射吸收器 OLD
tile.absorber_pink.name=精英辐射吸收器 OLD
tile.absorber_red.name=增强型辐射吸收器 OLD
tile.rad_absorber.base.name=辐射吸收器
tile.rad_absorber.red.name=增强型辐射吸收器
tile.rad_absorber.green.name=高级辐射吸收器
tile.rad_absorber.pink.name=精英辐射吸收器
tile.absorber.name=辐射吸收器(遗留)
tile.absorber_green.name=高级辐射吸收器(遗留)
tile.absorber_pink.name=精英辐射吸收器(遗留)
tile.absorber_red.name=增强型辐射吸收器(遗留)
tile.acid_block.name=酸
tile.ams_base.name=AMS基座 [开发中]
tile.ams_emitter.name=AMS发射极 [开发中]
@ -5155,7 +5145,7 @@ tile.machine_bat9000.name=巨尻-9000 储罐
tile.machine_battery.name=蓄电池(遗留)
tile.machine_battery_potato.name=马铃薯电池组(遗留)
tile.machine_boiler.name=大型锅炉
tile.machine_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热速率ΔT*0.01 TU/T
tile.machine_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热速率ΔT*0.1 TU/T
tile.machine_boiler_electric_off.name=电锅炉
tile.machine_boiler_electric_on.name=电锅炉
tile.machine_boiler_off.name=锅炉
@ -5169,7 +5159,7 @@ tile.machine_chungus.desc=效率: 85%%
tile.machine_coal_off.name=火力发电机
tile.machine_coal_on.name=火力发电机
tile.machine_coker.name=焦化装置
tile.machine_coker.desc=炼焦,并产生各类流体副产品$需要外部热源$传热速率ΔT*0.025 TU/T
tile.machine_coker.desc=炼焦,并产生各类流体副产品$需要外部热源$传热速率ΔT*0.25 TU/T
tile.machine_combine_factory.name=CMB炼钢炉
tile.machine_combustion_engine.name=工业内燃机
tile.machine_compressor.name=压缩机
@ -5217,7 +5207,7 @@ tile.machine_hephaestus.name=地热换热器
tile.machine_icf_press.name=ICF燃料靶丸制造器
tile.machine_icf_press.desc=用于装填ICF靶丸$左侧燃料槽接收顶面/底面输入,右侧燃料槽接收侧面输入$μ子胶囊和空靶丸可从任意面输入
tile.machine_industrial_boiler.name=工业锅炉
tile.machine_industrial_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热率ΔT*0.01 TU/T$不会爆炸
tile.machine_industrial_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热率ΔT*0.1 TU/T$不会爆炸
tile.machine_industrial_generator.name=工业发电机
tile.machine_keyforge.name=锁匠桌
tile.machine_large_turbine.name=工业汽轮机
@ -5522,16 +5512,15 @@ tile.rbmk_control_auto.name=RBMK反应堆自动控制棒
tile.rbmk_control_mod.name=RBMK反应堆慢化控制棒
tile.rbmk_crane_console.name=RBMK起重机控制台
tile.rbmk_heater.name=RBMK流体加热器
tile.rbmk_heatex.name=RBMK换热器
tile.rbmk_loader.name=RBMK反应堆蒸汽导出器
tile.rbmk_loader.desc=让RBMK反应堆在底部同时拥有水接口和蒸汽接口$在RBMK蒸汽管道下方放置水管道再在下面放置蒸汽导出器$最后将管道连接至蒸汽导出器即可
tile.rbmk_moderator.name=RBMK反应堆石墨慢化剂
tile.rbmk_outgasser.name=RBMK反应堆辐照通道
tile.rbmk_reflector.name=RBMK反应堆碳化钨中子反射器
tile.rbmk_rod.name=RBMK反应堆燃料
tile.rbmk_rod_mod.name=RBMK反应堆慢化燃料
tile.rbmk_rod_reasim.name=RBMK反应堆燃料(ReaSim)
tile.rbmk_rod_reasim_mod.name=RBMK反应堆慢化燃料(ReaSim)
tile.rbmk_rod.name=RBMK反应堆燃料通道
tile.rbmk_rod_mod.name=RBMK反应堆慢化燃料通道
tile.rbmk_rod_reasim.name=RBMK反应堆燃料通道(ReaSim)
tile.rbmk_rod_reasim_mod.name=RBMK反应堆慢化燃料通道(ReaSim)
tile.rbmk_steam_inlet.name=RBMK ReaSim进水口
tile.rbmk_steam_inlet.desc=当启用ReaSim锅炉时向反应堆内输入水$从侧面连接至反应堆结构
tile.rbmk_steam_outlet.name=RBMK ReaSim蒸汽出口
@ -5905,8 +5894,8 @@ item.conveyor_wand.vertical.desc=能放置垂直输送带或者滑槽来垂直
item.gun_g3_a3.name=G3A3
item.gun_g3_infiltrator.name=渗透者
item.gun_greasegun_m3.name=M3
item.gun_heavy_revolver_scoped.name=带准镜的.44马格南转轮手枪
item.gun_henry_lincoln.name=林肯的中继器
item.gun_heavy_revolver_scoped.name=带准镜的.44马格南转轮手枪
item.gun_henry_lincoln.name=林肯拉杆枪
item.gun_maresleg_short.name=马腿
item.gun_mas36.name=南方之星
item.gun_uzi_richter.name=里氏
@ -5918,9 +5907,9 @@ item.weapon_mod_caliber.m357.name=.357马格南改装套件
item.weapon_mod_caliber.m44.name=.44马格南改装套件
item.weapon_mod_caliber.p22.name=.22LR改装套件
item.weapon_mod_caliber.p45.name=.45口径改装套件
item.weapon_mod_caliber.p9.name=9毫米口径改装套件
item.weapon_mod_caliber.p9.name=9mm改装套件
item.weapon_mod_caliber.r556.name=5.56mm改装套件
item.weapon_mod_caliber.r762.name=7.62改装套件
item.weapon_mod_caliber.r762.name=7.62mm改装套件
item.weapon_mod_generic.bigmt_damage.name=土星弹道优化器
item.weapon_mod_generic.bigmt_dura.name=高耐用性土星部件
item.weapon_mod_generic.bronze_damage.name=青铜弹道优化器
@ -5935,7 +5924,7 @@ item.weapon_mod_generic.iron_damage.name=铁制弹道优化器
item.weapon_mod_generic.iron_dura.name=高耐用性铁制部件
item.weapon_mod_generic.steel_damage.name=钢制弹道优化器
item.weapon_mod_generic.steel_dura.name=高耐用性钢制部件
item.weapon_mod_generic.tcalloy_damage.name=耐高温合金弹道优化
item.weapon_mod_generic.tcalloy_damage.name=耐高温合金弹道优化
item.weapon_mod_generic.tcalloy_dura.name=高耐用性耐高温合金部件
item.weapon_mod_generic.wsteel_damage.name=武器级钢弹道优化器
item.weapon_mod_generic.wsteel_dura.name=高耐用性武器级钢部件
@ -6012,11 +6001,11 @@ item.ammo_bag.name=弹药袋
item.ammo_bag_infinite.name=无限弹药袋
item.gun_g3_zebra.name=斑马步枪
container.rttyController=无线红石信号控制器
container.rttyReader=无线红石信号控制
container.rttyReader=无线红石信号读取
tile.radio_torch_controller.name=无线红石信号控制器
tile.radio_torch_controller.desc=可以接收信号并将信号传送到与其连接的机器
tile.radio_torch_reader.name=无线红石信号控制
tile.radio_torch_reader.desc=从连接的块读取数值并以指定的频率发送
tile.radio_torch_reader.name=无线红石信号读取
tile.radio_torch_reader.desc=从连接的块读取数值并以指定的频率发送
item.ammo_standard.ct_hook.name=抓钩
item.ammo_standard.ct_mortar.name=炸药包
item.ammo_standard.ct_mortar_charge.name=重型炸药包
@ -6371,7 +6360,7 @@ tile.fusion_component.blanket.name=聚变反应堆内部覆层
tile.fusion_component.bscco_welded.name=BSCCO超导线圈 (焊接)
tile.fusion_component.motor.name=聚变反应堆线路管道
tile.fusion_coupler.name=聚变反应堆等离子体耦合器
tile.fusion_coupler.desc=将等离子体输出的能量转化为速管能量。$可以用于点燃第二个等离子体容器中的等离子体。
tile.fusion_coupler.desc=将等离子体输出的能量转化为速管能量。$可以用于点燃第二个等离子体容器中的等离子体。
tile.fusion_klystron.name=速调管
tile.fusion_klystron.desc=聚变反应堆的动力源。$使用压缩空气进行冷却。
tile.fusion_mhdt.name=磁流体涡轮发电机

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 B