import com.frotty27.nameplatebuilder.api.NameplateData;
final class MyNpcNameplateSystem extends EntityTickingSystem<EntityStore> {
private final ComponentType<EntityStore, NameplateData> nameplateDataType;
MyNpcNameplateSystem(ComponentType<EntityStore, NameplateData> type) {
this.nameplateDataType = type;
}
@Override
public void tick(float dt, int index, ArchetypeChunk<EntityStore> chunk,
Store<EntityStore> store, CommandBuffer<EntityStore> cb) {
Ref<EntityStore> ref = chunk.getReferenceTo(index);
// First time? Seed the component via CommandBuffer
if (store.getComponent(ref, nameplateDataType) == null) {
NameplateData data = new NameplateData();
data.setText("bounty", "$500");
cb.putComponent(ref, nameplateDataType, data);
return;
}
// Already initialized? Update in place (safe during tick)
NameplateData data = chunk.getComponent(index, nameplateDataType);
if (data != null) {
data.setText("bounty", "$" + computeBounty());
}
}
}