package net.alcuria.umbracraft.engine.scripts;
import java.util.Set;
import net.alcuria.umbracraft.Game;
import net.alcuria.umbracraft.annotations.Tooltip;
import net.alcuria.umbracraft.editor.Editor;
import net.alcuria.umbracraft.engine.entities.Entity;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectMap;
public class EntityVisibilityScriptCommand extends ScriptCommand {
@Tooltip("The entity id we wish to change visibility of")
public String id = "";
@Tooltip("If checked, applies to self")
public boolean self;
@Tooltip("The visibility")
public boolean visible;
@Override
public ScriptCommand copy() {
EntityVisibilityScriptCommand cmd = new EntityVisibilityScriptCommand();
cmd.id = id;
cmd.self = self;
cmd.visible = visible;
return cmd;
}
@Override
public Set<String> getFilter() {
return null;
}
@Override
public String getName() {
return String.format("Set Visibility: %s, %b", self ? "(Self)" : id, visible);
}
@Override
public ObjectMap<String, Array<String>> getSuggestions() {
return new ObjectMap<String, Array<String>>() {
{
put("id", Editor.db().entities().keys());
}
};
}
@Override
public void onCompleted() {
}
@Override
public void onStarted(Entity entity) {
Entity target = self ? entity : Game.entities().find(id);
if (target != null) {
target.setVisible(visible);
} else {
Game.error("Cannot change visibility. No entity found with id " + id);
}
complete();
}
@Override
public void update() {
}
}