public static string getLevelForCharacter(Character c) { if (levels.ContainsKey(c)) { if (c.currentLocation != null && MapHandler.hasLevel(c.currentLocation, levels[c])) { return(levels[c]); } } levels[c] = "Base"; return(levels[c]); }
public static string getLevelSuffixForCharacter(Character c) { if (!levels.ContainsKey(c)) { levels[c] = "Base"; } if (c.currentLocation != null && MapHandler.hasLevel(c.currentLocation, levels[c])) { if (levels[c].Equals("Base")) { return(""); } return("_" + levels[c]); } return(""); }
//public static void Postfix(bool __result, GameLocation __instance, Microsoft.Xna.Framework.Rectangle position, xTile.Dimensions.Rectangle viewport, bool isFarmer, int damagesFarmer, bool glider, Character character, bool pathfinding, bool projectile = false, bool ignoreCharacterRequirement = false) //{ // //Fix for handling NPCs as well // if (!MapHandler.isPseudo3DLocation(__instance) || MapHandler.currentLayerID.Equals("Base")) // return; // //Logger.log("Running patched collision detection..."); // if (!glider && (!Game1.eventUp || character != null && !isFarmer && (!pathfinding || !character.willDestroyObjectsUnderfoot))) // { // bool solid = isTileSolid(position, viewport, __instance, character, position.Width > 64, glider, isFarmer, false); // __result = solid; // Logger.log("Result: " + __result.ToString() + " (" + solid.ToString() + ")"); // } //} public static bool Prefix(Microsoft.Xna.Framework.Rectangle position, xTile.Dimensions.Rectangle viewport, bool isFarmer, int damagesFarmer, bool glider, Character character, GameLocation __instance, ref bool __result) { string currentLevel = LevelHandler.getLevelForCharacter(character); //Fix for handling NPCs as well if (!MapHandler.isPseudo3DLocation(__instance) || currentLevel.Equals("Base") || !MapHandler.hasLevel(__instance, currentLevel)) { return(true); } //Logger.log("Running patched collision detection..."); bool solid = isTileSolid(position, viewport, __instance, character, position.Width > 64, glider, isFarmer, false); //Logger.log("Result: " + solid.ToString()); __result = solid; return(false); }