public override bool placementAction(GameLocation location, int x, int y, Farmer who = null) { SGameLocation s = SGame.GetLocationFromName(location.name); if (s.GetHashCode() != SGame.CurrentLocation.GetHashCode()) { Program.LogError("HASH DIFFERENCE: " + s.GetHashCode() + " | " + SGame.ModLocations[SGame.ModLocations.IndexOf(SGame.ModLocations.First(z => z.name == location.name))].GetHashCode() + " | " + SGame.CurrentLocation.GetHashCode()); Console.ReadKey(); } Console.Title = (this.GetHashCode() + " PLACEMENT"); if (s != null) { Vector2 index1 = new Vector2(x - (Game1.tileSize / 2), y - (Game1.tileSize / 2)); if (!s.ModObjects.ContainsKey(index1)) { s.ModObjects.Add(index1, this); Game1.player.position = index1; return(true); } } else { Program.LogError("No SGameLocation could be found for the supplied GameLocation!"); return(false); } return(false); }
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); }