public RadialGravityState(RadialGravityState that) { force = that.force; enabled = that.enabled; color = that.color; colliderBodyInside = that.colliderBodyInside; }
public void setup(string force, string invertAble, string disableAble, string colors, string initialColor, string radius) { _initialState = new RadialGravityState { enabled = false }; elementInfo.buildInfos(); var argumentParser = new ArgumentParser("RadialGravityEffector"); _initialState.force = argumentParser.TryParse <float>(force, float.TryParse); _invertAble = argumentParser.TryParse <bool>(invertAble, bool.TryParse); _disableAble = argumentParser.TryParse <bool>(disableAble, bool.TryParse); _initialState.color = argumentParser.TryParse <ElementColor>(initialColor, Enum.TryParse); _radius = argumentParser.TryParse <float>(radius, float.TryParse); BoundaryBuilder.Instance.buildCircle(rangeChildren, _radius); for (int i = 0; i < rangeChildren.childCount; i++) { colorChangeAbles.Add(rangeChildren.GetChild(i).GetComponent <SpriteGlowEffect>()); range.Add(rangeChildren.GetChild(i).GetComponent <SpriteRenderer>()); } if (_disableAble) { var eventInfo = elementInfo.getEventInfoBySearchTag("on_off"); effectorEvents.Add(new EffectorEvent(eventInfo.icon, () => { Elements.executeVisualChange(this, () => _currentState.enabled = !_currentState.enabled); checkEventManager.checkEvent("AddedEventOn/Off"); })); } if (_invertAble) { var eventInfo = elementInfo.getEventInfoBySearchTag("invert"); effectorEvents.Add(new EffectorEvent(eventInfo.icon, () => { var beforeState = new RadialGravityState(_currentState); _currentState.force *= -1; var afterState = new RadialGravityState(_currentState); ReplayTimeline.Instance.addVisualEvent(this, beforeState, afterState); })); } foreach (var color in ParseHelper.parseEnumListFromString <ElementColor>(colors)) { var eventInfo = elementInfo.getEventInfoBySearchTag("color_change_" + color.ToString().ToLower()); effectorEvents.Add(new EffectorEvent(eventInfo.icon, () => { Elements.executeVisualChange(this, () => { var savedColor = color; _currentState.color = savedColor; }); })); } _currentState = new RadialGravityState(_initialState); setVisualsByState(_currentState); }
public void reset() { _currentState = new RadialGravityState(_initialState); }