mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
the malicious gigglefish from the silly dimension
This commit is contained in:
parent
23e58c7e1d
commit
08812a700e
@ -1,7 +1,6 @@
|
||||
##Added
|
||||
* CRTs and toasters
|
||||
* Decorative blocks that will spawn in upcoming dungeons
|
||||
* Snow globes
|
||||
* Sentry turret "Edwin"
|
||||
* A broken down version of the sentry turret with infinite power and ammo
|
||||
* Will be found in the new silo structure
|
||||
|
||||
@ -1544,7 +1544,7 @@ public class ModBlocks {
|
||||
deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top");
|
||||
bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron");
|
||||
snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron");
|
||||
hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat");
|
||||
|
||||
gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian");
|
||||
|
||||
@ -1,12 +1,16 @@
|
||||
package com.hbm.blocks.bomb;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
@ -28,6 +32,11 @@ public class LaunchPadRusted extends BlockDummyable implements IBomb {
|
||||
if(meta >= 12) return new TileEntityLaunchPadRusted();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int i, Random rand, int j) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
|
||||
@ -109,6 +109,7 @@ public class EntityMappings {
|
||||
addEntity(EntityMinecartTest.class, "entity_minecart_test", 1000);
|
||||
addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000);
|
||||
addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000);
|
||||
addEntity(EntityMissileDoomsdayRusted.class, "entity_missile_doomsday_rusted", 1000);
|
||||
addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000);
|
||||
addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000);
|
||||
addEntity(EntityVortex.class, "entity_vortex", 250);
|
||||
|
||||
@ -1,54 +0,0 @@
|
||||
package com.hbm.entity.missile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.config.BombConfig;
|
||||
import com.hbm.entity.effect.EntityNukeTorex;
|
||||
import com.hbm.entity.logic.EntityNukeExplosionMK5;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class EntityMissileDoomsday extends EntityMissileBaseNT {
|
||||
|
||||
public EntityMissileDoomsday(World world) {
|
||||
super(world);
|
||||
}
|
||||
|
||||
public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) {
|
||||
super(world, x, y, z, a, b);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onImpact() {
|
||||
this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ).moreFallout(100));
|
||||
EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void spawnContrail() {
|
||||
|
||||
byte rot = this.dataWatcher.getWatchableObjectByte(3);
|
||||
|
||||
Vec3 thrust = Vec3.createVectorHelper(0, 0, 1);
|
||||
switch(rot) {
|
||||
case 2: thrust.rotateAroundY((float) -Math.PI / 2F); break;
|
||||
case 4: thrust.rotateAroundY((float) -Math.PI); break;
|
||||
case 3: thrust.rotateAroundY((float) -Math.PI / 2F * 3F); break;
|
||||
}
|
||||
thrust.rotateAroundY((this.rotationYaw + 90) * (float) Math.PI / 180F);
|
||||
thrust.rotateAroundX(this.rotationPitch * (float) Math.PI / 180F);
|
||||
thrust.rotateAroundY(-(this.rotationYaw + 90) * (float) Math.PI / 180F);
|
||||
|
||||
this.spawnContraolWithOffset(thrust.xCoord, thrust.yCoord, thrust.zCoord);
|
||||
this.spawnContraolWithOffset(0, 0, 0);
|
||||
this.spawnContraolWithOffset(-thrust.xCoord, -thrust.zCoord, -thrust.zCoord);
|
||||
}
|
||||
|
||||
@Override public List<ItemStack> getDebris() { return null; }
|
||||
@Override public ItemStack getDebrisRareDrop() { return null; }
|
||||
@Override public String getUnlocalizedName() { return "radar.target.doomsday"; }
|
||||
@Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday); }
|
||||
}
|
||||
@ -103,4 +103,27 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT {
|
||||
@Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_volcano); }
|
||||
@Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_volcano); }
|
||||
}
|
||||
|
||||
public static class EntityMissileDoomsday extends EntityMissileTier4 {
|
||||
public EntityMissileDoomsday(World world) { super(world); }
|
||||
public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); }
|
||||
@Override public void onImpact() {
|
||||
this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ).moreFallout(100));
|
||||
EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2);
|
||||
}
|
||||
@Override public List<ItemStack> getDebris() { return null; }
|
||||
@Override public ItemStack getDebrisRareDrop() { return null; }
|
||||
@Override public String getUnlocalizedName() { return "radar.target.doomsday"; }
|
||||
@Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday); }
|
||||
}
|
||||
|
||||
public static class EntityMissileDoomsdayRusted extends EntityMissileDoomsday {
|
||||
public EntityMissileDoomsdayRusted(World world) { super(world); }
|
||||
public EntityMissileDoomsdayRusted(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); }
|
||||
@Override public void onImpact() {
|
||||
this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ).moreFallout(100));
|
||||
EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius);
|
||||
}
|
||||
@Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday_rusted); }
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotCraftingOutput;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted;
|
||||
|
||||
import api.hbm.item.IDesignatorItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
@ -13,6 +16,12 @@ public class ContainerLaunchPadRusted extends Container {
|
||||
private TileEntityLaunchPadRusted launchpad;
|
||||
|
||||
public ContainerLaunchPadRusted(InventoryPlayer invPlayer, TileEntityLaunchPadRusted tedf) {
|
||||
this.launchpad = tedf;
|
||||
|
||||
this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 0, 26, 72));
|
||||
this.addSlotToContainer(new Slot(tedf, 1, 116, 45));
|
||||
this.addSlotToContainer(new Slot(tedf, 2, 134, 45));
|
||||
this.addSlotToContainer(new Slot(tedf, 3, 26, 99));
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
for(int j = 0; j < 9; j++) {
|
||||
@ -27,7 +36,44 @@ public class ContainerLaunchPadRusted extends Container {
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer player, int par2) {
|
||||
return null;
|
||||
ItemStack var3 = null;
|
||||
Slot var4 = (Slot) this.inventorySlots.get(par2);
|
||||
|
||||
if(var4 != null && var4.getHasStack()) {
|
||||
ItemStack var5 = var4.getStack();
|
||||
var3 = var5.copy();
|
||||
|
||||
if(par2 <= 3) {
|
||||
if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
|
||||
if(var3.getItem() instanceof IDesignatorItem) {
|
||||
if(!this.mergeItemStack(var5, 3, 4, false)) {
|
||||
return null;
|
||||
}
|
||||
} else if(var3.getItem() == ModItems.launch_code) {
|
||||
if(!this.mergeItemStack(var5, 1, 2, false)) {
|
||||
return null;
|
||||
}
|
||||
} else if(var3.getItem() == ModItems.launch_key) {
|
||||
if(!this.mergeItemStack(var5, 2, 3, false)) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if(var5.stackSize == 0) {
|
||||
var4.putStack((ItemStack) null);
|
||||
} else {
|
||||
var4.onSlotChanged();
|
||||
}
|
||||
}
|
||||
|
||||
return var3;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,14 +1,28 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import java.util.Random;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL12;
|
||||
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.container.ContainerLaunchPadRusted;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.NBTControlPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.render.item.ItemRenderMissileGeneric;
|
||||
import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUILaunchPadRusted extends GuiInfoContainer {
|
||||
@ -27,6 +41,20 @@ public class GUILaunchPadRusted extends GuiInfoContainer {
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
super.drawScreen(mouseX, mouseY, f);
|
||||
drawCustomInfoStat(mouseX, mouseY, guiLeft + 26, guiTop + 36, 16, 16, mouseX, mouseY, EnumChatFormatting.YELLOW + "Release Missile", "Missile is locked in lauch position,", "releasing may cause damage to the missile.", "Damaged missile can not be put back", "into launching position.");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int x, int y, int i) {
|
||||
super.mouseClicked(x, y, i);
|
||||
|
||||
if(guiLeft + 26 <= x && guiLeft + 26 + 16 > x && guiTop + 36 < y && guiTop + 36 + 16 >= y) {
|
||||
|
||||
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setBoolean("release", true);
|
||||
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, launchpad.xCoord, launchpad.yCoord, launchpad.zCoord));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -41,30 +69,33 @@ public class GUILaunchPadRusted extends GuiInfoContainer {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
boolean hasCodes = launchpad.slots[1] != null && launchpad.slots[1].getItem() == ModItems.launch_code;
|
||||
boolean hasKey = launchpad.slots[2] != null && launchpad.slots[2].getItem() == ModItems.launch_key;
|
||||
|
||||
if(hasCodes) drawTexturedModalRect(guiLeft + 121, guiTop + 32, 192, 0, 6, 8);
|
||||
if(hasKey) drawTexturedModalRect(guiLeft + 139, guiTop + 32, 192, 0, 6, 8);
|
||||
|
||||
/*if(launchpad.slots[0] != null) {
|
||||
Consumer<TextureManager> renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(launchpad.slots[0]).makeSingular());
|
||||
if(hasCodes && hasKey && launchpad.missileLoaded) {
|
||||
|
||||
Random rand = new Random(launchpad.xCoord * 131_071 + launchpad.zCoord);
|
||||
int launchCodes = rand.nextInt(100_000_000);
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
int magnitude = (int) Math.pow(10, i);
|
||||
int digit = (launchCodes % (magnitude * 10)) / magnitude;
|
||||
drawTexturedModalRect(guiLeft + 109 + 6 * i, guiTop + 85, 192 + 6 * digit, 8, 6, 8);
|
||||
}
|
||||
}
|
||||
|
||||
if(launchpad.missileLoaded) {
|
||||
Consumer<TextureManager> renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(ModItems.missile_doomsday_rusted).makeSingular());
|
||||
if(renderer != null) {
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslatef(guiLeft + 70, guiTop + 120, 100);
|
||||
|
||||
double scale = 1D;
|
||||
|
||||
if(launchpad.slots[0].getItem() instanceof ItemMissile) {
|
||||
ItemMissile missile = (ItemMissile) launchpad.slots[0].getItem();
|
||||
switch(missile.formFactor) {
|
||||
case ABM: scale = 1.45D; break;
|
||||
case MICRO: scale = 2.5D; break;
|
||||
case V2: scale = 1.75D; break;
|
||||
case STRONG: scale = 1.375D; break;
|
||||
case HUGE: scale = 0.925D; break;
|
||||
case ATLAS: scale = 0.875D; break;
|
||||
case OTHER: break;
|
||||
}
|
||||
if(missile == ModItems.missile_stealth) scale = 1.125D;
|
||||
}
|
||||
|
||||
double scale = 0.875D;
|
||||
GL11.glRotatef(90, 0, 1, 0);
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
GL11.glScalef(-8, -8, -8);
|
||||
@ -79,6 +110,6 @@ public class GUILaunchPadRusted extends GuiInfoContainer {
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1327,6 +1327,7 @@ public class ModItems {
|
||||
public static Item missile_nuclear_cluster;
|
||||
public static Item missile_volcano;
|
||||
public static Item missile_doomsday;
|
||||
public static Item missile_doomsday_rusted;
|
||||
public static Item missile_taint;
|
||||
public static Item missile_micro;
|
||||
public static Item missile_bhole;
|
||||
@ -3956,6 +3957,7 @@ public class ModItems {
|
||||
missile_nuclear_cluster = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster");
|
||||
missile_volcano = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano");
|
||||
missile_doomsday = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday");
|
||||
missile_doomsday_rusted = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).notLaunchable().setUnlocalizedName("missile_doomsday_rusted").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday");
|
||||
missile_taint = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_taint");
|
||||
missile_micro = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_micro");
|
||||
missile_bhole = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_bhole");
|
||||
@ -6919,6 +6921,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_doomsday_rusted, missile_doomsday_rusted.getUnlocalizedName());
|
||||
//Rockets
|
||||
GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName());
|
||||
GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName());
|
||||
|
||||
@ -14,6 +14,7 @@ public class ItemMissile extends ItemCustomLore {
|
||||
public final MissileTier tier;
|
||||
public final MissileFuel fuel;
|
||||
public int fuelCap;
|
||||
public boolean launchable = true;
|
||||
|
||||
public ItemMissile(MissileFormFactor form, MissileTier tier) {
|
||||
this(form, tier, form.defaultFuel);
|
||||
@ -26,6 +27,11 @@ public class ItemMissile extends ItemCustomLore {
|
||||
this.setFuelCap(this.fuel.defaultCap);
|
||||
}
|
||||
|
||||
public ItemMissile notLaunchable() {
|
||||
this.launchable = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ItemMissile setFuelCap(int fuelCap) {
|
||||
this.fuelCap = fuelCap;
|
||||
return this;
|
||||
@ -34,9 +40,14 @@ public class ItemMissile extends ItemCustomLore {
|
||||
@Override
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
|
||||
list.add(EnumChatFormatting.ITALIC + this.tier.display);
|
||||
list.add("Fuel: " + this.fuel.display);
|
||||
if(this.fuelCap > 0) list.add("Fuel capacity: " + this.fuelCap + "mB");
|
||||
super.addInformation(itemstack, player, list, bool);
|
||||
|
||||
if(!this.launchable) {
|
||||
list.add(EnumChatFormatting.RED + "Not launchable!");
|
||||
} else {
|
||||
list.add("Fuel: " + this.fuel.display);
|
||||
if(this.fuelCap > 0) list.add("Fuel capacity: " + this.fuelCap + "mB");
|
||||
super.addInformation(itemstack, player, list, bool);
|
||||
}
|
||||
}
|
||||
|
||||
public enum MissileFormFactor {
|
||||
|
||||
@ -326,6 +326,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCore.class, new RenderCore());
|
||||
//missile blocks
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPad());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPadRusted.class, new RenderLaunchPadRusted());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPadLarge.class, new RenderLaunchPadLarge());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMissileAssembly.class, new RenderMissileAssembly());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCompactLauncher.class, new RenderCompactLauncher());
|
||||
@ -447,6 +448,7 @@ public class ClientProxy extends ServerProxy {
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_nuclear_cluster, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday_rusted, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_carrier, new ItemRenderMissileGeneric(RenderMissileType.TYPE_CARRIER));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN));
|
||||
|
||||
@ -712,6 +714,7 @@ public class ClientProxy extends ServerProxy {
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileVolcano.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMIRV.class, new RenderMirv());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsdayRusted.class, new RenderMissileNuclear());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityBooster.class, new RenderBoosterMissile());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz());
|
||||
|
||||
@ -1126,6 +1126,14 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_cooler, 1), new Object[] { "IGI", "GCG", "IGI", 'C', ModBlocks.rbmk_blank, 'I', ModItems.plate_polymer, 'G', ModBlocks.steel_grate });
|
||||
}
|
||||
|
||||
addShapelessAuto(new ItemStack(ModItems.launch_code), new Object[] {
|
||||
new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece),
|
||||
new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece),
|
||||
new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece),
|
||||
new ItemStack(ModItems.launch_code_piece), new ItemStack(ModItems.launch_code_piece),
|
||||
new ItemStack(ModItems.circuit_aluminium)
|
||||
});
|
||||
|
||||
addShapelessAuto(ModItems.circuit_star_component.stackFromEnum(CircuitComponentType.CHIPSET), new Object[] {
|
||||
ModItems.circuit_star_piece.stackFromEnum(ScrapType.BRIDGE_BIOS),
|
||||
ModItems.circuit_star_piece.stackFromEnum(ScrapType.BRIDGE_BUS),
|
||||
|
||||
@ -325,6 +325,7 @@ public class ModEventHandler {
|
||||
if(event.entityLiving instanceof IMob) {
|
||||
if(event.entityLiving.getRNG().nextInt(1000) == 0) event.entityLiving.dropItem(ModItems.heart_piece, 1);
|
||||
if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.key_red_cracked, 1);
|
||||
if(event.entityLiving.getRNG().nextInt(250) == 0) event.entityLiving.dropItem(ModItems.launch_code_piece, 1);
|
||||
}
|
||||
|
||||
if(event.entityLiving instanceof EntityCyberCrab && event.entityLiving.getRNG().nextInt(500) == 0) {
|
||||
|
||||
@ -1230,6 +1230,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_thermo.png");
|
||||
public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_tectonic.png");
|
||||
public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday.png");
|
||||
public static final ResourceLocation missileDoomsdayRusted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_atlas_doomsday_weathered.png");
|
||||
public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro_taint.png");
|
||||
public static final ResourceLocation missileShuttle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileShuttle.png");
|
||||
public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_micro.png");
|
||||
@ -1296,6 +1297,7 @@ public class ResourceManager {
|
||||
|
||||
//Missile Parts
|
||||
public static final ResourceLocation missile_pad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/silo.png");
|
||||
public static final ResourceLocation missile_pad_rusted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/silo_rusted.png");
|
||||
public static final ResourceLocation missile_erector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/pad.png");
|
||||
public static final ResourceLocation missile_erector_micro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_micro.png");
|
||||
public static final ResourceLocation missile_erector_v2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/launchpad/erector_v2.png");
|
||||
|
||||
@ -3,10 +3,7 @@ package com.hbm.render.entity.rocket;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.entity.missile.EntityMissileBaseNT;
|
||||
import com.hbm.entity.missile.EntityMissileDoomsday;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.EntityMissileMirv;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.EntityMissileNuclear;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.EntityMissileVolcano;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.*;
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.entity.Render;
|
||||
@ -36,6 +33,7 @@ public class RenderMissileNuclear extends Render {
|
||||
if(entity instanceof EntityMissileNuclear) bindTexture(ResourceManager.missileNuclear_tex);
|
||||
if(entity instanceof EntityMissileMirv) bindTexture(ResourceManager.missileMIRV_tex);
|
||||
if(entity instanceof EntityMissileDoomsday) bindTexture(ResourceManager.missileDoomsday_tex);
|
||||
if(entity instanceof EntityMissileDoomsdayRusted) bindTexture(ResourceManager.missileDoomsdayRusted_tex);
|
||||
if(entity instanceof EntityMissileVolcano) bindTexture(ResourceManager.missileVolcano_tex);
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
@ -165,6 +165,7 @@ public class ItemRenderMissileGeneric implements IItemRenderer {
|
||||
renderers.put(new ComparableStack(ModItems.missile_nuclear_cluster), generateStandard(ResourceManager.missileMIRV_tex, ResourceManager.missileNuclear));
|
||||
renderers.put(new ComparableStack(ModItems.missile_volcano), generateStandard(ResourceManager.missileVolcano_tex, ResourceManager.missileNuclear));
|
||||
renderers.put(new ComparableStack(ModItems.missile_doomsday), generateStandard(ResourceManager.missileDoomsday_tex, ResourceManager.missileNuclear));
|
||||
renderers.put(new ComparableStack(ModItems.missile_doomsday_rusted), generateStandard(ResourceManager.missileDoomsdayRusted_tex, ResourceManager.missileNuclear));
|
||||
|
||||
renderers.put(new ComparableStack(ModItems.missile_carrier), x -> {
|
||||
GL11.glScalef(2F, 2F, 2F);
|
||||
|
||||
@ -0,0 +1,72 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.render.item.ItemRenderMissileGeneric;
|
||||
import com.hbm.tileentity.bomb.TileEntityLaunchPadRusted;
|
||||
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderLaunchPadRusted extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) {
|
||||
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||
case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||
case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
}
|
||||
|
||||
bindTexture(ResourceManager.missile_pad_rusted_tex);
|
||||
ResourceManager.missile_pad.renderAll();
|
||||
|
||||
if(tileEntity instanceof TileEntityLaunchPadRusted) {
|
||||
TileEntityLaunchPadRusted launchpad = (TileEntityLaunchPadRusted) tileEntity;
|
||||
if(launchpad.missileLoaded) {
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
Consumer<TextureManager> renderer = ItemRenderMissileGeneric.renderers.get(new ComparableStack(ModItems.missile_doomsday_rusted).makeSingular());
|
||||
if(renderer != null) renderer.accept(this.field_147501_a.field_147553_e);
|
||||
}
|
||||
}
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.launch_pad_rusted);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
|
||||
return new ItemRenderBase() {
|
||||
@Override public void renderInventory() {
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
GL11.glScaled(3, 3, 3);
|
||||
}
|
||||
@Override public void renderCommon() {
|
||||
bindTexture(ResourceManager.missile_pad_rusted_tex); ResourceManager.missile_pad.renderAll();
|
||||
}};
|
||||
}
|
||||
}
|
||||
@ -73,6 +73,7 @@ public class TileMappings {
|
||||
put(TileEntityRedBarrel.class, "tileentity_barrel");
|
||||
put(TileEntityYellowBarrel.class, "tileentity_nukebarrel");
|
||||
put(TileEntityLaunchPad.class, "tileentity_launch1");
|
||||
put(TileEntityLaunchPadRusted.class, "tileentity_launchpad_rusted");
|
||||
put(TileEntityLaunchPadLarge.class, "tileentity_launchpad_large");
|
||||
put(TileEntityDecoBlock.class, "tileentity_deco");
|
||||
put(TileEntityDecoBlockAltW.class, "tileentity_deco_w");
|
||||
|
||||
@ -85,8 +85,8 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl
|
||||
missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class);
|
||||
missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class);
|
||||
missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class);
|
||||
|
||||
missiles.put(new ComparableStack(ModItems.missile_doomsday), EntityMissileDoomsday.class);
|
||||
|
||||
missiles.put(new ComparableStack(ModItems.missile_stealth), EntityMissileStealth.class);
|
||||
}
|
||||
|
||||
@ -307,7 +307,7 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl
|
||||
}
|
||||
|
||||
public boolean isMissileValid(ItemStack stack) {
|
||||
return stack.getItem() instanceof ItemMissile;
|
||||
return stack.getItem() instanceof ItemMissile && ((ItemMissile) stack.getItem()).launchable;
|
||||
}
|
||||
|
||||
public boolean hasFuel() {
|
||||
|
||||
@ -1,25 +1,37 @@
|
||||
package com.hbm.tileentity.bomb;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.hbm.entity.missile.EntityMissileBaseNT;
|
||||
import com.hbm.entity.missile.EntityMissileTier4.EntityMissileDoomsdayRusted;
|
||||
import com.hbm.interfaces.IBomb.BombReturnCode;
|
||||
import com.hbm.interfaces.IControlReceiver;
|
||||
import com.hbm.inventory.container.ContainerLaunchPadRusted;
|
||||
import com.hbm.inventory.gui.GUILaunchPadRusted;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.TrackerUtil;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
|
||||
import api.hbm.item.IDesignatorItem;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements IGUIProvider {
|
||||
public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements IGUIProvider, IControlReceiver {
|
||||
|
||||
public int prevRedstonePower;
|
||||
public int redstonePower;
|
||||
@ -28,7 +40,7 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements
|
||||
public boolean missileLoaded;
|
||||
|
||||
public TileEntityLaunchPadRusted() {
|
||||
super(3);
|
||||
super(4);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -39,15 +51,77 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(this.redstonePower > 0 && this.prevRedstonePower <= 0) {
|
||||
this.launch();
|
||||
}
|
||||
|
||||
this.prevRedstonePower = this.redstonePower;
|
||||
this.networkPackNT(250);
|
||||
} else {
|
||||
|
||||
List<EntityMissileBaseNT> entities = worldObj.getEntitiesWithinAABB(EntityMissileBaseNT.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5));
|
||||
|
||||
if(!entities.isEmpty()) {
|
||||
for(int i = 0; i < 15; i++) {
|
||||
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
if(worldObj.rand.nextBoolean()) dir = dir.getOpposite();
|
||||
if(worldObj.rand.nextBoolean()) dir = dir.getRotation(ForgeDirection.UP);
|
||||
float moX = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetX;
|
||||
float moZ = (float) (worldObj.rand.nextGaussian() * 0.15F + 0.75) * dir.offsetZ;
|
||||
|
||||
MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] {moX, 0, moZ});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(ByteBuf buf) {
|
||||
super.serialize(buf);
|
||||
buf.writeBoolean(this.missileLoaded);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(ByteBuf buf) {
|
||||
super.deserialize(buf);
|
||||
this.missileLoaded = buf.readBoolean();
|
||||
}
|
||||
|
||||
public BombReturnCode launch() {
|
||||
return BombReturnCode.UNDEFINED;
|
||||
|
||||
if(slots[1] != null && slots[2] != null && slots[3] != null && this.missileLoaded) {
|
||||
if(slots[1].getItem() == ModItems.launch_code && slots[2].getItem() == ModItems.launch_key) {
|
||||
if(slots[3] != null && slots[3].getItem() instanceof IDesignatorItem) {
|
||||
IDesignatorItem designator = (IDesignatorItem) slots[3].getItem();
|
||||
|
||||
if(!designator.isReady(worldObj, slots[3], xCoord, yCoord, zCoord)) return BombReturnCode.ERROR_MISSING_COMPONENT;
|
||||
|
||||
Vec3 coords = designator.getCoords(worldObj, slots[3], xCoord, yCoord, zCoord);
|
||||
int targetX = (int) Math.floor(coords.xCoord);
|
||||
int targetZ = (int) Math.floor(coords.zCoord);
|
||||
|
||||
EntityMissileDoomsdayRusted missile = new EntityMissileDoomsdayRusted(worldObj, xCoord + 0.5F, yCoord + 1F, zCoord + 0.5F, targetX, targetZ);
|
||||
worldObj.spawnEntityInWorld(missile);
|
||||
TrackerUtil.setTrackingRange(worldObj, missile, 500);
|
||||
worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F);
|
||||
this.missileLoaded = false;
|
||||
this.decrStackSize(1, 1);
|
||||
this.markDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return BombReturnCode.ERROR_MISSING_COMPONENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
this.missileLoaded = nbt.getBoolean("missileLoaded");
|
||||
|
||||
this.redstonePower = nbt.getInteger("redstonePower");
|
||||
this.prevRedstonePower = nbt.getInteger("prevRedstonePower");
|
||||
@ -61,6 +135,8 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setBoolean("missileLoaded", missileLoaded);
|
||||
|
||||
nbt.setInteger("redstonePower", redstonePower);
|
||||
nbt.setInteger("prevRedstonePower", prevRedstonePower);
|
||||
@ -129,4 +205,20 @@ public class TileEntityLaunchPadRusted extends TileEntityMachineBase implements
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUILaunchPadRusted(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(EntityPlayer player) {
|
||||
return this.isUseableByPlayer(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receiveControl(NBTTagCompound data) {
|
||||
if(data.hasKey("release")) {
|
||||
if(this.missileLoaded && slots[0] == null) {
|
||||
this.missileLoaded = false;
|
||||
slots[0] = new ItemStack(ModItems.missile_doomsday_rusted);
|
||||
this.markDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -347,6 +347,7 @@ container.hydrotreater=Hydrotreater
|
||||
container.iGenerator=Industrieller Generator
|
||||
container.keyForge=Schlossertisch
|
||||
container.launchPad=Startrampe
|
||||
container.launchPadRusted=Startrampe
|
||||
container.launchTable=Große Startrampe
|
||||
container.leadBox=Sicherheitsbehälter
|
||||
container.machineArcWelder=Lichtbogenschweißer
|
||||
@ -2245,6 +2246,9 @@ item.laser_crystal_co2.name=CO2-Desh-Laserkristall
|
||||
item.laser_crystal_digamma.name=Digamma-Laserkristall
|
||||
item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Superkristall
|
||||
item.laser_crystal_dnt.name=Spark-Laserkristall
|
||||
item.launch_code.name=Silo-Startcode
|
||||
item.launch_code_piece.name=Silo-Startcodestück
|
||||
item.launch_key.name=Silo-Startschlüssel
|
||||
item.lead_gavel.name=Bleierner Richterhammer
|
||||
item.lemon.name="Zitrone"
|
||||
item.letter.name=Eilbrief
|
||||
|
||||
@ -706,6 +706,7 @@ container.hydrotreater=Hydrotreater
|
||||
container.iGenerator=Industrial Generator
|
||||
container.keyForge=Locksmith Table
|
||||
container.launchPad=Launch Pad
|
||||
container.launchPadRusted=Launch Pad
|
||||
container.launchTable=Large Launch Pad
|
||||
container.leadBox=Containment Box
|
||||
container.machineArcWelder=Arc Welder
|
||||
@ -2996,6 +2997,9 @@ item.laser_crystal_co2.name=CO2-Desh Laser Crystal
|
||||
item.laser_crystal_digamma.name=Digamma Laser Crystal
|
||||
item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal
|
||||
item.laser_crystal_dnt.name=Spark Laser Crystal
|
||||
item.launch_code.name=Silo Launch Code
|
||||
item.launch_code_piece.name=Silo Launch Code Piece
|
||||
item.launch_key.name=Silo Launch Key
|
||||
item.lead_gavel.name=Leaden Gavel
|
||||
item.lemon.name="Lemon"
|
||||
item.letter.name=Express Mail
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 320 B |
Loading…
x
Reference in New Issue
Block a user