122 lines
3.4 KiB
Java
122 lines
3.4 KiB
Java
package org.bukkit.craftbukkit.entity;
|
|
|
|
import net.minecraft.server.Blocks;
|
|
import net.minecraft.server.EntityMinecartAbstract;
|
|
import net.minecraft.server.IBlockData;
|
|
import org.bukkit.block.data.BlockData;
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
import org.bukkit.craftbukkit.block.data.CraftBlockData;
|
|
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
|
|
import org.bukkit.entity.Minecart;
|
|
import org.bukkit.material.MaterialData;
|
|
import org.bukkit.util.Vector;
|
|
|
|
public abstract class CraftMinecart extends CraftVehicle implements Minecart {
|
|
public CraftMinecart(CraftServer server, EntityMinecartAbstract entity) {
|
|
super(server, entity);
|
|
}
|
|
|
|
@Override
|
|
public void setDamage(double damage) {
|
|
getHandle().setDamage((float) damage);
|
|
}
|
|
|
|
@Override
|
|
public double getDamage() {
|
|
return getHandle().getDamage();
|
|
}
|
|
|
|
@Override
|
|
public double getMaxSpeed() {
|
|
return getHandle().maxSpeed;
|
|
}
|
|
|
|
@Override
|
|
public void setMaxSpeed(double speed) {
|
|
if (speed >= 0D) {
|
|
getHandle().maxSpeed = speed;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean isSlowWhenEmpty() {
|
|
return getHandle().slowWhenEmpty;
|
|
}
|
|
|
|
@Override
|
|
public void setSlowWhenEmpty(boolean slow) {
|
|
getHandle().slowWhenEmpty = slow;
|
|
}
|
|
|
|
@Override
|
|
public Vector getFlyingVelocityMod() {
|
|
return getHandle().getFlyingVelocityMod();
|
|
}
|
|
|
|
@Override
|
|
public void setFlyingVelocityMod(Vector flying) {
|
|
getHandle().setFlyingVelocityMod(flying);
|
|
}
|
|
|
|
@Override
|
|
public Vector getDerailedVelocityMod() {
|
|
return getHandle().getDerailedVelocityMod();
|
|
}
|
|
|
|
@Override
|
|
public void setDerailedVelocityMod(Vector derailed) {
|
|
getHandle().setDerailedVelocityMod(derailed);
|
|
}
|
|
|
|
@Override
|
|
public EntityMinecartAbstract getHandle() {
|
|
return (EntityMinecartAbstract) entity;
|
|
}
|
|
|
|
@Override
|
|
public void setDisplayBlock(MaterialData material) {
|
|
if(material != null) {
|
|
IBlockData block = CraftMagicNumbers.getBlock(material);
|
|
this.getHandle().setDisplayBlock(block);
|
|
} else {
|
|
// Set block to air (default) and set the flag to not have a display block.
|
|
this.getHandle().setDisplayBlock(Blocks.AIR.getBlockData());
|
|
this.getHandle().a(false);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setDisplayBlockData(BlockData blockData) {
|
|
if (blockData != null) {
|
|
IBlockData block = ((CraftBlockData) blockData).getState();
|
|
this.getHandle().setDisplayBlock(block);
|
|
} else {
|
|
// Set block to air (default) and set the flag to not have a display block.
|
|
this.getHandle().setDisplayBlock(Blocks.AIR.getBlockData());
|
|
this.getHandle().a(false);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public MaterialData getDisplayBlock() {
|
|
IBlockData blockData = getHandle().getDisplayBlock();
|
|
return CraftMagicNumbers.getMaterial(blockData);
|
|
}
|
|
|
|
@Override
|
|
public BlockData getDisplayBlockData() {
|
|
IBlockData blockData = getHandle().getDisplayBlock();
|
|
return CraftBlockData.fromData(blockData);
|
|
}
|
|
|
|
@Override
|
|
public void setDisplayBlockOffset(int offset) {
|
|
getHandle().setDisplayBlockOffset(offset);
|
|
}
|
|
|
|
@Override
|
|
public int getDisplayBlockOffset() {
|
|
return getHandle().getDisplayBlockOffset();
|
|
}
|
|
}
|