SimpleMultipart/src/test/java/net/shadowfacts/simplemultipart/test/TickableEntityTestPart.java

54 lines
1.6 KiB
Java

package net.shadowfacts.simplemultipart.test;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.text.StringTextComponent;
import net.minecraft.util.Hand;
import net.minecraft.util.Tickable;
import net.minecraft.util.shape.VoxelShape;
import net.minecraft.util.shape.VoxelShapes;
import net.shadowfacts.simplemultipart.api.MultipartContainer;
import net.shadowfacts.simplemultipart.api.MultipartView;
import net.shadowfacts.simplemultipart.multipart.Multipart;
import net.shadowfacts.simplemultipart.multipart.MultipartState;
import net.shadowfacts.simplemultipart.multipart.entity.MultipartEntity;
import net.shadowfacts.simplemultipart.multipart.entity.MultipartEntityProvider;
/**
* @author shadowfacts
*/
public class TickableEntityTestPart extends Multipart implements MultipartEntityProvider {
@Override
@Deprecated
public VoxelShape getBoundingShape(MultipartState state, MultipartView view) {
return VoxelShapes.cube(6/16f, 6/16f, 6/16f, 10/16f, 10/16f, 10/16f);
}
@Override
@Deprecated
public boolean activate(MultipartState state, MultipartView view, PlayerEntity player, Hand hand) {
int timer = ((Entity)view.getEntity()).timer;
player.addChatMessage(new StringTextComponent("Timer: " + timer), false);
return true;
}
@Override
public MultipartEntity createMultipartEntity(MultipartState state, MultipartContainer container) {
return new Entity(container);
}
public static class Entity extends MultipartEntity implements Tickable {
public int timer = 0;
public Entity(MultipartContainer container) {
super(container);
}
@Override
public void tick() {
timer++;
}
}
}