hytale-server/com/hypixel/hytale/builtin/mounts/NPCMountComponent.java

80 lines
2.3 KiB
Java

package com.hypixel.hytale.builtin.mounts;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.component.Component;
import com.hypixel.hytale.component.ComponentType;
import com.hypixel.hytale.server.core.universe.PlayerRef;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class NPCMountComponent implements Component<EntityStore> {
public static final BuilderCodec<NPCMountComponent> CODEC = BuilderCodec.builder(NPCMountComponent.class, NPCMountComponent::new)
.append(
new KeyedCodec<>("OriginalRoleIndex", Codec.INTEGER),
(mountComponent, integer) -> mountComponent.originalRoleIndex = integer,
mountComponent -> mountComponent.originalRoleIndex
)
.add()
.build();
private int originalRoleIndex;
@Nullable
private PlayerRef ownerPlayerRef;
private float anchorX;
private float anchorY;
private float anchorZ;
public static ComponentType<EntityStore, NPCMountComponent> getComponentType() {
return MountPlugin.getInstance().getMountComponentType();
}
public int getOriginalRoleIndex() {
return this.originalRoleIndex;
}
public void setOriginalRoleIndex(int originalRoleIndex) {
this.originalRoleIndex = originalRoleIndex;
}
@Nullable
public PlayerRef getOwnerPlayerRef() {
return this.ownerPlayerRef;
}
public void setOwnerPlayerRef(PlayerRef ownerPlayerRef) {
this.ownerPlayerRef = ownerPlayerRef;
}
public float getAnchorX() {
return this.anchorX;
}
public float getAnchorY() {
return this.anchorY;
}
public float getAnchorZ() {
return this.anchorZ;
}
public void setAnchor(float x, float y, float z) {
this.anchorX = x;
this.anchorY = y;
this.anchorZ = z;
}
@Nonnull
@Override
public Component<EntityStore> clone() {
NPCMountComponent component = new NPCMountComponent();
component.originalRoleIndex = this.originalRoleIndex;
component.ownerPlayerRef = this.ownerPlayerRef;
component.anchorX = this.anchorX;
component.anchorY = this.anchorY;
component.anchorZ = this.anchorZ;
return component;
}
}