60 lines
1.4 KiB
Java
60 lines
1.4 KiB
Java
package org.saturnclient.feature;
|
|
|
|
import org.saturnclient.common.ref.asset.IdentifierRef;
|
|
import org.saturnclient.config.ConfigManager;
|
|
import org.saturnclient.config.property.NamedProperty;
|
|
import org.saturnclient.ui.RenderScope;
|
|
import org.saturnclient.ui.resources.Textures;
|
|
|
|
public abstract class Feature {
|
|
private final FeatureDetails details;
|
|
private final ConfigManager configManager;
|
|
|
|
public Feature(FeatureDetails details, NamedProperty... props) {
|
|
this.details = details;
|
|
configManager = new ConfigManager(details.name);
|
|
for (NamedProperty prop : props) {
|
|
configManager.property(prop.name, prop.prop);
|
|
}
|
|
}
|
|
|
|
public void render(RenderScope scope) {
|
|
}
|
|
|
|
public void tick() {
|
|
}
|
|
|
|
public abstract boolean isEnabled();
|
|
|
|
public final void setEnabled(boolean e) {
|
|
onEnabled(e);
|
|
FeatureManager.updateEnabledModules();
|
|
}
|
|
|
|
public abstract void onEnabled(boolean e);
|
|
|
|
public final String getName() {
|
|
return details.name;
|
|
}
|
|
|
|
public IdentifierRef getIconTexture() {
|
|
return Textures.getModIcon(details.namespace);
|
|
}
|
|
|
|
public ConfigManager getConfig() {
|
|
return configManager;
|
|
}
|
|
|
|
public String getDescription() {
|
|
return details.description;
|
|
}
|
|
|
|
public String[] getTags() {
|
|
return details.tags;
|
|
}
|
|
|
|
public String getVersion() {
|
|
return details.version;
|
|
}
|
|
}
|