diff options
author | Zoryn Aaron <zoryn4163@gmail.com> | 2016-03-01 01:35:52 -0500 |
---|---|---|
committer | Zoryn Aaron <zoryn4163@gmail.com> | 2016-03-01 01:35:52 -0500 |
commit | 9a32b3afdda54e513cd370a0edfa87febc5cd1f0 (patch) | |
tree | 3ff47d467b8803c847d33f14bbf0717ab47cd2f0 /StardewModdingAPI/Inheritance/SGameLocation.cs | |
parent | 54faadf7b567eb2b71492471c4a2162487059ce6 (diff) | |
download | SMAPI-9a32b3afdda54e513cd370a0edfa87febc5cd1f0.tar.gz SMAPI-9a32b3afdda54e513cd370a0edfa87febc5cd1f0.tar.bz2 SMAPI-9a32b3afdda54e513cd370a0edfa87febc5cd1f0.zip |
trying to get custom content working - do NOT try to implement cc yet
Diffstat (limited to 'StardewModdingAPI/Inheritance/SGameLocation.cs')
-rw-r--r-- | StardewModdingAPI/Inheritance/SGameLocation.cs | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/StardewModdingAPI/Inheritance/SGameLocation.cs b/StardewModdingAPI/Inheritance/SGameLocation.cs new file mode 100644 index 00000000..f4523c21 --- /dev/null +++ b/StardewModdingAPI/Inheritance/SGameLocation.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.Eventing.Reader; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Graphics; +using StardewValley; +using StardewValley.BellsAndWhistles; + +namespace StardewModdingAPI.Inheritance +{ + public class SGameLocation : GameLocation + { + public GameLocation BaseGameLocation { get; private set; } + + public SerializableDictionary<Vector2, SObject> ModObjects { get; set; } + + public static SGameLocation ConstructFromBaseClass(GameLocation baseClass) + { + SGameLocation s = new SGameLocation(); + s.BaseGameLocation = baseClass; + s.ModObjects = new SerializableDictionary<Vector2, SObject>(); + //s.IsFarm = baseClass.IsFarm; + //s.IsOutdoors = baseClass.IsOutdoors; + //s.LightLevel = baseClass.LightLevel; + //s.Map = baseClass.Map; + //s.objects = baseClass.objects; + //s.temporarySprites = baseClass.temporarySprites; + s.actionObjectForQuestionDialogue = baseClass.actionObjectForQuestionDialogue; + s.characters = baseClass.characters; + s.critters = (List<Critter>)typeof(GameLocation).GetField("critters", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(baseClass); + s.currentEvent = baseClass.currentEvent; + s.debris = baseClass.debris; + s.doorSprites = baseClass.doorSprites; + s.doors = baseClass.doors; + s.farmers = baseClass.farmers; + s.fishSplashAnimation = baseClass.fishSplashAnimation; + s.fishSplashPoint = baseClass.fishSplashPoint; + s.forceViewportPlayerFollow = baseClass.forceViewportPlayerFollow; + s.ignoreDebrisWeather = baseClass.ignoreDebrisWeather; + s.ignoreLights = baseClass.ignoreLights; + s.ignoreOutdoorLighting = baseClass.ignoreOutdoorLighting; + s.isFarm = baseClass.isFarm; + s.isOutdoors = baseClass.isOutdoors; + s.isStructure = baseClass.isStructure; + s.largeTerrainFeatures = baseClass.largeTerrainFeatures; + s.lastQuestionKey = baseClass.lastQuestionKey; + s.lastTouchActionLocation = baseClass.lastTouchActionLocation; + s.lightGlows = baseClass.lightGlows; + s.map = baseClass.map; + s.name = baseClass.name; + s.numberOfSpawnedObjectsOnMap = baseClass.numberOfSpawnedObjectsOnMap; + s.objects = baseClass.objects; + s.orePanAnimation = baseClass.orePanAnimation; + s.orePanPoint = baseClass.orePanPoint; + s.projectiles = baseClass.projectiles; + s.temporarySprites = baseClass.temporarySprites; + s.terrainFeatures = baseClass.terrainFeatures; + s.uniqueName = baseClass.uniqueName; + s.warps = baseClass.warps; + s.wasUpdated = (bool)typeof(GameLocation).GetField("wasUpdated", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(baseClass); + s.waterAnimationIndex = baseClass.waterAnimationIndex; + s.waterAnimationTimer = baseClass.waterAnimationTimer; + s.waterColor = baseClass.waterColor; + s.waterTileFlip = baseClass.waterTileFlip; + s.waterTiles = baseClass.waterTiles; + return s; + } + + public static List<SGameLocation> ConvertGameLocations(List<GameLocation> baseGameLocations) + { + return baseGameLocations.Select(ConstructFromBaseClass).ToList(); + } + + public virtual void update(GameTime gameTime) + { + } + + public override void draw(SpriteBatch b) + { + foreach (var v in ModObjects) + { + v.Value.draw(b, (int)v.Key.X, (int)v.Key.Y, -999999, 1); + } + } + } +} |