hytale-server/com/hypixel/hytale/builtin/blockspawner/state/BlockSpawner.java

50 lines
1.6 KiB
Java

package com.hypixel.hytale.builtin.blockspawner.state;
import com.hypixel.hytale.builtin.blockspawner.BlockSpawnerPlugin;
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.world.storage.ChunkStore;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class BlockSpawner implements Component<ChunkStore> {
public static final BuilderCodec<BlockSpawner> CODEC = BuilderCodec.builder(BlockSpawner.class, BlockSpawner::new)
.addField(new KeyedCodec<>("BlockSpawnerId", Codec.STRING), (state, s) -> state.blockSpawnerId = s, state -> state.blockSpawnerId)
.build();
private String blockSpawnerId;
public static ComponentType<ChunkStore, BlockSpawner> getComponentType() {
return BlockSpawnerPlugin.get().getBlockSpawnerComponentType();
}
public BlockSpawner() {
}
public BlockSpawner(String blockSpawnerId) {
this.blockSpawnerId = blockSpawnerId;
}
public String getBlockSpawnerId() {
return this.blockSpawnerId;
}
public void setBlockSpawnerId(String blockSpawnerId) {
this.blockSpawnerId = blockSpawnerId;
}
@Nonnull
@Override
public String toString() {
return "BlockSpawnerState{blockSpawnerId='" + this.blockSpawnerId + "'} " + super.toString();
}
@Nullable
@Override
public Component<ChunkStore> clone() {
return new BlockSpawner(this.blockSpawnerId);
}
}