mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
some minor crystal funnies and rocket artillery code
This commit is contained in:
parent
896b91d960
commit
77c0ae1834
@ -910,6 +910,7 @@ public class ModBlocks {
|
||||
|
||||
public static Block machine_teleporter;
|
||||
public static final int guiID_machine_teleporter = 36;
|
||||
public static Block teleanchor;
|
||||
|
||||
public static Block machine_reix_mainframe;
|
||||
public static final int guiID_machine_reix_mainframe = 38;
|
||||
@ -1898,6 +1899,7 @@ public class ModBlocks {
|
||||
machine_combine_factory = new MachineCMBFactory(Material.iron).setBlockName("machine_combine_factory").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
|
||||
machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
|
||||
machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg");
|
||||
//machine_rtg_red = new MachineRTG(Material.iron).setBlockName("machine_rtg_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
@ -3206,6 +3208,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(teleanchor, teleanchor.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_satlinker, machine_satlinker.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_keyforge, machine_keyforge.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_armor_table, machine_armor_table.getUnlocalizedName());
|
||||
|
||||
32
src/main/java/com/hbm/blocks/machine/MachineTeleanchor.java
Normal file
32
src/main/java/com/hbm/blocks/machine/MachineTeleanchor.java
Normal file
@ -0,0 +1,32 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockBase;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
public class MachineTeleanchor extends BlockBase {
|
||||
|
||||
@SideOnly(Side.CLIENT) private IIcon iconTop;
|
||||
|
||||
public MachineTeleanchor() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":teleanchor_top");
|
||||
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":teleanchor_side");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
return side == 1 ? this.iconTop : this.blockIcon;
|
||||
}
|
||||
}
|
||||
@ -22,9 +22,8 @@ import net.minecraft.world.World;
|
||||
|
||||
public class MachineTeleporter extends BlockContainer {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon iconTop;
|
||||
private IIcon iconBottom;
|
||||
@SideOnly(Side.CLIENT) private IIcon iconTop;
|
||||
@SideOnly(Side.CLIENT) private IIcon iconBottom;
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
|
||||
@ -19,7 +19,7 @@ public class SiegeShield extends SiegeBase {
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
if(SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getExpansionThreshold(world) || !SiegeOrchestrator.enableBaseSpawning(world))
|
||||
if(SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getExpansionThreshold(world) || !SiegeOrchestrator.enableBaseSpawning(world) || !SiegeOrchestrator.siegeEnabled(world))
|
||||
return;
|
||||
|
||||
int succ = 0;
|
||||
|
||||
@ -2400,6 +2400,7 @@ public class ModItems {
|
||||
public static Item crate_caller;
|
||||
public static Item bomb_caller;
|
||||
public static Item meteor_remote;
|
||||
public static Item anchor_remote;
|
||||
public static Item remote;
|
||||
//public static Item turret_control;
|
||||
public static Item turret_chip;
|
||||
@ -4820,6 +4821,7 @@ public class ModItems {
|
||||
crate_caller = new ItemCrateCaller().setUnlocalizedName("crate_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crate_caller");
|
||||
bomb_caller = new ItemBombCaller().setUnlocalizedName("bomb_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bomb_caller");
|
||||
meteor_remote = new ItemMeteorRemote().setUnlocalizedName("meteor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":meteor_remote");
|
||||
anchor_remote = new ItemAnchorRemote().setUnlocalizedName("anchor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":anchor_remote");
|
||||
spawn_chopper = new ItemChopper().setUnlocalizedName("chopper").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chopper");
|
||||
spawn_worm = new ItemChopper().setUnlocalizedName("spawn_worm").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spawn_worm");
|
||||
spawn_ufo = new ItemChopper().setUnlocalizedName("spawn_ufo").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spawn_ufo");
|
||||
@ -8013,6 +8015,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(crate_caller, crate_caller.getUnlocalizedName());
|
||||
GameRegistry.registerItem(bomb_caller, bomb_caller.getUnlocalizedName());
|
||||
GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName());
|
||||
GameRegistry.registerItem(anchor_remote, anchor_remote.getUnlocalizedName());
|
||||
GameRegistry.registerItem(defuser, defuser.getUnlocalizedName());
|
||||
GameRegistry.registerItem(reacher, reacher.getUnlocalizedName());
|
||||
GameRegistry.registerItem(bismuth_tool, bismuth_tool.getUnlocalizedName());
|
||||
|
||||
@ -17,9 +17,9 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public class ItemBattery extends Item implements IBatteryItem {
|
||||
|
||||
private long maxCharge;
|
||||
private long chargeRate;
|
||||
private long dischargeRate;
|
||||
protected long maxCharge;
|
||||
protected long chargeRate;
|
||||
protected long dischargeRate;
|
||||
|
||||
public ItemBattery(long dura, long chargeRate, long dischargeRate) {
|
||||
this.maxCharge = dura;
|
||||
|
||||
105
src/main/java/com/hbm/items/tool/ItemAnchorRemote.java
Normal file
105
src/main/java/com/hbm/items/tool/ItemAnchorRemote.java
Normal file
@ -0,0 +1,105 @@
|
||||
package com.hbm.items.tool;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBattery;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemAnchorRemote extends ItemBattery {
|
||||
|
||||
public ItemAnchorRemote() {
|
||||
super(1_000_000, 10_000, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
|
||||
|
||||
long charge = maxCharge;
|
||||
|
||||
if(itemstack.hasTagCompound())
|
||||
charge = getCharge(itemstack);
|
||||
|
||||
if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.energy_core) {
|
||||
list.add("Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE");
|
||||
} else {
|
||||
String charge1 = BobMathUtil.getShortNumber((charge * 100) / this.maxCharge);
|
||||
list.add("Charge: " + charge1 + "%");
|
||||
list.add("(" + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE)");
|
||||
}
|
||||
|
||||
list.add("Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
|
||||
|
||||
if(world.getBlock(x, y, z) == ModBlocks.teleanchor) {
|
||||
|
||||
if(!stack.hasTagCompound())
|
||||
stack.stackTagCompound = new NBTTagCompound();
|
||||
|
||||
stack.stackTagCompound.setInteger("x", x);
|
||||
stack.stackTagCompound.setInteger("y", y);
|
||||
stack.stackTagCompound.setInteger("z", z);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||
|
||||
if(player.isSneaking() || world.isRemote) {
|
||||
return stack;
|
||||
}
|
||||
|
||||
if(!stack.hasTagCompound()) {
|
||||
world.playSoundAtEntity(player, "random.orb", 0.25F, 0.75F);
|
||||
return stack;
|
||||
}
|
||||
|
||||
if(this.getCharge(stack) < 10_000) {
|
||||
world.playSoundAtEntity(player, "random.orb", 0.25F, 0.75F);
|
||||
return stack;
|
||||
}
|
||||
|
||||
int x = stack.stackTagCompound.getInteger("x");
|
||||
int y = stack.stackTagCompound.getInteger("y");
|
||||
int z = stack.stackTagCompound.getInteger("z");
|
||||
|
||||
world.getChunkProvider().loadChunk(x >> 4, z >> 4);
|
||||
|
||||
if(world.getBlock(x, y, z) == ModBlocks.teleanchor) {
|
||||
|
||||
if(player.isRiding()) {
|
||||
player.mountEntity(null);
|
||||
}
|
||||
|
||||
world.newExplosion(player, x + 0.5, y + 1 + player.height / 2, z + 0.5, 2F, false, false);
|
||||
world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
player.setPositionAndUpdate(x + 0.5, y + 1, z + 0.5);
|
||||
//world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
player.fallDistance = 0.0F;
|
||||
|
||||
for(int i = 0; i < 32; ++i) {
|
||||
world.spawnParticle("portal", player.posX, player.posY + player.getRNG().nextDouble() * 2.0D, player.posZ, player.getRNG().nextGaussian(), 0.0D, player.getRNG().nextGaussian());
|
||||
}
|
||||
|
||||
this.dischargeBattery(stack, 10_000);
|
||||
|
||||
} else {
|
||||
world.playSoundAtEntity(player, "random.orb", 0.25F, 0.75F);
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
}
|
||||
@ -14,33 +14,33 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class ItemDiscord extends Item {
|
||||
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||
|
||||
|
||||
MovingObjectPosition pos = Library.rayTrace(player, 100, 1);
|
||||
|
||||
|
||||
if(pos.typeOfHit == MovingObjectType.BLOCK) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
|
||||
if(player.isRiding())
|
||||
player.mountEntity(null);
|
||||
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(pos.sideHit);
|
||||
|
||||
world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
|
||||
player.setPositionAndUpdate(pos.hitVec.xCoord + dir.offsetX, pos.hitVec.yCoord + dir.offsetY - 1, pos.hitVec.zCoord + dir.offsetZ);
|
||||
|
||||
world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
player.fallDistance = 0.0F;
|
||||
if(player.isRiding())
|
||||
player.mountEntity(null);
|
||||
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(pos.sideHit);
|
||||
|
||||
world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
|
||||
player.setPositionAndUpdate(pos.hitVec.xCoord + dir.offsetX, pos.hitVec.yCoord + dir.offsetY - 1, pos.hitVec.zCoord + dir.offsetZ);
|
||||
|
||||
world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
player.fallDistance = 0.0F;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 32; ++i)
|
||||
world.spawnParticle("portal", player.posX, player.posY + player.getRNG().nextDouble() * 2.0D, player.posZ, player.getRNG().nextGaussian(), 0.0D, player.getRNG().nextGaussian());
|
||||
for(int i = 0; i < 32; ++i)
|
||||
world.spawnParticle("portal", player.posX, player.posY + player.getRNG().nextDouble() * 2.0D, player.posZ, player.getRNG().nextGaussian(), 0.0D, player.getRNG().nextGaussian());
|
||||
}
|
||||
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
|
||||
@ -896,6 +896,9 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.charger, 16), new Object[] { "G", "S", "C", 'G', Blocks.glowstone, 'S', STEEL.block(), 'C', ModItems.coil_copper_torus });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.press_preheater), new Object[] { "CCC", "SLS", "TST", 'C', ModItems.board_copper, 'S', Blocks.stone, 'L', Fluids.LAVA.getDict(1000), 'T', W.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.fluid_identifier_multi), new Object[] { "D", "C", "P", 'D', "dye", 'C', ModItems.circuit_aluminium, 'P', ANY_PLASTIC.ingot() });
|
||||
|
||||
addShapelessAuto(ItemBattery.getEmptyBattery(ModItems.anchor_remote), new Object[] { DIAMOND.gem(), ModItems.ducttape, ModItems.circuit_red_copper });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.teleanchor), new Object[] { "ODO", "EAE", "ODO", 'O', Blocks.obsidian, 'D', DIAMOND.gem(), 'E', ModItems.powder_magic, 'A', ModItems.gem_alexandrite });
|
||||
|
||||
addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish });
|
||||
addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModBlocks.muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ });
|
||||
|
||||
@ -6,6 +6,7 @@ import java.util.List;
|
||||
import com.hbm.inventory.container.ContainerTurretBase;
|
||||
import com.hbm.inventory.gui.GUITurretHIMARS;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
|
||||
@ -15,10 +16,16 @@ 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.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implements IGUIProvider {
|
||||
|
||||
public short mode = 0;
|
||||
public static final short MODE_AUOT = 0;
|
||||
public static final short MODE_MANUAL = 1;
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public List<ItemStack> getAmmoTypesForDisplay() {
|
||||
@ -50,14 +57,194 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem
|
||||
return 1_000_000;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getBarrelLength() {
|
||||
return 3D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAcceptableInaccuracy() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getHeightOffset() {
|
||||
return 3D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDecetorRange() {
|
||||
return 5000D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDecetorGrace() {
|
||||
return 32D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getTurretYawSpeed() {
|
||||
return 1D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getTurretPitchSpeed() {
|
||||
return 0.5D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doLOSCheck() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void alignTurret() {
|
||||
|
||||
Vec3 pos = this.getTurretPos();
|
||||
|
||||
Vec3 delta = Vec3.createVectorHelper(tPos.xCoord - pos.xCoord, tPos.yCoord - pos.yCoord, tPos.zCoord - pos.zCoord);
|
||||
double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord);
|
||||
double targetPitch = Math.PI / 4D;
|
||||
|
||||
this.turnTowardsAngle(targetPitch, targetYaw);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(this.mode == this.MODE_MANUAL) {
|
||||
if(!this.targetQueue.isEmpty()) {
|
||||
this.tPos = this.targetQueue.get(0);
|
||||
}
|
||||
} else {
|
||||
this.targetQueue.clear();
|
||||
}
|
||||
|
||||
if(worldObj.isRemote) {
|
||||
this.lastRotationPitch = this.rotationPitch;
|
||||
this.lastRotationYaw = this.rotationYaw;
|
||||
}
|
||||
|
||||
this.aligned = false;
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
this.updateConnections();
|
||||
|
||||
if(this.target != null && !target.isEntityAlive()) {
|
||||
this.target = null;
|
||||
this.stattrak++;
|
||||
}
|
||||
}
|
||||
|
||||
if(target != null && this.mode != this.MODE_MANUAL) {
|
||||
if(!this.entityInLOS(this.target)) {
|
||||
this.target = null;
|
||||
}
|
||||
}
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(target != null) {
|
||||
this.tPos = this.getEntityPos(target);
|
||||
} else {
|
||||
if(this.mode != this.MODE_MANUAL) {
|
||||
this.tPos = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(isOn() && hasPower()) {
|
||||
|
||||
if(tPos != null)
|
||||
this.alignTurret();
|
||||
} else {
|
||||
|
||||
this.target = null;
|
||||
this.tPos = null;
|
||||
}
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(this.target != null && !target.isEntityAlive()) {
|
||||
this.target = null;
|
||||
this.tPos = null;
|
||||
this.stattrak++;
|
||||
}
|
||||
|
||||
if(isOn() && hasPower()) {
|
||||
searchTimer--;
|
||||
|
||||
this.setPower(this.getPower() - this.getConsumption());
|
||||
|
||||
if(searchTimer <= 0) {
|
||||
searchTimer = this.getDecetorInterval();
|
||||
|
||||
if(this.target == null && this.mode != this.MODE_MANUAL)
|
||||
this.seekNewTarget();
|
||||
}
|
||||
} else {
|
||||
searchTimer = 0;
|
||||
}
|
||||
|
||||
if(this.aligned) {
|
||||
this.updateFiringTick();
|
||||
}
|
||||
|
||||
this.power = Library.chargeTEFromItems(slots, 10, this.power, this.getMaxPower());
|
||||
|
||||
NBTTagCompound data = this.writePacket();
|
||||
this.networkPack(data, 250);
|
||||
|
||||
} else {
|
||||
|
||||
Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0);
|
||||
vec.rotateAroundZ((float) -this.rotationPitch);
|
||||
vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5));
|
||||
|
||||
//this will fix the interpolation error when the turret crosses the 360° point
|
||||
if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) {
|
||||
|
||||
if(this.lastRotationYaw < this.rotationYaw)
|
||||
this.lastRotationYaw += Math.PI * 2;
|
||||
else
|
||||
this.lastRotationYaw -= Math.PI * 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateFiringTick() {
|
||||
// *chirp* *chirp* *chirp*
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleButtonPacket(int value, int meta) {
|
||||
if(meta == 5) {
|
||||
this.mode++;
|
||||
if(this.mode > 1)
|
||||
this.mode = 0;
|
||||
|
||||
this.tPos = null;
|
||||
this.targetQueue.clear();
|
||||
|
||||
} else{
|
||||
super.handleButtonPacket(value, meta);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
this.mode = nbt.getShort("mode");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setShort("mode", this.mode);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -843,6 +843,7 @@ item.ams_focus_limiter.name=Beschränkender Stabilisierungsfokus
|
||||
item.ams_lens.name=Stabilisierer-Linse
|
||||
item.ams_muzzle.name=Strahlenemissions-Mündung
|
||||
item.analyzer.name=Analysierer
|
||||
item.anchor_remote.name=Rückrufgerät
|
||||
item.antiknock.name=Tetraethyblei-Antiklopfmittel
|
||||
item.apple_euphemium.name=Euphemiumapfel
|
||||
item.apple_lead.name=Bleiapfel
|
||||
@ -3774,6 +3775,7 @@ tile.taint.name=Korrupter Schmutz
|
||||
tile.taint_barrel.name=IMP-Rückstandsfass
|
||||
tile.tape_recorder.name=Tonbandgerät
|
||||
tile.tektite.name=Tektit
|
||||
tile.teleanchor.name=Teleportations-Anker
|
||||
tile.tesla.name=Teslaspule
|
||||
tile.test_nuke.name=Test Atombombe
|
||||
tile.therm_endo.name=Endothermische Bombe
|
||||
|
||||
@ -1085,6 +1085,7 @@ item.ams_lens.name=Stabilizer Lens
|
||||
item.ams_muzzle.name=Ray-Emission Muzzle
|
||||
item.ams_muzzle.desc=...it emits an energy-beam thingy.
|
||||
item.analyzer.name=Analyzer
|
||||
item.anchor_remote.name=Recall Device
|
||||
item.antiknock.name=Tetraethyllead Antiknock Agent
|
||||
item.apple_euphemium.name=Euphemium Apple
|
||||
item.apple_lead.name=Lead Apple
|
||||
@ -4227,6 +4228,7 @@ tile.taint.name=Taint
|
||||
tile.taint_barrel.name=IMP Residue Barrel
|
||||
tile.tape_recorder.name=Tape Recorder
|
||||
tile.tektite.name=Tektite
|
||||
tile.teleanchor.name=Teleportation Anchor
|
||||
tile.tesla.name=Tesla Coil
|
||||
tile.test_nuke.name=Test Nuke
|
||||
tile.therm_endo.name=Endothermic Bomb
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 622 B |
Binary file not shown.
|
After Width: | Height: | Size: 771 B |
BIN
src/main/resources/assets/hbm/textures/items/anchor_remote.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/anchor_remote.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 444 B |
Loading…
x
Reference in New Issue
Block a user