public MainViewModel() { Effects = new EffectsCollection(); Injection.Container.Map <EffectsCollection>().To(Effects); GameModule = new MainGameModule(); }
private void AddEffects(EffectsCollection effects, IEnumerable <Entry> list) { foreach (var entry in list) { foreach (var effect in entry.Context.Effects) { effects.AddEffect(effect, entry, entry.Context); } } }
private static EffectsCollection GatherEffects() { List <Assembly> assemblies = new List <Assembly>(); // this assembly assemblies.Add(Assembly.GetExecutingAssembly()); // PaintDotNet.Effects.dll assemblies.Add(Assembly.GetAssembly(typeof(Effect))); // TARGETDIR\Effects\*.dll string homeDir = PdnInfo.GetApplicationDir(); string effectsDir = Path.Combine(homeDir, InvariantStrings.EffectsSubDir); bool dirExists; try { dirExists = Directory.Exists(effectsDir); } catch { dirExists = false; } if (dirExists) { string fileSpec = "*" + InvariantStrings.DllExtension; string[] filePaths = Directory.GetFiles(effectsDir, fileSpec); foreach (string filePath in filePaths) { Assembly pluginAssembly = null; try { pluginAssembly = Assembly.LoadFrom(filePath); assemblies.Add(pluginAssembly); } catch (Exception ex) { Tracing.Ping("Exception while loading " + filePath + ": " + ex.ToString()); } } } EffectsCollection ec = new EffectsCollection(assemblies); return(ec); }
private void BeginHandler(Event e) { // code generation start here EmitHandlerHeader(e.Name); EmitEnterBlock(); _gc = new GateConverter(); // process labels before they are added ... _gc.OnBeforeAddLabel = EvaluateCodeLabelBefore; _guards = new GuardCollection(); _effectsbefore = new EffectsCollection(); _effectsafter = new EffectsCollection(); }
private void EndHandler() { if (TraceFlags.ShowLabel) { Trace("labels:\n{0}", _gc.ToDebugString()); } _guards = null; _effectsbefore = null; _effectsafter = null; _gc.Dispose(); _gc = null; EmitLeaveBlock(); Writer.AppendComment(); }
public void CalculateEffects() { _tset = new TransitionSet(); // overall precondition for the event var c = new TriggerTermCollection <bool>(true); foreach (var t in Triggers) { c.Add(t); // add to event wide transition set _tset.AddRange(t.Transitions); } var guards = new GuardCollection(); var before = new EffectsCollection(); var after = new EffectsCollection(); foreach (var t in Triggers) { foreach (var g in t.Guards) { guards.AddGuard(t, g); } foreach (var effect in t.Effects) { after.AddEffect(t, effect); } } guards.AddLeaveEffects(before); guards.AddEnterEffects(after); // make results visible EffectsBefore = before; EffectsAfter = after; PreCondition = c.PreCondition; }
public void CalculateEffects() { _tset = new TransitionSet(); // overall precondition for the event var c = new TriggerTermCollection<bool>(true); foreach (var t in Triggers) { c.Add(t); // add to event wide transition set _tset.AddRange(t.Transitions); } var guards = new GuardCollection(); var before = new EffectsCollection(); var after = new EffectsCollection(); foreach (var t in Triggers) { foreach (var g in t.Guards) { guards.AddGuard(t, g); } foreach (var effect in t.Effects) { after.AddEffect(t, effect); } } guards.AddLeaveEffects(before); guards.AddEnterEffects(after); // make results visible EffectsBefore = before; EffectsAfter = after; PreCondition = c.PreCondition; }
private void AddEffectsToMenu() { // Fill the menu with the effect names, and "..." if it is configurable EffectsCollection effectsCollection = this.Effects; Type[] effectTypes = effectsCollection.Effects; bool withShortcuts = EnableEffectShortcuts; List <Effect> newEffects = new List <Effect>(); foreach (Type type in effectsCollection.Effects) { try { ConstructorInfo ci = type.GetConstructor(Type.EmptyTypes); Effect effect = (Effect)ci.Invoke(null); if (FilterEffects(effect)) { newEffects.Add(effect); } } catch { // We don't want a DLL that can't be figured out to cause the app to crash continue; } } newEffects.Sort( delegate(Effect lhs, Effect rhs) { return(string.Compare(lhs.Name, rhs.Name, true)); }); List <string> subMenuNames = new List <string>(); foreach (Effect effect in newEffects) { if (!string.IsNullOrEmpty(effect.SubMenuName)) { subMenuNames.Add(effect.SubMenuName); } } subMenuNames.Sort( delegate(string lhs, string rhs) { return(string.Compare(lhs, rhs, true)); }); string lastSubMenuName = null; foreach (string subMenuName in subMenuNames) { if (subMenuName == lastSubMenuName) { // skip duplicate names continue; } PdnMenuItem subMenu = new PdnMenuItem(subMenuName, null, null); DropDownItems.Add(subMenu); lastSubMenuName = subMenuName; } foreach (Effect effect in newEffects) { AddEffectToMenu(effect, withShortcuts); } }
private void EndHandler() { if(TraceFlags.ShowLabel) { Trace("labels:\n{0}", _gc.ToDebugString()); } _guards = null; _effectsbefore = null; _effectsafter = null; _gc.Dispose(); _gc = null; EmitLeaveBlock(); Writer.AppendComment(); }
private void BeginHandler(Event e) { // code generation start here EmitHandlerHeader(e.Name); EmitEnterBlock(); _gc = new GateConverter(); // process labels before they are added ... _gc.OnBeforeAddLabel = EvaluateCodeLabelBefore; _guards = new GuardCollection(); _effectsbefore = new EffectsCollection(); _effectsafter = new EffectsCollection(); }
public MainGameModule() : base("Content") { _effects = Injection.Container.Resolve <EffectsCollection>(); _effects.PropertyChanged += (s, e) => { MouseStamp.Effect = _effects.Selected.Effect; }; }
public void AddEnterEffects(EffectsCollection effects) { var list = _map.Values.Where(e => e.Context.Type != GuardType.LEAVE); AddEffects(effects, list); }