Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package destinyspork.appliedautomation.tileentity;
- import com.google.common.collect.ImmutableMap;
- import destinyspork.appliedautomation.proxy.ClientProxy;
- import destinyspork.appliedautomation.proxy.ServerProxy;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.ResourceLocation;
- import net.minecraftforge.client.model.animation.Animation;
- import net.minecraftforge.client.model.animation.Event;
- import net.minecraftforge.client.model.animation.IAnimationProvider;
- import net.minecraftforge.client.model.animation.ITimeValue;
- import net.minecraftforge.client.model.animation.TimeValues.VariableValue;
- import net.minecraftforge.common.model.animation.IAnimationStateMachine;
- public class ITileEntityChest extends TileEntity implements IAnimationProvider{
- private final IAnimationStateMachine asm;
- private final VariableValue cycleLength = new VariableValue(4);
- private final VariableValue clickTime = new VariableValue(Float.NEGATIVE_INFINITY);
- public ITileEntityChest() {
- asm = ClientProxy.load(new ResourceLocation("appliedautomation", "asms/block/engine.json"),
- ImmutableMap.<String, ITimeValue> of("cycle_length", cycleLength, "click_time", clickTime));
- }
- public void handleEvents(float time, Iterable<Event> pastEvents) {
- for (Event event : pastEvents) {
- System.out.println("Event: " + event.event() + " " + event.offset() + " " + getPos() + " " + time);
- System.out.println(asm.currentState());
- }
- }
- @Override
- public boolean hasFastRenderer() {
- return true;
- }
- public void click(boolean sneaking) {
- if (asm != null) {
- if (sneaking) {
- cycleLength.setValue(6 - cycleLength.apply(0));
- }
- else if (asm.currentState().equals("default")) {
- float time = Animation.getWorldTime(getWorld(), Animation.getPartialTickTime());
- clickTime.setValue(time);
- asm.transition("starting");
- } else if (asm.currentState().equals("moving")) {
- clickTime.setValue(Animation.getWorldTime(getWorld(), Animation.getPartialTickTime()));
- asm.transition("stopping");
- }
- }
- }
- @Override
- public IAnimationStateMachine asm() {
- // TODO Auto-generated method stub
- return asm;
- }
- }
- //This is called ITileEntityChest so it does not conflict in any way with the vanilla one.
Advertisement
Add Comment
Please, Sign In to add comment