i have achieved stability (ability to stab)
21
changelog
@ -3,6 +3,12 @@
|
||||
* Identical to the regular ammo bag, but ammo is never depleted
|
||||
* Provides 9,999 units of ammo for the purposes of reloading/belts, meaning that even a single bullet in the bag allows a full reload
|
||||
* Obviously creative-only
|
||||
* Redstone-over-radio reader
|
||||
* Can read certain values from connected machines and send them as signals
|
||||
* Currently supports batteries, capacitors and tanks
|
||||
* Redstone-over-radio controller
|
||||
* Can receive control signals to perform certain actions within the connected machine
|
||||
* Currently supports mode and priority changes for batteries and tanks
|
||||
|
||||
## Changed
|
||||
* Nerfed AP and DU round damage multiplier
|
||||
@ -25,6 +31,17 @@
|
||||
* Sub-beams will strike the initially hit entity again, meaning that the more sub-beams there are, the more powerful the initial strike ends up being
|
||||
* Renamed the default capacitor ammo to "capacitor (standard)" to avoid confusion
|
||||
* Low wavelength capacitors now need niobium instead of silicon to make
|
||||
* Bayonets can now be applied to the carbine, making it the first standard arsenal gun that can take the mod
|
||||
* VNT type explosions with smooth damage falloff (used by guns, mines, etc) no longer calculate entity distance using the entity's origin position (i.e. in the center at the ground) but rather the closest hitbox intercept
|
||||
* This means that shooting entities directly with explosives should deal roughly the same damage no matter where they are hit, instead of dealing more damage closer to the feet
|
||||
* This also fixes an issue where entities with large hitboxes (eg. mas man) are unaffected by small explosions that deal direct hits (like explosive buckshot)
|
||||
* VNT type explosions with smooth damage falloff should no longer deal any damage if more than 1 in 8 blocks between the source and the target are solid
|
||||
* This prevents any damage taken if the target is behind a wall
|
||||
* This also means that thin walls do not protect against sufficiently large explosions
|
||||
* Added circuits to the turbofan recipe
|
||||
* Simplified the industrial combustion engine recipe
|
||||
* Removed the old hadron core recipe
|
||||
* Changed the old pylon and energy storage block textures to use standardized red copper connectors instead of the non-standard three prong outlets
|
||||
|
||||
## Fixed
|
||||
* Fixed a potential crash caused by cargo dropships landing on cargo docks with no satellite chip installed
|
||||
@ -32,4 +49,6 @@
|
||||
* Fixed errors thrown when loading in old system bullet entities
|
||||
* Fixed dupe regarding breaking transport drones
|
||||
* Fixed 12 gauge flechette DT negation not being the intended value
|
||||
* Fixed carbine mistakenly showing a round being chambered even after firing the last loaded round
|
||||
* Fixed carbine mistakenly showing a round being chambered even after firing the last loaded round
|
||||
* Fixed `any` OD prefix not registering correctly, breaking some recipe compatibility as well as older recipe configs
|
||||
* Fixed bug where changing a pipe's type with a fluid ID will keep a "zombie" pipe of the previous type around, which keeps a connection up even when the pipe nets end up separated
|
||||
@ -1,6 +1,6 @@
|
||||
mod_version=1.0.27
|
||||
# Empty build number makes a release type
|
||||
mod_build_number=5313
|
||||
mod_build_number=5320
|
||||
|
||||
credits=HbMinecraft,\
|
||||
\ rodolphito (explosion algorithms),\
|
||||
|
||||
@ -797,7 +797,6 @@ public class ModBlocks {
|
||||
public static Block radio_torch_logic;
|
||||
public static Block radio_torch_reader;
|
||||
public static Block radio_torch_controller;
|
||||
public static Block radio_torch_programmer;
|
||||
public static Block radio_telex;
|
||||
|
||||
public static Block conveyor;
|
||||
@ -1925,7 +1924,6 @@ public class ModBlocks {
|
||||
radio_torch_logic = new RadioTorchLogic().setBlockName("radio_torch_logic").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
radio_torch_reader = new RadioTorchReader().setBlockName("radio_torch_reader").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_reader");
|
||||
radio_torch_controller = new RadioTorchController().setBlockName("radio_torch_controller").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_controller");
|
||||
radio_torch_programmer = new RadioTorchProgrammer().setBlockName("radio_torch_programmer").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_programmer");
|
||||
radio_telex = new RadioTelex().setBlockName("radio_telex").setHardness(3F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radio_telex");
|
||||
|
||||
conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":conveyor");
|
||||
@ -3190,7 +3188,6 @@ public class ModBlocks {
|
||||
register(radio_torch_logic);
|
||||
register(radio_torch_reader);
|
||||
register(radio_torch_controller);
|
||||
register(radio_torch_programmer);
|
||||
register(radio_telex);
|
||||
|
||||
register(crane_extractor);
|
||||
|
||||
@ -18,6 +18,7 @@ import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
|
||||
import api.hbm.energymk2.IEnergyProviderMK2;
|
||||
import api.hbm.energymk2.IEnergyReceiverMK2;
|
||||
import api.hbm.redstoneoverradio.IRORValueProvider;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -149,7 +150,7 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP
|
||||
player.addExhaustion(0.025F);
|
||||
}
|
||||
|
||||
public static class TileEntityCapacitor extends TileEntityLoadedBase implements IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT {
|
||||
public static class TileEntityCapacitor extends TileEntityLoadedBase implements IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, IRORValueProvider {
|
||||
|
||||
public long power;
|
||||
protected long maxPower;
|
||||
@ -299,5 +300,20 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP
|
||||
nbt.setLong("power", power);
|
||||
nbt.setLong("maxPower", maxPower);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFunctionInfo() {
|
||||
return new String[] {
|
||||
PREFIX_VALUE + "fill",
|
||||
PREFIX_VALUE + "fillpercent",
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String provideRORValue(String name) {
|
||||
if((PREFIX_VALUE + "fill").equals(name)) return "" + this.power;
|
||||
if((PREFIX_VALUE + "fillpercent").equals(name)) return "" + this.power * 100 / this.maxPower;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,7 +79,12 @@ public class EntityProcessorCross implements IEntityProcessor {
|
||||
for(int index = 0; index < list.size(); ++index) {
|
||||
|
||||
Entity entity = (Entity) list.get(index);
|
||||
double distanceScaled = entity.getDistance(x, y, z) / size;
|
||||
|
||||
double xDist = (entity.boundingBox.minX <= x && entity.boundingBox.maxX >= x) ? 0 : Math.min(Math.abs(entity.boundingBox.minX - x), Math.abs(entity.boundingBox.maxX - x));
|
||||
double yDist = (entity.boundingBox.minY <= y && entity.boundingBox.maxY >= y) ? 0 : Math.min(Math.abs(entity.boundingBox.minY - y), Math.abs(entity.boundingBox.maxY - y));
|
||||
double zDist = (entity.boundingBox.minZ <= z && entity.boundingBox.maxZ >= z) ? 0 : Math.min(Math.abs(entity.boundingBox.minZ - z), Math.abs(entity.boundingBox.maxZ - z));
|
||||
double dist = Math.sqrt(xDist * xDist + yDist * yDist + zDist * zDist);
|
||||
double distanceScaled = dist / size;
|
||||
|
||||
if(distanceScaled <= 1.0D) {
|
||||
|
||||
@ -128,7 +133,11 @@ public class EntityProcessorCross implements IEntityProcessor {
|
||||
attackEntity(entity, explosion, entry.getValue());
|
||||
|
||||
if(damage != null) {
|
||||
double distanceScaled = entity.getDistance(x, y, z) / size;
|
||||
double xDist = (entity.boundingBox.minX <= x && entity.boundingBox.maxX >= x) ? 0 : Math.min(Math.abs(entity.boundingBox.minX - x), Math.abs(entity.boundingBox.maxX - x));
|
||||
double yDist = (entity.boundingBox.minY <= y && entity.boundingBox.maxY >= y) ? 0 : Math.min(Math.abs(entity.boundingBox.minY - y), Math.abs(entity.boundingBox.maxY - y));
|
||||
double zDist = (entity.boundingBox.minZ <= z && entity.boundingBox.maxZ >= z) ? 0 : Math.min(Math.abs(entity.boundingBox.minZ - z), Math.abs(entity.boundingBox.maxZ - z));
|
||||
double dist = Math.sqrt(xDist * xDist + yDist * yDist + zDist * zDist);
|
||||
double distanceScaled = dist / size;
|
||||
damage.handleAttack(explosion, entity, distanceScaled);
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,6 +49,7 @@ public class EntityProcessorCrossSmooth extends EntityProcessorCross {
|
||||
|
||||
@Override
|
||||
public float calculateDamage(double distanceScaled, double density, double knockback, float size) {
|
||||
if(density < 0.125) return 0; //shitty hack
|
||||
return (float) (fixedDamage * (1 - distanceScaled));
|
||||
}
|
||||
}
|
||||
|
||||
@ -104,6 +104,10 @@ public class GUIScreenRadioTorchController extends GuiScreen {
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
if(rtty.polling) {
|
||||
drawTexturedModalRect(guiLeft + 173, guiTop + 17, 0, 42, 18, 18);
|
||||
}
|
||||
|
||||
this.frequency.drawTextBox();
|
||||
}
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ public class MaterialShapes {
|
||||
|
||||
public static final List<MaterialShapes> allShapes = new ArrayList();
|
||||
|
||||
public static final MaterialShapes ANY = new MaterialShapes(0).noAutogen();
|
||||
public static final MaterialShapes ANY = new MaterialShapes(0, "any").noAutogen();
|
||||
public static final MaterialShapes ONLY_ORE = new MaterialShapes(0, "ore").noAutogen();
|
||||
public static final MaterialShapes ORE = new MaterialShapes(0, "ore", "oreNether").noAutogen();
|
||||
public static final MaterialShapes ORENETHER = new MaterialShapes(0, "oreNether").noAutogen();
|
||||
|
||||
@ -142,7 +142,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12) }, 300);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal()) }, 300);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED.ordinal()), },500);
|
||||
@ -402,13 +402,10 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID),
|
||||
}, 600);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.plate528(), 12),
|
||||
new OreDictStack(IRON.plate(), 8),
|
||||
new OreDictStack(CU.ingot(), 8),
|
||||
new OreDictStack(GOLD.wireDense(), 6),
|
||||
new ComparableStack(ModItems.tank_steel, 2),
|
||||
new OreDictStack(W.bolt(), 16),
|
||||
new OreDictStack(MINGRADE.wireFine(), 24),
|
||||
new OreDictStack(STEEL.plate528(), 16),
|
||||
new OreDictStack(CU.ingot(), 12),
|
||||
new OreDictStack(GOLD.wireDense(), 8),
|
||||
new ComparableStack(ModItems.tank_steel, 4),
|
||||
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC)
|
||||
}, 300);
|
||||
|
||||
|
||||
@ -1356,7 +1356,7 @@ public class Orchestras {
|
||||
if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity,
|
||||
0.375, aiming ? 0 : -0.125, aiming ? 0 : -0.25D,
|
||||
-0.05, 0.2, -0.025,
|
||||
0.01, -10F + (float) entity.getRNG().nextGaussian() * 10F, (float) entity.getRNG().nextGaussian() * 12.5F, casing.getName());
|
||||
0.01, -10F + (float) entity.getRNG().nextGaussian() * 10F, (float) entity.getRNG().nextGaussian() * 12.5F, casing.getName(), true, 60, 0.5D, 10);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,78 @@
|
||||
package com.hbm.items.weapon.sedna.mods;
|
||||
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
import com.hbm.items.weapon.sedna.GunConfig;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
||||
import com.hbm.items.weapon.sedna.factory.Orchestras;
|
||||
import com.hbm.items.weapon.sedna.factory.XFactory44;
|
||||
import com.hbm.items.weapon.sedna.factory.XFactory762mm;
|
||||
import com.hbm.render.anim.BusAnimation;
|
||||
import com.hbm.render.anim.BusAnimationSequence;
|
||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||
import com.hbm.render.anim.HbmAnimations.AnimType;
|
||||
import com.hbm.util.EntityDamageUtil;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
|
||||
public class WeaponModCarbineBayonet extends WeaponModBase {
|
||||
|
||||
public WeaponModCarbineBayonet(int id) {
|
||||
super(id, "BAYONET");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T eval(T base, ItemStack gun, String key, Object parent) {
|
||||
if(key == GunConfig.FUN_ANIMNATIONS) return (T) LAMBDA_CARBINE_ANIMS;
|
||||
if(key == GunConfig.I_INSPECTDURATION) return cast(30, base);
|
||||
if(key == GunConfig.CON_ONPRESSSECONDARY) return (T) XFactory44.SMACK_A_FUCKER;
|
||||
if(key == GunConfig.CON_ORCHESTRA) return (T) ORCHESTRA_CARBINE;
|
||||
if(key == GunConfig.I_INSPECTCANCEL) return cast(false, base);
|
||||
return base;
|
||||
}
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA_CARBINE = (stack, ctx) -> {
|
||||
EntityLivingBase entity = ctx.entity;
|
||||
if(entity.worldObj.isRemote) return;
|
||||
AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
|
||||
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
|
||||
|
||||
if(type == AnimType.INSPECT) {
|
||||
|
||||
if(timer == 15 && ctx.getPlayer() != null) {
|
||||
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(ctx.getPlayer(), 3.0D);
|
||||
if(mop != null) {
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY) {
|
||||
float damage = 10F;
|
||||
mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage);
|
||||
mop.entityHit.motionX *= 2;
|
||||
mop.entityHit.motionZ *= 2;
|
||||
entity.worldObj.playSoundAtEntity(mop.entityHit, "hbm:weapon.fire.stab", 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
||||
}
|
||||
if(mop.typeOfHit == mop.typeOfHit.BLOCK) {
|
||||
Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||
entity.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, b.stepSound.getStepResourcePath(), 2F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Orchestras.ORCHESTRA_CARBINE.accept(stack, ctx);
|
||||
};
|
||||
|
||||
@SuppressWarnings("incomplete-switch") public static BiFunction<ItemStack, AnimType, BusAnimation> LAMBDA_CARBINE_ANIMS = (stack, type) -> {
|
||||
switch(type) {
|
||||
case INSPECT: return new BusAnimation()
|
||||
.addBus("STAB", new BusAnimationSequence().addPos(0, 1, -2, 250, IType.SIN_DOWN).hold(250).addPos(0, 1, 5, 250, IType.SIN_UP).hold(250).addPos(0, 0, 0, 500, IType.SIN_FULL));
|
||||
}
|
||||
|
||||
return XFactory762mm.LAMBDA_CARBINE_ANIMS.apply(stack, type);
|
||||
};
|
||||
}
|
||||
@ -140,7 +140,9 @@ public class WeaponModManager {
|
||||
new WeaponModDefinition(EnumModSpecial.CHOKE).addMod(new Item[] {ModItems.gun_pepperbox, ModItems.gun_maresleg, ModItems.gun_double_barrel, ModItems.gun_liberator, ModItems.gun_spas12}, new WeaponModChoke(210));
|
||||
new WeaponModDefinition(EnumModSpecial.FURNITURE_GREEN).addMod(ModItems.gun_g3, new WeaponModPolymerFurniture(ID_FURNITURE_GREEN));
|
||||
new WeaponModDefinition(EnumModSpecial.FURNITURE_BLACK).addMod(ModItems.gun_g3, new WeaponModPolymerFurniture(ID_FURNITURE_BLACK));
|
||||
new WeaponModDefinition(EnumModSpecial.BAYONET).addMod(ModItems.gun_mas36, new WeaponModMASBayonet(ID_MAS_BAYONET));
|
||||
new WeaponModDefinition(EnumModSpecial.BAYONET)
|
||||
.addMod(ModItems.gun_mas36, new WeaponModMASBayonet(ID_MAS_BAYONET))
|
||||
.addMod(ModItems.gun_carbine, new WeaponModCarbineBayonet(ID_CARBINE_BAYONET));
|
||||
new WeaponModDefinition(EnumModSpecial.STACK_MAG).addMod(new Item[] {ModItems.gun_greasegun, ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_aberrator, ModItems.gun_aberrator_eott}, new WeaponModStackMag(214));
|
||||
new WeaponModDefinition(EnumModSpecial.SKIN_SATURNITE).addMod(new Item[] {ModItems.gun_uzi, ModItems.gun_uzi_akimbo}, new WeaponModUziSaturnite(ID_UZI_SATURN));
|
||||
new WeaponModDefinition(EnumModSpecial.LAS_SHOTGUN).addMod(new Item[] {ModItems.gun_lasrifle}, new WeaponModLasShotgun(ID_LAS_SHOTGUN));
|
||||
@ -198,6 +200,7 @@ public class WeaponModManager {
|
||||
public static final int ID_LAS_SHOTGUN = 216;
|
||||
public static final int ID_LAS_CAPACITOR = 217;
|
||||
public static final int ID_LAS_AUTO = 218;
|
||||
public static final int ID_CARBINE_BAYONET = 219;
|
||||
|
||||
public static ItemStack[] getUpgradeItems(ItemStack stack, int cfg) {
|
||||
if(!stack.hasTagCompound()) return new ItemStack[0];
|
||||
|
||||
@ -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 (5313)";
|
||||
public static final String VERSION = "1.0.27 BETA (5320)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -220,6 +220,8 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.radio_torch_receiver, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.radio_torch_logic, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.radio_torch_counter, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.radio_torch_reader, 4), new Object[] { " G ", "IRI", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.radio_torch_controller, 4), new Object[] { " G ", "IRI", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.radio_telex, 2), new Object[] { "SCR", "W#W", "WWW", 'S', ModBlocks.radio_torch_sender, 'C', ModItems.crt_display, 'R', ModBlocks.radio_torch_receiver, 'W', KEY_PLANKS, '#', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });
|
||||
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.conveyor_wand, ConveyorType.REGULAR, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() });
|
||||
@ -1045,14 +1047,14 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModItems.neutron_reflector, 4), new Object[] { "##", "##", '#', W.ingot() });
|
||||
|
||||
for(NTMMaterial mat : Mats.orderedList) {
|
||||
if(mat.autogen.contains(MaterialShapes.WIRE)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.wire_fine, 24, mat.id), new Object[] { "###", '#', MaterialShapes.INGOT.prefixes[0] + name });
|
||||
if(mat.autogen.contains(MaterialShapes.WIRE)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.wire_fine, 24, mat.id), new Object[] { "###", '#', MaterialShapes.INGOT.name() + name });
|
||||
}
|
||||
|
||||
addRecipeAuto(new ItemStack(ModItems.book_of_), new Object[] { "BGB", "GAG", "BGB", 'B', ModItems.egg_balefire_shard, 'G', GOLD.ingot(), 'A', Items.book });
|
||||
}
|
||||
|
||||
for(NTMMaterial mat : Mats.orderedList) {
|
||||
if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.bolt, 16, mat.id), new Object[] { "#", "#", '#', MaterialShapes.INGOT.prefixes[0] + name });
|
||||
if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.bolt, 16, mat.id), new Object[] { "#", "#", '#', MaterialShapes.INGOT.name() + name });
|
||||
}
|
||||
|
||||
if(!GeneralConfig.enable528) {
|
||||
@ -1062,7 +1064,6 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', W.wireFine(), 'P', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.magnetron });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', STEEL.shell(), 'R', ModBlocks.rbmk_blank });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_rod_mod, 1), new Object[] { "BGB", "GRG", "BGB", 'G', GRAPHITE.block(), 'R', ModBlocks.rbmk_rod, 'B', ModItems.nugget_bismuth });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', CU.pipe(), 'P', CU.shell(), 'R', ModBlocks.rbmk_blank });
|
||||
|
||||
@ -972,6 +972,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation lilmac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac.png");
|
||||
public static final ResourceLocation lilmac_scope_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lilmac_scope.png");
|
||||
public static final ResourceLocation carbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/huntsman.png");
|
||||
public static final ResourceLocation carbine_bayonet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/carbine_bayonet.png");
|
||||
public static final ResourceLocation am180_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/am180.png");
|
||||
public static final ResourceLocation liberator_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/liberator.png");
|
||||
public static final ResourceLocation flamethrower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower.png");
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.render.item.weapon.sedna;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.items.weapon.sedna.mods.WeaponModManager;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
@ -45,6 +46,7 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase {
|
||||
double[] lift = HbmAnimations.getRelevantTransformation("LIFT");
|
||||
double[] bullet = HbmAnimations.getRelevantTransformation("BULLET");
|
||||
double[] rel = HbmAnimations.getRelevantTransformation("REL");
|
||||
double[] stab = HbmAnimations.getRelevantTransformation("STAB");
|
||||
|
||||
GL11.glTranslated(0, -1, -2);
|
||||
GL11.glRotated(equip[0], 1, 0, 0);
|
||||
@ -53,6 +55,8 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase {
|
||||
GL11.glTranslated(0, 0, -2);
|
||||
GL11.glRotated(lift[0], 1, 0, 0);
|
||||
GL11.glTranslated(0, 0, 2);
|
||||
|
||||
GL11.glTranslated(stab[0], stab[1], stab[2]);
|
||||
|
||||
GL11.glTranslated(0, 0, recoil[2]);
|
||||
|
||||
@ -72,6 +76,11 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase {
|
||||
if(bullet[0] != 1) ResourceManager.carbine.renderPart("Bullet");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
if(hasBayonet(stack)) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.carbine_bayonet_tex);
|
||||
ResourceManager.carbine.renderPart("Bayonet");
|
||||
}
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 1, 8);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
@ -101,18 +110,27 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase {
|
||||
@Override
|
||||
public void setupInv(ItemStack stack) {
|
||||
super.setupInv(stack);
|
||||
double scale = 1.375D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glRotated(25, 1, 0, 0);
|
||||
GL11.glRotated(45, 0, 1, 0);
|
||||
GL11.glTranslated(-0.5, 0, 0);
|
||||
if(hasBayonet(stack)) {
|
||||
double scale = 1.1875D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glRotated(25, 1, 0, 0);
|
||||
GL11.glRotated(45, 0, 1, 0);
|
||||
GL11.glTranslated(1.5, 0, 0);
|
||||
} else {
|
||||
double scale = 1.375D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glRotated(25, 1, 0, 0);
|
||||
GL11.glRotated(45, 0, 1, 0);
|
||||
GL11.glTranslated(-0.5, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupModTable(ItemStack stack) {
|
||||
double scale = -7.5D;
|
||||
double scale = -7.75D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glTranslated(0, 0, -1.75);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -121,7 +139,17 @@ public class ItemRenderCarbine extends ItemRenderWeaponBase {
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.carbine_tex);
|
||||
ResourceManager.carbine.renderAll();
|
||||
ResourceManager.carbine.renderPart("Gun");
|
||||
ResourceManager.carbine.renderPart("Slide");
|
||||
ResourceManager.carbine.renderPart("Magazine");
|
||||
if(hasBayonet(stack)) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.carbine_bayonet_tex);
|
||||
ResourceManager.carbine.renderPart("Bayonet");
|
||||
}
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
public boolean hasBayonet(ItemStack stack) {
|
||||
return WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_CARBINE_BAYONET);
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ import api.hbm.energymk2.IEnergyReceiverMK2;
|
||||
import api.hbm.fluidmk2.IFluidConnectorMK2;
|
||||
import api.hbm.fluidmk2.IFluidReceiverMK2;
|
||||
import api.hbm.redstoneoverradio.IRORInfo;
|
||||
import api.hbm.redstoneoverradio.IRORInteractive;
|
||||
import api.hbm.redstoneoverradio.IRORValueProvider;
|
||||
import api.hbm.tile.IHeatSource;
|
||||
import com.hbm.inventory.material.Mats;
|
||||
@ -30,7 +31,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
@Optional.Interface(iface = "com.hbm.handler.CompatHandler.OCComponent", modid = "opencomputers"),
|
||||
@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")
|
||||
})
|
||||
public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, ISidedInventory, IFluidReceiverMK2, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent, IRORValueProvider {
|
||||
public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, ISidedInventory, IFluidReceiverMK2, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent, IRORValueProvider, IRORInteractive {
|
||||
|
||||
TileEntity tile;
|
||||
boolean inventory;
|
||||
@ -524,6 +525,12 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy
|
||||
@Override
|
||||
public String provideRORValue(String name) {
|
||||
if(getTile() instanceof IRORValueProvider) return ((IRORValueProvider) getTile()).provideRORValue(name);
|
||||
return "";
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String runRORFunction(String name, String[] params) {
|
||||
if(getTile() instanceof IRORInteractive) return ((IRORInteractive) getTile()).runRORFunction(name, params);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,8 @@ import api.hbm.energymk2.IEnergyProviderMK2;
|
||||
import api.hbm.energymk2.IEnergyReceiverMK2;
|
||||
import api.hbm.energymk2.Nodespace;
|
||||
import api.hbm.energymk2.Nodespace.PowerNode;
|
||||
import api.hbm.redstoneoverradio.IRORInteractive;
|
||||
import api.hbm.redstoneoverradio.IRORValueProvider;
|
||||
import api.hbm.tile.IInfoProviderEC;
|
||||
|
||||
import com.hbm.blocks.machine.MachineBattery;
|
||||
@ -18,6 +20,7 @@ import com.hbm.tileentity.IPersistentNBT;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.uninos.UniNodespace;
|
||||
import com.hbm.util.CompatEnergyControl;
|
||||
import com.hbm.util.EnumUtil;
|
||||
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@ -36,7 +39,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")})
|
||||
public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent {
|
||||
public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IPersistentNBT, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent, IRORValueProvider, IRORInteractive {
|
||||
|
||||
public long[] log = new long[20];
|
||||
public long delta = 0;
|
||||
@ -365,4 +368,69 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
|
||||
public void provideExtraInfo(NBTTagCompound data) {
|
||||
data.setLong(CompatEnergyControl.L_DIFF_HE, (log[0] - log[19]) / 20L);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFunctionInfo() {
|
||||
return new String[] {
|
||||
PREFIX_VALUE + "fill",
|
||||
PREFIX_VALUE + "fillpercent",
|
||||
PREFIX_FUNCTION + "setmode" + NAME_SEPARATOR + "mode",
|
||||
PREFIX_FUNCTION + "setmode" + NAME_SEPARATOR + "mode" + PARAM_SEPARATOR + "fallback",
|
||||
PREFIX_FUNCTION + "setredmode" + NAME_SEPARATOR + "mode",
|
||||
PREFIX_FUNCTION + "setredmode" + NAME_SEPARATOR + "mode" + PARAM_SEPARATOR + "fallback",
|
||||
PREFIX_FUNCTION + "setpriority" + NAME_SEPARATOR + "priority",
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String provideRORValue(String name) {
|
||||
if((PREFIX_VALUE + "fill").equals(name)) return "" + power;
|
||||
if((PREFIX_VALUE + "fillpercent").equals(name)) return "" + getPowerRemainingScaled(100);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String runRORFunction(String name, String[] params) {
|
||||
|
||||
if((PREFIX_FUNCTION + "setmode").equals(name) && params.length > 0) {
|
||||
int mode = IRORInteractive.parseInt(params[0], 0, 3);
|
||||
|
||||
if(mode != this.redLow) {
|
||||
this.redLow = (short) mode;
|
||||
this.markChanged();
|
||||
return null;
|
||||
} else if(params.length > 1) {
|
||||
int altmode = IRORInteractive.parseInt(params[1], 0, 3);
|
||||
this.redLow = (short) altmode;
|
||||
this.markChanged();
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
if((PREFIX_FUNCTION + "setredmode").equals(name) && params.length > 0) {
|
||||
int mode = IRORInteractive.parseInt(params[0], 0, 3);
|
||||
|
||||
if(mode != this.redHigh) {
|
||||
this.redHigh = (short) mode;
|
||||
this.markChanged();
|
||||
return null;
|
||||
} else if(params.length > 1) {
|
||||
int altmode = IRORInteractive.parseInt(params[1], 0, 3);
|
||||
this.redHigh = (short) altmode;
|
||||
this.markChanged();
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
if((PREFIX_FUNCTION + "setpriority").equals(name) && params.length > 0) {
|
||||
int priority = IRORInteractive.parseInt(params[0], 0, 2) + 1;
|
||||
ConnectionPriority p = EnumUtil.grabEnumSafely(ConnectionPriority.class, priority);
|
||||
this.priority = p;
|
||||
this.markChanged();
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,9 @@ import com.hbm.tileentity.IBufPacketReceiver;
|
||||
import com.hbm.tileentity.IControlReceiverFilter;
|
||||
|
||||
import com.hbm.util.BufferUtil;
|
||||
|
||||
import api.hbm.redstoneoverradio.IRORInteractive;
|
||||
import api.hbm.redstoneoverradio.IRORValueProvider;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -17,7 +20,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPacketReceiver, IControlReceiverFilter {
|
||||
public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPacketReceiver, IControlReceiverFilter, IRORValueProvider, IRORInteractive {
|
||||
|
||||
private int stack = 0;
|
||||
public boolean output = false;
|
||||
@ -229,4 +232,36 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPa
|
||||
public int[] getFilterSlots() {
|
||||
return new int[]{1,2};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getFunctionInfo() {
|
||||
return new String[] {
|
||||
PREFIX_VALUE + "type",
|
||||
PREFIX_VALUE + "fill",
|
||||
PREFIX_VALUE + "fillpercent",
|
||||
PREFIX_FUNCTION + "toggleoutput",
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String provideRORValue(String name) {
|
||||
if((PREFIX_VALUE + "fill").equals(name)) return "" + this.stack;
|
||||
if((PREFIX_VALUE + "fillpercent").equals(name)) return "" + this.stack * 100 / this.capacity;
|
||||
if((PREFIX_VALUE + "type").equals(name)) {
|
||||
if(slots[1] == null) return "None";
|
||||
return slots[1].getDisplayName();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String runRORFunction(String name, String[] params) {
|
||||
|
||||
if((PREFIX_FUNCTION + "toggleoutput").equals(name)) {
|
||||
this.output = !this.output;
|
||||
this.markDirty();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,6 +62,7 @@ public class TileEntityPipeBaseNT extends TileEntityLoadedBase implements IFluid
|
||||
}
|
||||
|
||||
public void setType(FluidType type) {
|
||||
FluidType prev = this.type;
|
||||
this.type = type;
|
||||
this.markDirty();
|
||||
|
||||
@ -69,9 +70,10 @@ public class TileEntityPipeBaseNT extends TileEntityLoadedBase implements IFluid
|
||||
WorldServer world = (WorldServer) worldObj;
|
||||
world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
}
|
||||
|
||||
UniNodespace.destroyNode(worldObj, xCoord, yCoord, zCoord, prev.getNetworkProvider());
|
||||
|
||||
if(this.node != null) {
|
||||
UniNodespace.destroyNode(worldObj, xCoord, yCoord, zCoord, type.getNetworkProvider());
|
||||
this.node = null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,9 @@
|
||||
package com.hbm.tileentity.network;
|
||||
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth;
|
||||
import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon;
|
||||
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
|
||||
import com.hbm.interfaces.IControlReceiver;
|
||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||
import com.hbm.tileentity.network.RTTYSystem.RTTYChannel;
|
||||
@ -36,6 +40,15 @@ public class TileEntityRadioTorchController extends TileEntityLoadedBase impleme
|
||||
RTTYChannel chan = RTTYSystem.listen(worldObj, channel);
|
||||
if(chan != null) {
|
||||
String rec = "" + chan.signal;
|
||||
if("selfdestruct".equals(rec)) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
ExplosionVNT vnt = new ExplosionVNT(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, null);
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 50).setupPiercing(5F, 0.5F));
|
||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F));
|
||||
vnt.explode();
|
||||
return;
|
||||
}
|
||||
if(this.polling || !rec.equals(prev)) {
|
||||
try {
|
||||
if(rec != null && !rec.isEmpty()) ror.runRORFunction(IRORInteractive.PREFIX_FUNCTION + IRORInteractive.getCommand(rec), IRORInteractive.getParams(rec));
|
||||
|
||||
@ -45,7 +45,7 @@ public class TileEntityRadioTorchReader extends TileEntityLoadedBase implements
|
||||
if(name == null || name.isEmpty()) continue;
|
||||
|
||||
String value = prov.provideRORValue(IRORValueProvider.PREFIX_VALUE + name);
|
||||
if(value == null) continue; //don't actually do this
|
||||
if(value == null) continue;
|
||||
|
||||
if(polling || !value.equals(previous)) {
|
||||
RTTYSystem.broadcast(worldObj, channel, value);
|
||||
|
||||
@ -434,7 +434,10 @@ container.reactorSmall=Atomreaktor
|
||||
container.reix=Rei-X Hauptrechner
|
||||
container.rtg=Radioisotopengenerator
|
||||
container.rtgFurnace=RTG-Ofen
|
||||
container.rttyController=Redstone-over-Radio Controller
|
||||
container.rttyCounter=Redstone-over-Radio Itemzähler
|
||||
container.rttyLogic=Redstone-over-Radio Logikkempfänger
|
||||
container.rttyReader=Redstone-over-Radio Leser
|
||||
container.rttyReceiver=Redstone-over-Radio Empfänger
|
||||
container.rttySender=Redstone-over-Radio Sender
|
||||
container.safe=Panzerschrank
|
||||
@ -4647,10 +4650,16 @@ tile.pwr_reflector.name=PWR Neutronenreflektor
|
||||
tile.pwr_reflector.desc=Reflektier Neutronen auf Brennstäbe zurück$Platzierung: Hülle, für höhere Reaktivität$Gültiger Block für Hülle
|
||||
tile.radar_screen.name=Radarbildschirm
|
||||
tile.radio_telex.name=Telex-Maschine
|
||||
tile.radio_torch_controller.name=Redstone-over-Radio Controller
|
||||
tile.radio_torch_controller.desc=Empfängt Steuersignale und gibt$sie an die verbundene Maschine weiter
|
||||
tile.radio_torch_counter.name=Redstone-over-Radio Itemzähler
|
||||
tile.radio_torch_counter.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden$Signal basiert auf Anzahl passender Items
|
||||
tile.radio_torch_receiver.name=Redstone-over-Radio Empfänger
|
||||
tile.radio_torch_receiver.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden
|
||||
tile.radio_torch_logic.name=Redstone-over-Radio Logikempfänger
|
||||
tile.radio_torch_logic.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden$Kann mittels Logikoperatoren Sinale zu Redstone-Signale konvertieren
|
||||
tile.radio_torch_reader.name=Redstone-over-Radio Leser
|
||||
tile.radio_torch_reader.desc=Liest Werte von der verbundenen Maschine$aus und sendet sie als Signal
|
||||
tile.radio_torch_sender.name=Redstone-over-Radio Sender
|
||||
tile.radio_torch_sender.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden$Erkennt Redstone-Signale oder Komparator-Output
|
||||
tile.radiobox.name=Rosenberg Ungeziefervernichter
|
||||
|
||||
@ -838,8 +838,10 @@ container.reactorResearch=Research Reactor
|
||||
container.reix=Rei-X Mainframe
|
||||
container.rtg=RT Generator
|
||||
container.rtgFurnace=RTG Furnace
|
||||
container.rttyController=Redstone-over-Radio Controller
|
||||
container.rttyCounter=Redstone-over-Radio Item Counter
|
||||
container.rttyLogic=Redstone-over-Radio Logic Receiver
|
||||
container.rttyReader=Redstone-over-Radio Reader
|
||||
container.rttyReceiver=Redstone-over-Radio Receiver
|
||||
container.rttySender=Redstone-over-Radio Transmitter
|
||||
container.safe=Safe
|
||||
@ -5796,10 +5798,14 @@ tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for
|
||||
tile.rad_lava_block.name=Volcanic Lava
|
||||
tile.radar_screen.name=Radar Screen
|
||||
tile.radio_telex.name=Telex Machine
|
||||
tile.radio_torch_controller.name=Redstone-over-Radio Controller
|
||||
tile.radio_torch_controller.desc=Can receive command signals and relays$them to the connected machine
|
||||
tile.radio_torch_counter.name=Redstone-over-Radio Item Counter
|
||||
tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items
|
||||
tile.radio_torch_logic.name=Redstone-over-Radio Logic Receiver
|
||||
tile.radio_torch_logic.desc=Placable on flat surfaces or comparator-compatible blocks$Maps redstone signals to conditions evaluated in a set order$Numerical or string inputs are compared against a constant
|
||||
tile.radio_torch_reader.name=Redstone-over-Radio Reader
|
||||
tile.radio_torch_reader.desc=Reads values from connected blocks,$then sends them over the specified frequency
|
||||
tile.radio_torch_receiver.name=Redstone-over-Radio Receiver
|
||||
tile.radio_torch_receiver.desc=Placable on flat surfaces or comparator-compatible blocks
|
||||
tile.radio_torch_sender.name=Redstone-over-Radio Transmitter
|
||||
|
||||
@ -731,7 +731,7 @@ container.exposureChamber=Камера облучения частицами
|
||||
container.factoryAdvanced=Усовершенствованная фабрика
|
||||
container.factoryTitanium=Базовая фабрика
|
||||
container.fluidtank=Цистерна
|
||||
container.fileCabinet=Карточеный шкафчик
|
||||
container.fileCabinet=Картотечный шкафчик
|
||||
container.forceField=Излучатель силового поля
|
||||
container.frackingTower=Башня гидроразрыва пласта
|
||||
container.furnaceBrick=Кирпичная печь
|
||||
@ -1588,7 +1588,7 @@ hbmmat.bauxite=Боксит
|
||||
hbmmat.beryllium=Бериллий
|
||||
hbmmat.bismuth=Висмут
|
||||
hbmmat.bismuthbronze=Висмутовая бронза
|
||||
hbmmat.bone=Ivory
|
||||
hbmmat.bone=Кость
|
||||
hbmmat.borax=Бура
|
||||
hbmmat.boron=Бор
|
||||
hbmmat.bscco=BSCCO
|
||||
@ -1854,6 +1854,7 @@ item.ammo_arty_nuke.name=Ядерный 16-дюймовый артиллерий
|
||||
item.ammo_arty_phosgene.name=Фосгеновый 16-дюймовый артиллерийский снаряд
|
||||
item.ammo_arty_phosphorus.name=Фосфорный 16-дюймовый артиллерийский снаряд
|
||||
item.ammo_bag.name=Сумка для боеприпасов
|
||||
item.ammo_bag_infinite.name=Бесконечная сумка для боеприпасов
|
||||
item.ammo_arty_phosphorus_multi.name=Фосфорный 16-дюймовый мульти-снаряд
|
||||
item.ammo_cell.name=Энерго-патроны
|
||||
item.ammo_coilgun.name=Вольфрамовый шар для гаусс-пушки
|
||||
@ -2164,32 +2165,32 @@ item.battery_su.name=Одноразовая батарейка
|
||||
item.battery_su_l.name=Большая одноразовая батарейка
|
||||
item.battery_trixite.name=Безымянная спарк-батарея
|
||||
item.bdcl.name=BDCL
|
||||
item.bedrock_ore.grade.base.name=%s бедроковая руда
|
||||
item.bedrock_ore.grade.base_roasted.name=Обожженная %s бедроковая руда
|
||||
item.bedrock_ore.grade.base_washed.name=Промытая %s бедроковая руда
|
||||
item.bedrock_ore.grade.primary.name=%s бедроковая руда, Первичная фракция
|
||||
item.bedrock_ore.grade.primary_roasted.name=%s бедроковая руда, Обожженная первичная фракция
|
||||
item.bedrock_ore.grade.primary_sulfuric.name=%s бедроковая руда, Серная первичная фракция
|
||||
item.bedrock_ore.grade.primary_nosulfuric.name=%s бедроковая руда, Отделённая серная первичная фракция
|
||||
item.bedrock_ore.grade.primary_solvent.name=%s бедроковая руда, Растворенная первичная фракция
|
||||
item.bedrock_ore.grade.primary_nosolvent.name=%s бедроковая руда, Отделённая растворенная первичная фракция
|
||||
item.bedrock_ore.grade.primary_rad.name=%s бедроковая руда, Очищенная первичная фракция
|
||||
item.bedrock_ore.grade.primary_norad.name=%s бедроковая руда, Отделённая очищенная первичная фракция
|
||||
item.bedrock_ore.grade.primary_first.name=%s бедроковая руда, Первичная фракция, Большой вес
|
||||
item.bedrock_ore.grade.primary_second.name=%s бедроковая руда, Первичная фракция, Малый вес
|
||||
item.bedrock_ore.grade.crumbs.name=%s куски бедроковой руды
|
||||
item.bedrock_ore.grade.sulfuric_byproduct.name=%s бедроковая руда, Серная побочка
|
||||
item.bedrock_ore.grade.sulfuric_roasted.name=%s бедроковая руда, Обожженная серная побочка
|
||||
item.bedrock_ore.grade.sulfuric_arc.name=%s бедроковая руда, Переплавленная серная побочка
|
||||
item.bedrock_ore.grade.sulfuric_washed.name=%s бедроковая руда, Промытая серная побочка
|
||||
item.bedrock_ore.grade.solvent_byproduct.name=%s бедроковая руда, Растворенная побочка
|
||||
item.bedrock_ore.grade.solvent_roasted.name=%s бедроковая руда, Обожженная растворенная побочка
|
||||
item.bedrock_ore.grade.solvent_arc.name=%s бедроковая руда, Переплавленная растворенная побочка
|
||||
item.bedrock_ore.grade.solvent_washed.name=%s бедроковая руда, Промытая растворенная побочка
|
||||
item.bedrock_ore.grade.rad_byproduct.name=%s бедроковая руда, Очищенная побочка
|
||||
item.bedrock_ore.grade.rad_roasted.name=%s бедроковая руда, Обожженная очищенная побочка
|
||||
item.bedrock_ore.grade.rad_arc.name=%s бедроковая руда, Переплавленная очищенная побочка
|
||||
item.bedrock_ore.grade.rad_washed.name=%s бедроковая руда, Промытая очищенная побочка
|
||||
item.bedrock_ore.grade.base.name=Бедроковая руда (%s)
|
||||
item.bedrock_ore.grade.base_roasted.name=Обожженная бедроковая руда (%s)
|
||||
item.bedrock_ore.grade.base_washed.name=Промытая бедроковая руда (%s)
|
||||
item.bedrock_ore.grade.primary.name=Бедроковая руда (%s), первичная фракция
|
||||
item.bedrock_ore.grade.primary_roasted.name=Бедроковая руда (%s), обожженная первичная фракция
|
||||
item.bedrock_ore.grade.primary_sulfuric.name=Бедроковая руда (%s), серная первичная фракция
|
||||
item.bedrock_ore.grade.primary_nosulfuric.name=Бедроковая руда (%s), отделённая серная первичная фракция
|
||||
item.bedrock_ore.grade.primary_solvent.name=Бедроковая руда (%s), растворенная первичная фракция
|
||||
item.bedrock_ore.grade.primary_nosolvent.name=Бедроковая руда (%s), отделённая растворенная первичная фракция
|
||||
item.bedrock_ore.grade.primary_rad.name=Бедроковая руда (%s), очищенная первичная фракция
|
||||
item.bedrock_ore.grade.primary_norad.name=Бедроковая руда (%s), отделённая очищенная первичная фракция
|
||||
item.bedrock_ore.grade.primary_first.name=Бедроковая руда (%s), первичная фракция, большой вес
|
||||
item.bedrock_ore.grade.primary_second.name=Бедроковая руда (%s), первичная фракция, малый вес
|
||||
item.bedrock_ore.grade.crumbs.name=Куски бедроковой руды (%s)
|
||||
item.bedrock_ore.grade.sulfuric_byproduct.name=Бедроковая руда (%s), серная побочка
|
||||
item.bedrock_ore.grade.sulfuric_roasted.name=Бедроковая руда (%s), обожженная серная побочка
|
||||
item.bedrock_ore.grade.sulfuric_arc.name=Бедроковая руда (%s), переплавленная серная побочка
|
||||
item.bedrock_ore.grade.sulfuric_washed.name=Бедроковая руда (%s), промытая серная побочка
|
||||
item.bedrock_ore.grade.solvent_byproduct.name=Бедроковая руда (%s), растворенная побочка
|
||||
item.bedrock_ore.grade.solvent_roasted.name=Бедроковая руда (%s), обожженная растворенная побочка
|
||||
item.bedrock_ore.grade.solvent_arc.name=Бедроковая руда (%s), переплавленная растворенная побочка
|
||||
item.bedrock_ore.grade.solvent_washed.name=Бедроковая руда (%s), промытая растворенная побочка
|
||||
item.bedrock_ore.grade.rad_byproduct.name=Бедроковая руда (%s), очищенная побочка
|
||||
item.bedrock_ore.grade.rad_roasted.name=Бедроковая руда (%s), обожженная очищенная побочка
|
||||
item.bedrock_ore.grade.rad_arc.name=Бедроковая руда (%s), переплавленная очищенная побочка
|
||||
item.bedrock_ore.grade.rad_washed.name=Бедроковая руда (%s), промытая очищенная побочка
|
||||
item.bedrock_ore.trait.arc=§6Дуговая плавка
|
||||
item.bedrock_ore.trait.centrifuged=§9Центрифугированный
|
||||
item.bedrock_ore.trait.rad=§aОбработанный высокоэффективным растворителем
|
||||
@ -2718,7 +2719,7 @@ item.crystal_diamond.name=Кристализованный алмаз
|
||||
item.crystal_energy.name=Энергетический кристалл
|
||||
item.crystal_fluorite.name=Кристаллизованный флюорит
|
||||
item.crystal_gold.name=Кристаллизованное золото
|
||||
item.crystal_horn.name=Кристалльный рог
|
||||
item.crystal_horn.name=Кристальный рог
|
||||
item.crystal_horn.desc=Не настоящий рог.
|
||||
item.crystal_horn.desc.P11=Настоящий рог.
|
||||
item.crystal_iron.name=Кристаллизованное железо
|
||||
@ -2915,7 +2916,7 @@ item.fluid_tank_empty.name=Пустой универсальный резерв
|
||||
item.fluid_tank_full.name=Универсальный резервуар для жидкости:
|
||||
item.fluid_tank_lead_empty.name=Пустой резервуар для опасных материалов
|
||||
item.fluid_tank_lead_full.name=Резервуар с опасными материалами:
|
||||
item.fluorite.name=Флюоритовая руда
|
||||
item.fluorite.name=Флюорит
|
||||
item.flywheel_beryllium.name=Бериллевый маховик
|
||||
item.fmn.name=Таблетка флунитразепама
|
||||
item.fmn.desc=Убирает все DRX более 2,000mDRX
|
||||
@ -3083,10 +3084,10 @@ item.gun_folly.name=Прототип Дигамма "Причуда"
|
||||
item.gun_g3.name=Штурмовая винтовка
|
||||
item.gun_g3_a3.name=G3A3
|
||||
item.gun_g3_infiltrator.name=Infiltrator
|
||||
item.gun_g3_zebra.name=Зебра
|
||||
item.gun_g3_zebra.name=Зебринская винтовка
|
||||
item.gun_glass_cannon.name=Стеклянная пушка
|
||||
item.gun_greasegun.name=Маслёнка
|
||||
item.gun_greasegun_m3.name=M3
|
||||
item.gun_greasegun.name=Пистолет-пулемёт "Маслёнка"
|
||||
item.gun_greasegun_m3.name=Улучшенный пистолет-пулемёт М3
|
||||
item.gun_hangman.name=Палач
|
||||
item.gun_heavy_revolver.name=Тяжёлый револьвер
|
||||
item.gun_heavy_revolver_lilmac.name=Малый Макинтош
|
||||
@ -3110,7 +3111,7 @@ item.gun_lacunae_ammo.name=5-мм патрон (LEGACY)
|
||||
item.gun_lag.name=Комически длинный пистолет
|
||||
item.gun_laser_pistol.name=Лазерный пистолет
|
||||
item.gun_laser_pistol_morning_glory.name=Морнин Глори
|
||||
item.gun_laser_pistol_pew_pew.name=Пиу Пиу
|
||||
item.gun_laser_pistol_pew_pew.name=Пью-Пью
|
||||
item.gun_lasrifle.name=Лазерная винтовка
|
||||
item.gun_lever_action.name=«Нога кобылы» (Оригинал)
|
||||
item.gun_lever_action_ammo.name=Дробь 12x74 калибра (LEGACY)
|
||||
@ -3345,7 +3346,7 @@ item.ingot_pu240.name=Слиток плутония-240
|
||||
item.ingot_pu241.name=Слиток плутония-241
|
||||
item.ingot_pvc.name=ПВХ
|
||||
item.ingot_ra226.name=Слиток радия-226
|
||||
item.ingot_raw.name=Слиткок (%s)
|
||||
item.ingot_raw.name=Слиток (%s)
|
||||
item.ingot_red_copper.name=Слиток красной меди
|
||||
item.ingot_reiium.name=Реиевый слиток
|
||||
item.ingot_rubber.name=Резина
|
||||
@ -3731,7 +3732,7 @@ item.nugget_co60.name=Самородок кобальта-60
|
||||
item.nugget_cobalt.name=Кобальтовый самородок
|
||||
item.nugget_daffergon.name=Даффергоновый самородок
|
||||
item.nugget_desh.name=Самородок деш
|
||||
item.nugget_dineutronium.name=§5Dineutronium Nugget§r
|
||||
item.nugget_dineutronium.name=§5Динейтрониевый самородок§r
|
||||
item.nugget_euphemium.name=Эвфемиевый самородок
|
||||
item.nugget_euphemium.desc=Маленький кусочек розового металла.$Его свойства до сих пор неизвестны,$ОБРАЩАЙТЕСЬ С НИМ осторожно.
|
||||
item.nugget_gh336.name=Самородок гиорсия-336
|
||||
@ -3810,7 +3811,7 @@ item.ore.titanium=Титановая
|
||||
item.ore.tungsten=Вольфрамовая
|
||||
item.ore.thorium232=Ториевая
|
||||
item.ore.uranium=Урановая
|
||||
item.ore_bedrock.name=%s бедроковая руда
|
||||
item.ore_bedrock.name=Бедроковая руда (%s)
|
||||
item.ore_byproduct.b_aluminium.name=Алюминиевый побочный продукт
|
||||
item.ore_byproduct.b_bismuth.name=Висмутовый побочный продукт
|
||||
item.ore_byproduct.b_calcium.name=Кальциевый побочный продукт
|
||||
@ -3825,9 +3826,9 @@ item.ore_byproduct.b_sulfur.name=Серный побочный продукт
|
||||
item.ore_byproduct.b_technetium.name=Технециевый побочный продукт
|
||||
item.ore_byproduct.b_titanium.name=Титановый побочный продукт
|
||||
item.ore_byproduct.b_uranium.name=Урановый побочный продукт
|
||||
item.ore_centrifuged.name=Центрифугированная %s бедроковая руда
|
||||
item.ore_cleaned.name=Очищенная %s бедроковая руда
|
||||
item.ore_deepcleaned.name=Глубоко очищенная %s бедроковая руда
|
||||
item.ore_centrifuged.name=Центрифугированная бедроковая руда (%s)
|
||||
item.ore_cleaned.name=Очищенная бедроковая руда (%s)
|
||||
item.ore_deepcleaned.name=Глубоко очищенная бедроковая руда (%s)
|
||||
item.ore_density_scanner.name=Сканер плотности бедроковой руды
|
||||
item.ore_density_scanner.excellent=Избыток
|
||||
item.ore_density_scanner.high=Высокий
|
||||
@ -3869,7 +3870,7 @@ item.page_of_.page6.name=Страница 6
|
||||
item.page_of_.page7.name=Страница 7
|
||||
item.page_of_.page8.name=Страница 8
|
||||
item.pancake.name=Блинчики с металлоломом, гвоздями и самоцветной пылью
|
||||
item.part_barrel_heavy.name=Тяжелый ствол (%s)
|
||||
item.part_barrel_heavy.name=Тяжёлый ствол (%s)
|
||||
item.part_barrel_light.name=Лёгкий ствол (%s)
|
||||
item.part_beryllium.name=Коробка бериллиевой пыли
|
||||
item.part_carbon.name=Коробка угольной пыли
|
||||
@ -4581,9 +4582,9 @@ item.solid_fuel.name=Твердое топливо
|
||||
item.solid_fuel_bf.name=Твердое топливо (Жар-пламя)
|
||||
item.solid_fuel_presto.name=Топливное полено
|
||||
item.solid_fuel_presto_bf.name=Топливное полено (Жар-пламя)
|
||||
item.solid_fuel_presto_triplet.name=Сжатые топливные полена
|
||||
item.solid_fuel_presto_triplet.name=Сжатые топливные поленья
|
||||
item.solid_fuel_presto_triplet_bf.name=Сжатые топливные полена (Жар-пламя)
|
||||
item.solinium_core.name=Полу-стабильный солиниевый заряд
|
||||
item.solinium_core.name=Полустабильный солиниевый заряд
|
||||
item.solinium_igniter.name=Солиниевый импульсный воспламенитель
|
||||
item.solinium_kit.name=Солиниевый комплект
|
||||
item.solinium_propellant.name=Солиниевый сжимающий заряд
|
||||
@ -5533,7 +5534,7 @@ tile.fan.desc=Активируется редстоуном$Толкает су
|
||||
tile.fence_metal.name=Проволочная сетка
|
||||
tile.fence_metal_post.name=Столб проволочной сетки
|
||||
tile.field_disturber.name=Подавитель высокоэнергитических полей
|
||||
tile.filing_cabinet.green.name=Пыльный карточеный шкафчик
|
||||
tile.filing_cabinet.green.name=Пыльный картотечный шкафчик
|
||||
tile.filing_cabinet.steel.name=Стальной карточеный шкафчик
|
||||
tile.fire_digamma.name=Затяжная Дигамма
|
||||
tile.fire_door.name=Пожарная дверь
|
||||
@ -5659,7 +5660,7 @@ tile.heater_oven.name=Нагревательная печь
|
||||
tile.heater_oven.desc=Производит тепло, сжигая твёрдое топливо.$Принимает тепло снизу с 50%% эффективностью.
|
||||
tile.hev_battery.name=Батарея костюма
|
||||
tile.machine_hydrotreater.name=Гидроочиститель
|
||||
tile.impact_dirt.name=Выжженая земля
|
||||
tile.impact_dirt.name=Выжженная земля
|
||||
tile.icf.name=Реактор инерциального термоядерного синтеза (ICF)
|
||||
tile.icf_block.name=Лазер ICF
|
||||
tile.icf_component.name=Стабилизатор ICF
|
||||
@ -5933,7 +5934,7 @@ tile.ore_depth_borax.name=Глубинная бура
|
||||
tile.ore_depth_cinnebar.name=Глубинная киноварь
|
||||
tile.ore_depth_nether_neodymium.name=Адская глубинная неодимовая руда
|
||||
tile.ore_depth_zirconium.name=Глубинная циркониевая руда
|
||||
tile.ore_fluorite.name=Флюорит
|
||||
tile.ore_fluorite.name=Флюоритовая руда
|
||||
tile.ore_gneiss_asbestos.name=Сланцевая асбестовая руда
|
||||
tile.ore_gneiss_copper.name=Сланцевая медная руда
|
||||
tile.ore_gneiss_gas.name=Сланцевый газ
|
||||
@ -5946,6 +5947,7 @@ tile.ore_gneiss_uranium.name=Сланцевая урановая руда
|
||||
tile.ore_gneiss_uranium_scorched.name=Обожённая сланцевая урановая руда
|
||||
tile.ore_lead.name=Свинцовая руда
|
||||
tile.ore_lignite.name=Бурый уголь
|
||||
tile.ore_meteor.aluminium.name=Метеоритная алюминиевая руда
|
||||
tile.ore_meteor.cobalt.name=Метеоритная кобальтовая руда
|
||||
tile.ore_meteor.copper.name=Метеоритная медная руда
|
||||
tile.ore_meteor.iron.name=Метеоритная железная руда
|
||||
|
||||
|
Before Width: | Height: | Size: 446 B After Width: | Height: | Size: 469 B |
|
Before Width: | Height: | Size: 536 B After Width: | Height: | Size: 589 B |
|
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 615 B |
|
Before Width: | Height: | Size: 573 B After Width: | Height: | Size: 603 B |
|
Before Width: | Height: | Size: 590 B After Width: | Height: | Size: 623 B |
|
Before Width: | Height: | Size: 248 B After Width: | Height: | Size: 249 B |
|
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 247 B |
|
Before Width: | Height: | Size: 937 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.0 KiB |