46 lines
1.7 KiB
Java
46 lines
1.7 KiB
Java
package themixray.repeating.mod.event;
|
|
|
|
import net.minecraft.util.Hand;
|
|
import net.minecraft.util.hit.BlockHitResult;
|
|
import net.minecraft.util.math.BlockPos;
|
|
import net.minecraft.util.math.Direction;
|
|
import net.minecraft.util.math.Vec3d;
|
|
import themixray.repeating.mod.Main;
|
|
|
|
public class RecordBlockInteractEvent extends RecordEvent {
|
|
public Hand hand;
|
|
public BlockHitResult hitResult;
|
|
|
|
public static RecordBlockInteractEvent fromArgs(String[] a) {
|
|
return new RecordBlockInteractEvent(
|
|
Hand.valueOf(a[5]),
|
|
new BlockHitResult(new Vec3d(
|
|
Double.parseDouble(a[0]),
|
|
Double.parseDouble(a[1]),
|
|
Double.parseDouble(a[2])),
|
|
Direction.byId(Integer.parseInt(a[4])),
|
|
new BlockPos(
|
|
Integer.parseInt(a[0]),
|
|
Integer.parseInt(a[1]),
|
|
Integer.parseInt(a[2])),
|
|
a[3].equals("1")));
|
|
}
|
|
|
|
public RecordBlockInteractEvent(Hand hand, BlockHitResult hitResult) {
|
|
this.hand = hand;
|
|
this.hitResult = hitResult;
|
|
}
|
|
|
|
public void replay() {
|
|
Main.client.interactionManager.interactBlock(Main.client.player, hand, hitResult);
|
|
}
|
|
|
|
public String serialize() {
|
|
return "i=" + hitResult.getBlockPos().getX() + "&" + hitResult.getBlockPos().getY() + "&" + hitResult.getBlockPos().getZ() +
|
|
"&" + (hitResult.isInsideBlock() ? "1" : "0") + "&" + hitResult.getSide().getId() + "&" + hand.name();
|
|
}
|
|
|
|
public String getType() {
|
|
return "block_interact";
|
|
}
|
|
}
|