private void Toggle(IEntity user) { if (_injectOnly) { return; } string msg; switch (_toggleState) { case InjectorToggleMode.Inject: _toggleState = InjectorToggleMode.Draw; msg = "Now drawing"; break; case InjectorToggleMode.Draw: _toggleState = InjectorToggleMode.Inject; msg = "Now injecting"; break; default: throw new ArgumentOutOfRangeException(); } Owner.PopupMessage(user, Loc.GetString(msg)); Dirty(); }
protected override void Startup() { base.Startup(); _internalContents = Owner.GetComponent <SolutionComponent>(); _internalContents.Capabilities |= SolutionCaps.Injector; //Set _toggleState based on prototype _toggleState = _injectOnly ? InjectorToggleMode.Inject : InjectorToggleMode.Draw; }
protected override void Startup() { base.Startup(); var solution = Owner.EnsureComponent <SolutionContainerComponent>(); solution.Capabilities = SolutionContainerCaps.AddTo | SolutionContainerCaps.RemoveFrom; // Set _toggleState based on prototype _toggleState = _injectOnly ? InjectorToggleMode.Inject : InjectorToggleMode.Draw; }
//Handle net updates public override void HandleComponentState(ComponentState curState, ComponentState nextState) { var cast = (InjectorComponentState)curState; if (cast != null) { CurrentVolume = cast.CurrentVolume; TotalVolume = cast.TotalVolume; CurrentMode = cast.CurrentMode; _uiUpdateNeeded = true; } }
//Handle net updates public override void HandleComponentState(ComponentState?curState, ComponentState?nextState) { if (curState is not InjectorComponentState state) { return; } CurrentVolume = state.CurrentVolume; TotalVolume = state.TotalVolume; CurrentMode = state.CurrentMode; _uiUpdateNeeded = true; }
protected override void Startup() { base.Startup(); Owner.EnsureComponent <SolutionComponent>(); if (Owner.TryGetComponent(out SolutionComponent? solution)) { solution.Capabilities |= SolutionCaps.Injector; } // Set _toggleState based on prototype _toggleState = _injectOnly ? InjectorToggleMode.Inject : InjectorToggleMode.Draw; }
public override void Initialize() { base.Initialize(); //Create and setup internal storage _internalContents = new SolutionComponent(); _internalContents.InitializeFromPrototype(); _internalContents.Init(); _internalContents.MaxVolume = _initialMaxVolume; _internalContents.Owner = Owner; //Manually set owner to avoid crash when VV'ing this _internalContents.Capabilities |= SolutionCaps.Injector; //Set _toggleState based on prototype _toggleState = _injectOnly ? InjectorToggleMode.Inject : InjectorToggleMode.Draw; }
public InjectorComponentState(FixedPoint2 currentVolume, FixedPoint2 totalVolume, SharedInjectorComponent.InjectorToggleMode currentMode) { CurrentVolume = currentVolume; TotalVolume = totalVolume; CurrentMode = currentMode; }
public InjectorComponentState(ReagentUnit currentVolume, ReagentUnit totalVolume, InjectorToggleMode currentMode) : base(ContentNetIDs.REAGENT_INJECTOR) { CurrentVolume = currentVolume; TotalVolume = totalVolume; CurrentMode = currentMode; }
public InjectorComponentState(ReagentUnit currentVolume, ReagentUnit totalVolume, InjectorToggleMode currentMode) { CurrentVolume = currentVolume; TotalVolume = totalVolume; CurrentMode = currentMode; }