public static BaseEvent CreateWrapper(BaseEvent original, Action<BaseEvent, bool> passthrough, bool ignore_delay) { ConfigNode cn = new ConfigNode(); original.OnSave(cn); Wrapper wrapper = new Wrapper(original, passthrough, ignore_delay); BaseEvent new_event = new BaseEvent(original.listParent, original.name, wrapper.Invoke); new_event.OnLoad(cn); return new_event; }
public static BaseEvent Wrap(BaseEvent original, Action<BaseEvent> passthrough) { ConfigNode cn = new ConfigNode(); original.OnSave(cn); Wrapper wrapper = new Wrapper(original, passthrough); BaseEvent new_event = new BaseEvent(original.listParent, original.name, wrapper.Invoke); new_event.OnLoad(cn); return new_event; }
public static BaseEvent CreateWrapper(BaseEvent original, Action <BaseEvent, bool> passthrough, bool ignore_delay) { ConfigNode cn = new ConfigNode(); original.OnSave(cn); Wrapper wrapper = new Wrapper(original, passthrough, ignore_delay); BaseEvent new_event = new BaseEvent(original.listParent, original.name, wrapper.Invoke); new_event.OnLoad(cn); return(new_event); }
public static BaseEvent Wrap(BaseEvent original, Action <BaseEvent> passthrough) { ConfigNode cn = new ConfigNode(); original.OnSave(cn); Wrapper wrapper = new Wrapper(original, passthrough); BaseEvent new_event = new BaseEvent(original.listParent, original.name, wrapper.Invoke); new_event.OnLoad(cn); return(new_event); }
public static BaseEvent CreateWrapper(BaseEvent original, Action <BaseEvent, bool> passthrough, bool ignoreDelay, KSPEvent kspEvent) { // Create a new configuration node and fill this node with the original base event with the values ConfigNode cn = new ConfigNode(); original.OnSave(cn); // create the wrapper (used solely for its Invoke() method) // this class keeps the: // * pass through event (leading to the ModuleSPU.InvokeEvent() method) // * the original event (button click event) // * the ignore delay boolean value (true if the event ignore delay, false otherwise) EventWrapper wrapper = new EventWrapper(original, passthrough, ignoreDelay); // Create a new event, its main features are: // 1. It retains its original base event invokable method: invokable directly through its InvokeOriginalEvent() method [useful for other mods, e.g. kOS] // 2. Its new invoke() method which is in this wrapper class and decorated with and new KSPEvent category, namely "skip_control" (meaning we have already seen this event). BaseEvent newEvent = new WrappedEvent(original, original.listParent, original.name, wrapper.Invoke, kspEvent); // load the original base event values into the new base event newEvent.OnLoad(cn); return(newEvent); }
public static BaseEvent CreateWrapper(BaseEvent original, Action<BaseEvent, bool> passthrough, bool ignoreDelay, KSPEvent kspEvent) { // Create a new configuration node and fill this node with the original base event with the values ConfigNode cn = new ConfigNode(); original.OnSave(cn); // create the wrapper (used solely for its Invoke() method) // this class keeps the: // * pass through event (leading to the ModuleSPU.InvokeEvent() method) // * the original event (button click event) // * the ignore delay boolean value (true if the event ignore delay, false otherwise) EventWrapper wrapper = new EventWrapper(original, passthrough, ignoreDelay); // Create a new event, its main features are: // 1. It retains its original base event invokable method: invokable directly through its InvokeOriginalEvent() method [useful for other mods, e.g. kOS] // 2. Its new invoke() method which is in this wrapper class and decorated with and new KSPEvent category, namely "skip_control" (meaning we have already seen this event). BaseEvent newEvent = new WrappedEvent(original, original.listParent, original.name, wrapper.Invoke, kspEvent); // load the original base event values into the new base event newEvent.OnLoad(cn); return newEvent; }