private void InitializeParticleCreator() { ParticleCreatorParameter.ValidValues.Clear(); if (Problem != null) { IParticleCreator oldParticleCreator = ParticleCreator; IParticleCreator defaultParticleCreator = Problem.Operators.OfType <IParticleCreator>().FirstOrDefault(); foreach (var creator in Problem.Operators.OfType <IParticleCreator>().OrderBy(x => x.Name)) { ParticleCreatorParameter.ValidValues.Add(creator); } if (oldParticleCreator != null) { var creator = ParticleCreatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldParticleCreator.GetType()); if (creator != null) { ParticleCreator = creator; } else { oldParticleCreator = null; } } if (oldParticleCreator == null && defaultParticleCreator != null) { ParticleCreator = defaultParticleCreator; } } }
/********* ** Public methods *********/ /// <summary>The mod entry point, called after the mod is first loaded.</summary> /// <param name="helper">Provides simplified APIs for writing mods.</param> public override void Entry(IModHelper helper) { ModConfig config = this.Helper.ReadConfig <ModConfig>(); Multiplayer multiplayer = typeof(Game1).GetField("multiplayer", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null) as Multiplayer; FlowerHelper flowerHelper = new FlowerHelper(multiplayer, config.LocalOnly); flowerers = new List <IToolFlowerer> { new Swipe(flowerHelper), new Swing(flowerHelper), new Stab(flowerHelper), new Defense(flowerHelper), new Watering(flowerHelper), new TimingCast(flowerHelper) }; explosionCreator = new Explosion(flowerHelper); slingshotCreator = new Slingshot(flowerHelper); helper.Events.GameLoop.UpdateTicked += GameLoop_UpdateTicked; }