mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Transport drone visualization + fixed low angles for drones
This commit is contained in:
parent
dce3bf8937
commit
d67bbe9c53
@ -29,7 +29,7 @@ public abstract class EntityDroneBase extends Entity {
|
|||||||
|
|
||||||
public void setTarget(double x, double y, double z) {
|
public void setTarget(double x, double y, double z) {
|
||||||
this.targetX = x;
|
this.targetX = x;
|
||||||
this.targetY = y + 1;
|
this.targetY = y;
|
||||||
this.targetZ = z;
|
this.targetZ = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,7 +112,9 @@ public abstract class EntityDroneBase extends Entity {
|
|||||||
this.motionZ = dist.zCoord * speed;
|
this.motionZ = dist.zCoord * speed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(isCollidedHorizontally){
|
||||||
|
motionY += 1;
|
||||||
|
}
|
||||||
this.moveEntity(motionX, motionY, motionZ);
|
this.moveEntity(motionX, motionY, motionZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,14 @@ public class EntityRequestDrone extends EntityDroneBase {
|
|||||||
UNLOAD, DOCK
|
UNLOAD, DOCK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTarget(double x, double y, double z) {
|
||||||
|
this.targetX = x;
|
||||||
|
this.targetY = y + 1;
|
||||||
|
this.targetZ = z;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public EntityRequestDrone(World world) {
|
public EntityRequestDrone(World world) {
|
||||||
super(world);
|
super(world);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1963,7 +1963,9 @@ public class ClientProxy extends ServerProxy {
|
|||||||
held == Item.getItemFromBlock(ModBlocks.drone_crate_provider) ||
|
held == Item.getItemFromBlock(ModBlocks.drone_crate_provider) ||
|
||||||
held == Item.getItemFromBlock(ModBlocks.drone_crate_requester) ||
|
held == Item.getItemFromBlock(ModBlocks.drone_crate_requester) ||
|
||||||
held == Item.getItemFromBlock(ModBlocks.drone_dock) ||
|
held == Item.getItemFromBlock(ModBlocks.drone_dock) ||
|
||||||
held == Item.getItemFromBlock(ModBlocks.drone_waypoint_request)) {
|
held == Item.getItemFromBlock(ModBlocks.drone_waypoint_request) ||
|
||||||
|
held == Item.getItemFromBlock(ModBlocks.drone_waypoint) ||
|
||||||
|
held == ModItems.drone_linker) {
|
||||||
double mX = data.getDouble("mX");
|
double mX = data.getDouble("mX");
|
||||||
double mY = data.getDouble("mY");
|
double mY = data.getDouble("mY");
|
||||||
double mZ = data.getDouble("mZ");
|
double mZ = data.getDouble("mZ");
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.hbm.inventory.gui.GUIDroneCrate;
|
|||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
|
import com.hbm.util.ParticleUtil;
|
||||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||||
|
|
||||||
import api.hbm.fluid.IFluidStandardTransceiver;
|
import api.hbm.fluid.IFluidStandardTransceiver;
|
||||||
@ -51,7 +52,7 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP
|
|||||||
public void updateEntity() {
|
public void updateEntity() {
|
||||||
|
|
||||||
if(!worldObj.isRemote) {
|
if(!worldObj.isRemote) {
|
||||||
|
BlockPos pos = getCoord();
|
||||||
this.tank.setType(18, slots);
|
this.tank.setType(18, slots);
|
||||||
|
|
||||||
if(sendingMode && !itemType && worldObj.getTotalWorldTime() % 20 == 0) {
|
if(sendingMode && !itemType && worldObj.getTotalWorldTime() % 20 == 0) {
|
||||||
@ -75,8 +76,14 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP
|
|||||||
if(!sendingMode && !itemType) unloadFluid(drone);
|
if(!sendingMode && !itemType) unloadFluid(drone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ParticleUtil.spawnDroneLine(worldObj,
|
||||||
|
pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5,
|
||||||
|
(nextX - pos.getX()), (nextY - pos.getY()), (nextZ - pos.getZ()), 0x00ffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
NBTTagCompound data = new NBTTagCompound();
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
data.setIntArray("pos", new int[] {nextX, nextY, nextZ});
|
data.setIntArray("pos", new int[] {nextX, nextY, nextZ});
|
||||||
data.setBoolean("mode", sendingMode);
|
data.setBoolean("mode", sendingMode);
|
||||||
@ -219,6 +226,10 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP
|
|||||||
tank.readFromNBT(nbt, "t");
|
tank.readFromNBT(nbt, "t");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BlockPos getCoord() {
|
||||||
|
return new BlockPos(xCoord, yCoord + 1, zCoord);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToNBT(NBTTagCompound nbt) {
|
public void writeToNBT(NBTTagCompound nbt) {
|
||||||
super.writeToNBT(nbt);
|
super.writeToNBT(nbt);
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import com.hbm.entity.item.EntityDeliveryDrone;
|
import com.hbm.entity.item.EntityDeliveryDrone;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
|
import com.hbm.util.ParticleUtil;
|
||||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||||
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
@ -22,11 +23,9 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity() {
|
public void updateEntity() {
|
||||||
|
|
||||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata());
|
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata());
|
||||||
|
|
||||||
if(!worldObj.isRemote) {
|
if(!worldObj.isRemote) {
|
||||||
|
|
||||||
if(nextY != -1) {
|
if(nextY != -1) {
|
||||||
List<EntityDeliveryDrone> drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).offset(dir.offsetX * height, dir.offsetY * height, dir.offsetZ * height));
|
List<EntityDeliveryDrone> drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).offset(dir.offsetX * height, dir.offsetY * height, dir.offsetZ * height));
|
||||||
for(EntityDeliveryDrone drone : drones) {
|
for(EntityDeliveryDrone drone : drones) {
|
||||||
@ -41,13 +40,17 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec
|
|||||||
data.setIntArray("pos", new int[] {nextX, nextY, nextZ});
|
data.setIntArray("pos", new int[] {nextX, nextY, nextZ});
|
||||||
INBTPacketReceiver.networkPack(this, data, 15);
|
INBTPacketReceiver.networkPack(this, data, 15);
|
||||||
} else {
|
} else {
|
||||||
|
BlockPos pos = getCoord(dir);
|
||||||
if(nextY != -1 && worldObj.getTotalWorldTime() % 2 == 0) {
|
if(nextY != -1 && worldObj.getTotalWorldTime() % 2 == 0) {
|
||||||
double x = xCoord + height * dir.offsetX + 0.5;
|
double x = xCoord + height * dir.offsetX + 0.5;
|
||||||
double y = yCoord + height * dir.offsetY + 0.5;
|
double y = yCoord + height * dir.offsetY + 0.5;
|
||||||
double z = zCoord + height * dir.offsetZ + 0.5;
|
double z = zCoord + height * dir.offsetZ + 0.5;
|
||||||
|
|
||||||
worldObj.spawnParticle("reddust", x, y, z, 0, 0, 0);
|
worldObj.spawnParticle("reddust", x, y, z, 0, 0, 0);
|
||||||
|
|
||||||
|
ParticleUtil.spawnDroneLine(worldObj,
|
||||||
|
pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5,
|
||||||
|
(nextX - pos.getX()), (nextY - pos.getY()), (nextZ - pos.getZ()), 0x0000ff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,4 +101,7 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec
|
|||||||
nbt.setInteger("height", height);
|
nbt.setInteger("height", height);
|
||||||
nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ});
|
nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ});
|
||||||
}
|
}
|
||||||
|
public BlockPos getCoord(ForgeDirection dir) {
|
||||||
|
return new BlockPos(xCoord + height * dir.offsetX + 0.5, yCoord + height * dir.offsetY + 0.5, zCoord + height * dir.offsetZ + 0.5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user