summaryrefslogtreecommitdiff
path: root/StardewModdingAPI/Inheritance/SGameLocation.cs
diff options
context:
space:
mode:
authorZoryn Aaron <zoryn4163@gmail.com>2016-03-01 01:35:52 -0500
committerZoryn Aaron <zoryn4163@gmail.com>2016-03-01 01:35:52 -0500
commit9a32b3afdda54e513cd370a0edfa87febc5cd1f0 (patch)
tree3ff47d467b8803c847d33f14bbf0717ab47cd2f0 /StardewModdingAPI/Inheritance/SGameLocation.cs
parent54faadf7b567eb2b71492471c4a2162487059ce6 (diff)
downloadSMAPI-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.cs90
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);
+ }
+ }
+ }
+}