package com.cardshifter.modapi.phase;
import com.cardshifter.modapi.base.ECSGame;
import com.cardshifter.modapi.base.ECSSystem;
import com.cardshifter.modapi.base.Entity;
import com.cardshifter.modapi.resources.ECSResource;
import com.cardshifter.modapi.resources.ECSResourceMap;
import net.zomis.cardshifter.ecs.effects.EntityInt;
public class RestoreResourcesSystem implements ECSSystem {
private final ECSResource resource;
private final EntityInt valueGetter;
public RestoreResourcesSystem(ECSResource resource, EntityInt valueGetter) {
this.resource = resource;
this.valueGetter = valueGetter;
}
@Override
public void startGame(ECSGame game) {
game.getEvents().registerHandlerAfter(this, PhaseStartEvent.class, turn -> {
Entity entity = turn.getNewPhase().getOwner();
ECSResourceMap map = entity.getComponent(ECSResourceMap.class);
int value = valueGetter.valueFor(entity);
map.getResource(resource).set(value);
});
}
@Override
public String toString() {
return "RestoreResourcesSystem [resource=" + resource
+ ", valueGetter=" + valueGetter + "]";
}
}