generated from tilera/1710mod
64 lines
2.4 KiB
Java
64 lines
2.4 KiB
Java
|
package mffs.event;
|
||
|
|
||
|
import mffs.DelayedEvent;
|
||
|
import mffs.IDelayedEventHandler;
|
||
|
import mffs.ManipulatorHelper;
|
||
|
import net.minecraft.block.Block;
|
||
|
import net.minecraft.init.Blocks;
|
||
|
import net.minecraft.nbt.NBTTagCompound;
|
||
|
import net.minecraft.tileentity.TileEntity;
|
||
|
import net.minecraft.world.World;
|
||
|
import universalelectricity.core.vector.Vector3;
|
||
|
|
||
|
public class BlockPostMoveDelayedEvent extends DelayedEvent {
|
||
|
private World world;
|
||
|
private Vector3 originalPosition;
|
||
|
private Vector3 newPosition;
|
||
|
private Block blockID;
|
||
|
private int blockMetadata;
|
||
|
private TileEntity tileEntity;
|
||
|
private NBTTagCompound tileData;
|
||
|
|
||
|
public BlockPostMoveDelayedEvent(final IDelayedEventHandler handler,
|
||
|
final int ticks, final World world,
|
||
|
final Vector3 originalPosition,
|
||
|
final Vector3 newPosition, final Block blockID,
|
||
|
final int blockMetadata,
|
||
|
final TileEntity tileEntity,
|
||
|
final NBTTagCompound tileData) {
|
||
|
super(handler, ticks);
|
||
|
this.blockID = Blocks.air;
|
||
|
this.blockMetadata = 0;
|
||
|
this.world = world;
|
||
|
this.originalPosition = originalPosition;
|
||
|
this.newPosition = newPosition;
|
||
|
this.blockID = blockID;
|
||
|
this.blockMetadata = blockMetadata;
|
||
|
this.tileEntity = tileEntity;
|
||
|
this.tileData = tileData;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
protected void onEvent() {
|
||
|
if (!this.world.isRemote && this.blockID != Blocks.air) {
|
||
|
try {
|
||
|
if (this.tileEntity != null && this.tileData != null) {
|
||
|
ManipulatorHelper.setBlockSneaky(
|
||
|
this.world, this.newPosition, this.blockID, this.blockMetadata,
|
||
|
TileEntity.createAndLoadEntity(this.tileData));
|
||
|
} else {
|
||
|
ManipulatorHelper.setBlockSneaky(this.world, this.newPosition,
|
||
|
this.blockID, this.blockMetadata,
|
||
|
null);
|
||
|
}
|
||
|
super.handler.getQuedDelayedEvents().add(new BlockNotifyDelayedEvent(
|
||
|
super.handler, 0, this.world, this.originalPosition));
|
||
|
super.handler.getQuedDelayedEvents().add(new BlockNotifyDelayedEvent(
|
||
|
super.handler, 0, this.world, this.newPosition));
|
||
|
} catch (final Exception e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|