phaser4-rex-plugins
Version:
72 lines (54 loc) • 1.75 kB
JavaScript
import LineProgress from '../lineprogress/LineProgress.js';
import HelperMethods from '../utils/stylemanager/HelperMethods.js';
import SetValue from '../../../plugins/utils/object/SetValue.js';
class StatesBarRectangle extends LineProgress {
constructor(scene, config) {
if (config === undefined) {
config = {};
}
if (!config.hasOwnProperty('value')) {
config.value = 0;
}
if (!config.hasOwnProperty('hover.bar')) {
config['hover.bar'] = true;
}
if (!config.hasOwnProperty('easeDuration')) {
config.easeDuration = 200;
}
if (!config.hasOwnProperty('ease')) {
config.ease = 'Quad';
}
SetValue(config, 'easeValue.duration', config.easeDuration);
SetValue(config, 'easeValue.ease', config.ease);
super(scene, config);
this.type = 'rexStatesBarRectangleShape';
this.barState = false;
config.style = this;
config.propertiesMap = PropertiesMap;
this.addStyleManager(config);
delete config.style;
delete config.propertiesMap;
}
get bar() {
return this.barState;
}
set bar(value) {
value = !!value;
if (this.barState === value) {
return;
}
this.barState = value;
this.easeValueTo((this.barState) ? 1 : 0);
}
}
const PropertiesMap = {
color: 'trackColor',
strokeColor: 'trackStrokeColor',
strokeWidth: 'trackStrokeThickness',
// barColor: 'barColor'
}
Object.assign(
StatesBarRectangle.prototype,
HelperMethods
)
export default StatesBarRectangle;