parent
4bc4af553e
commit
7024fb4402
@ -0,0 +1,11 @@ |
|||||||
|
package mightypork.gamecore.core.config; |
||||||
|
|
||||||
|
import mightypork.utils.files.config.PropertyManager; |
||||||
|
|
||||||
|
/** |
||||||
|
* Config setup, class used to populate the config file. |
||||||
|
*/ |
||||||
|
public interface ConfigSetup { |
||||||
|
|
||||||
|
void addOptions(PropertyManager prop); |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
package mightypork.gamecore.core.config; |
||||||
|
|
||||||
|
import mightypork.gamecore.input.KeyStroke; |
||||||
|
|
||||||
|
/** |
||||||
|
* Key options - restricted access to {@link Config} for keys |
||||||
|
*/ |
||||||
|
public class KeyOpts { |
||||||
|
|
||||||
|
|
||||||
|
public void add(String cfgKey, String dataString) |
||||||
|
{ |
||||||
|
add(cfgKey, dataString, null); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @param cfgKey key in config file |
||||||
|
* @param dataString string representing the keystroke (format for {@link KeyStroke}) |
||||||
|
* @param comment optional comment |
||||||
|
*/ |
||||||
|
public void add(String cfgKey, String dataString, String comment) |
||||||
|
{ |
||||||
|
final KeyProperty kprop = new KeyProperty(Config.prefixKey(cfgKey), KeyStroke.createFromDataString(dataString), comment); |
||||||
|
Config.strokes.put(Config.prefixKey(cfgKey), kprop); |
||||||
|
Config.cfg.putProperty(kprop); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,53 @@ |
|||||||
|
package mightypork.gamecore.core.config; |
||||||
|
|
||||||
|
import mightypork.gamecore.input.KeyStroke; |
||||||
|
import mightypork.gamecore.input.Keys; |
||||||
|
import mightypork.utils.files.config.Property; |
||||||
|
|
||||||
|
/** |
||||||
|
* Key property.<br> |
||||||
|
* The stored value must be invariant ({@link KeyStroke} is mutable). |
||||||
|
* |
||||||
|
* @author Ondřej Hruška (MightyPork) |
||||||
|
*/ |
||||||
|
public class KeyProperty extends Property<KeyStroke> { |
||||||
|
|
||||||
|
public KeyProperty(String key, KeyStroke defaultValue, String comment) |
||||||
|
{ |
||||||
|
super(key, defaultValue, comment); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public KeyStroke decode(String string, KeyStroke defval) |
||||||
|
{ |
||||||
|
if (string != null) { |
||||||
|
// keep it invariant
|
||||||
|
|
||||||
|
final int backup_key = getValue().getKey(); |
||||||
|
final int backup_mod = getValue().getMod(); |
||||||
|
|
||||||
|
getValue().fromDataString(string); |
||||||
|
if (getValue().getKey() == Keys.NONE) { |
||||||
|
getValue().setTo(backup_key, backup_mod); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return getValue(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public String encode(KeyStroke value) |
||||||
|
{ |
||||||
|
return value.toDataString(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public void setValue(Object value) |
||||||
|
{ |
||||||
|
// keep it invariant
|
||||||
|
getValue().setTo(((KeyStroke) value).getKey(), ((KeyStroke) value).getMod()); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,10 @@ |
|||||||
|
package mightypork.gamecore.core.config; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Key configurator. Config access restricted to key options. |
||||||
|
*/ |
||||||
|
public interface KeySetup { |
||||||
|
|
||||||
|
public void addKeys(KeyOpts keys); |
||||||
|
} |
Loading…
Reference in new issue