Added responses to buildsel
parent
6998bb0a02
commit
09d0452dd2
|
@ -376,7 +376,7 @@ namespace stardew_access
|
||||||
string? indexInString = args.ElementAtOrDefault(0);
|
string? indexInString = args.ElementAtOrDefault(0);
|
||||||
if (indexInString == null)
|
if (indexInString == null)
|
||||||
{
|
{
|
||||||
MainClass.monitor.Log("Enter the index of the building too!! Use buildlist command to get the index.", LogLevel.Info);
|
MainClass.monitor.Log("Enter the index of the building too! Use buildlist", LogLevel.Info);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,17 +389,35 @@ namespace stardew_access
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BuildingNAnimalMenuPatches.availableBuildings[index] == null)
|
|
||||||
|
if (BuildingNAnimalMenuPatches.isConstructing || BuildingNAnimalMenuPatches.isMoving)
|
||||||
{
|
{
|
||||||
MainClass.monitor.Log($"No building found with index {index}. Use buildlist command to get the index.", LogLevel.Info);
|
if (BuildingNAnimalMenuPatches.marked[index] == Vector2.Zero)
|
||||||
|
{
|
||||||
|
MainClass.monitor.Log($"No marked position found at {index} index.", LogLevel.Info);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (BuildingNAnimalMenuPatches.availableBuildings[index] == null)
|
||||||
|
{
|
||||||
|
MainClass.monitor.Log($"No building found with index {index}. Use buildlist.", LogLevel.Info);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (BuildingNAnimalMenuPatches.isConstructing) { }
|
string? response = null;
|
||||||
else if (BuildingNAnimalMenuPatches.isDemolishing) { BuildingNAnimalMenuPatches.Demolish(BuildingNAnimalMenuPatches.availableBuildings[index]); }
|
if (BuildingNAnimalMenuPatches.isConstructing) { response = BuildingNAnimalMenuPatches.Contstruct(BuildingNAnimalMenuPatches.availableBuildings[index], BuildingNAnimalMenuPatches.marked[index]); }
|
||||||
else if (BuildingNAnimalMenuPatches.isUpgrading) { BuildingNAnimalMenuPatches.Upgrade(BuildingNAnimalMenuPatches.availableBuildings[index]); }
|
else if (BuildingNAnimalMenuPatches.isMoving) { response = BuildingNAnimalMenuPatches.Move(BuildingNAnimalMenuPatches.availableBuildings[index], BuildingNAnimalMenuPatches.marked[index]); }
|
||||||
else if (BuildingNAnimalMenuPatches.isMoving) { }
|
if (BuildingNAnimalMenuPatches.isDemolishing) { response = BuildingNAnimalMenuPatches.Demolish(BuildingNAnimalMenuPatches.availableBuildings[index]); }
|
||||||
else if (BuildingNAnimalMenuPatches.isPainting) { BuildingNAnimalMenuPatches.Paint(BuildingNAnimalMenuPatches.availableBuildings[index]); }
|
else if (BuildingNAnimalMenuPatches.isUpgrading) { response = BuildingNAnimalMenuPatches.Upgrade(BuildingNAnimalMenuPatches.availableBuildings[index]); }
|
||||||
|
else if (BuildingNAnimalMenuPatches.isPainting) { response = BuildingNAnimalMenuPatches.Paint(BuildingNAnimalMenuPatches.availableBuildings[index]); }
|
||||||
|
|
||||||
|
if (response != null)
|
||||||
|
{
|
||||||
|
MainClass.monitor.Log(response, LogLevel.Info);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
@ -16,17 +16,18 @@ namespace stardew_access.Patches
|
||||||
internal static string carpenterMenuQuery = "";
|
internal static string carpenterMenuQuery = "";
|
||||||
internal static bool isSayingBlueprintInfo = false;
|
internal static bool isSayingBlueprintInfo = false;
|
||||||
internal static string prevBlueprintInfo = "";
|
internal static string prevBlueprintInfo = "";
|
||||||
internal static bool isOnFarm = false, isUpgrading = false, isDemolishing = false, isPainting = false, isConstructing = false, isMoving = false;
|
internal static bool isOnFarm = false, isUpgrading = false, isDemolishing = false, isPainting = false, isConstructing = false, isMoving = false, isMagicalConstruction = false;
|
||||||
|
|
||||||
internal static void CarpenterMenuPatch(
|
internal static void CarpenterMenuPatch(
|
||||||
CarpenterMenu __instance, bool ___onFarm, List<Item> ___ingredients, int ___price,
|
CarpenterMenu __instance, bool ___onFarm, List<Item> ___ingredients, int ___price,
|
||||||
List<BluePrint> ___blueprints, int ___currentBlueprintIndex, bool ___upgrading, bool ___demolishing, bool ___moving,
|
List<BluePrint> ___blueprints, int ___currentBlueprintIndex, bool ___upgrading, bool ___demolishing, bool ___moving,
|
||||||
bool ___painting)
|
bool ___painting, bool ___magicalConstruction)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
isOnFarm = ___onFarm;
|
isOnFarm = ___onFarm;
|
||||||
carpenterMenu = __instance;
|
carpenterMenu = __instance;
|
||||||
|
isMagicalConstruction = ___magicalConstruction;
|
||||||
if (!___onFarm)
|
if (!___onFarm)
|
||||||
{
|
{
|
||||||
isUpgrading = false;
|
isUpgrading = false;
|
||||||
|
@ -193,17 +194,19 @@ namespace stardew_access.Patches
|
||||||
isSayingBlueprintInfo = false;
|
isSayingBlueprintInfo = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Demolish(Building? toDemolish)
|
public static string? Demolish(Building? toDemolish)
|
||||||
{
|
{
|
||||||
if (toDemolish == null)
|
if (toDemolish == null)
|
||||||
return;
|
return null;
|
||||||
|
|
||||||
|
string? response = null;
|
||||||
// This code is taken from the game's code (CarpenterMenu.cs::654)
|
// This code is taken from the game's code (CarpenterMenu.cs::654)
|
||||||
Farm farm = Game1.getLocationFromName("Farm") as Farm;
|
Farm farm = Game1.getLocationFromName("Farm") as Farm;
|
||||||
Action buildingLockFailed = delegate
|
Action buildingLockFailed = delegate
|
||||||
{
|
{
|
||||||
if (isDemolishing)
|
if (isDemolishing)
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_LockFailed"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_LockFailed");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Action continueDemolish = delegate
|
Action continueDemolish = delegate
|
||||||
|
@ -212,15 +215,15 @@ namespace stardew_access.Patches
|
||||||
{
|
{
|
||||||
if ((int)toDemolish.daysOfConstructionLeft > 0 || (int)toDemolish.daysUntilUpgrade > 0)
|
if ((int)toDemolish.daysOfConstructionLeft > 0 || (int)toDemolish.daysUntilUpgrade > 0)
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_DuringConstruction"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_DuringConstruction");
|
||||||
}
|
}
|
||||||
else if (toDemolish.indoors.Value != null && toDemolish.indoors.Value is AnimalHouse && (toDemolish.indoors.Value as AnimalHouse).animalsThatLiveHere.Count > 0)
|
else if (toDemolish.indoors.Value != null && toDemolish.indoors.Value is AnimalHouse && (toDemolish.indoors.Value as AnimalHouse).animalsThatLiveHere.Count > 0)
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_AnimalsHere"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_AnimalsHere");
|
||||||
}
|
}
|
||||||
else if (toDemolish.indoors.Value != null && toDemolish.indoors.Value.farmers.Any())
|
else if (toDemolish.indoors.Value != null && toDemolish.indoors.Value.farmers.Any())
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_PlayerHere"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_PlayerHere");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -230,14 +233,14 @@ namespace stardew_access.Patches
|
||||||
{
|
{
|
||||||
if (current.currentLocation != null && current.currentLocation.Name == (toDemolish.indoors.Value as Cabin).GetCellarName())
|
if (current.currentLocation != null && current.currentLocation.Name == (toDemolish.indoors.Value as Cabin).GetCellarName())
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_PlayerHere"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_PlayerHere");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (toDemolish.indoors.Value is Cabin && (toDemolish.indoors.Value as Cabin).farmhand.Value.isActive())
|
if (toDemolish.indoors.Value is Cabin && (toDemolish.indoors.Value as Cabin).farmhand.Value.isActive())
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_FarmhandOnline"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_FarmhandOnline");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -276,19 +279,19 @@ namespace stardew_access.Patches
|
||||||
{
|
{
|
||||||
if (toDemolish.indoors.Value != null && toDemolish.indoors.Value is Cabin && !Game1.IsMasterGame)
|
if (toDemolish.indoors.Value != null && toDemolish.indoors.Value is Cabin && !Game1.IsMasterGame)
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_LockFailed"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantDemolish_LockFailed");
|
||||||
toDemolish = null;
|
toDemolish = null;
|
||||||
return;
|
return response;
|
||||||
}
|
}
|
||||||
if (!carpenterMenu.CanDemolishThis(toDemolish))
|
if (!carpenterMenu.CanDemolishThis(toDemolish))
|
||||||
{
|
{
|
||||||
toDemolish = null;
|
toDemolish = null;
|
||||||
return;
|
return response;
|
||||||
}
|
}
|
||||||
if (!Game1.IsMasterGame && !carpenterMenu.hasPermissionsToDemolish(toDemolish))
|
if (!Game1.IsMasterGame && !carpenterMenu.hasPermissionsToDemolish(toDemolish))
|
||||||
{
|
{
|
||||||
toDemolish = null;
|
toDemolish = null;
|
||||||
return;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (toDemolish != null && toDemolish.indoors.Value is Cabin)
|
if (toDemolish != null && toDemolish.indoors.Value is Cabin)
|
||||||
|
@ -308,22 +311,49 @@ namespace stardew_access.Patches
|
||||||
DelayedAction.functionAfterDelay(carpenterMenu.returnToCarpentryMenu, 1000);
|
DelayedAction.functionAfterDelay(carpenterMenu.returnToCarpentryMenu, 1000);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (toDemolish != null)
|
if (toDemolish != null)
|
||||||
{
|
{
|
||||||
Game1.player.team.demolishLock.RequestLock(continueDemolish, buildingLockFailed);
|
Game1.player.team.demolishLock.RequestLock(continueDemolish, buildingLockFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Contstruct(Building toCunstruct, Vector2 position)
|
public static string? Contstruct(Building? toCunstruct, Vector2 position)
|
||||||
{
|
{
|
||||||
|
string? response = null;
|
||||||
|
Game1.player.team.buildLock.RequestLock(delegate
|
||||||
|
{
|
||||||
|
if (isOnFarm && Game1.locationRequest == null)
|
||||||
|
{
|
||||||
|
if (tryToBuild(position))
|
||||||
|
{
|
||||||
|
carpenterMenu.CurrentBlueprint.consumeResources();
|
||||||
|
DelayedAction.functionAfterDelay(carpenterMenu.returnToCarpentryMenuAfterSuccessfulBuild, 2000);
|
||||||
|
// freeze = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantBuild");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Game1.player.team.buildLock.ReleaseLock();
|
||||||
|
});
|
||||||
|
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Upgrade(Building? toUpgrade)
|
public static bool tryToBuild(Vector2 position)
|
||||||
{
|
{
|
||||||
|
return ((Farm)Game1.getLocationFromName("Farm")).buildStructure(carpenterMenu.CurrentBlueprint, position, Game1.player, isMagicalConstruction);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string? Upgrade(Building? toUpgrade)
|
||||||
|
{
|
||||||
|
string? response = null;
|
||||||
// This code is taken from the game's code (CarpenterMenu.cs::775)
|
// This code is taken from the game's code (CarpenterMenu.cs::775)
|
||||||
if (toUpgrade != null && carpenterMenu.CurrentBlueprint.name != null && toUpgrade.buildingType.Equals(carpenterMenu.CurrentBlueprint.nameOfBuildingToUpgrade))
|
if (toUpgrade != null && carpenterMenu.CurrentBlueprint.name != null && toUpgrade.buildingType.Equals(carpenterMenu.CurrentBlueprint.nameOfBuildingToUpgrade))
|
||||||
{
|
{
|
||||||
|
@ -337,24 +367,26 @@ namespace stardew_access.Patches
|
||||||
}
|
}
|
||||||
else if (toUpgrade != null)
|
else if (toUpgrade != null)
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CantUpgrade_BuildingType"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CantUpgrade_BuildingType");
|
||||||
}
|
}
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Paint(Building? toPaint)
|
public static string? Paint(Building? toPaint)
|
||||||
{
|
{
|
||||||
|
string? response = null;
|
||||||
Farm farm_location = Game1.getFarm();
|
Farm farm_location = Game1.getFarm();
|
||||||
if (toPaint != null)
|
if (toPaint != null)
|
||||||
{
|
{
|
||||||
if (!toPaint.CanBePainted())
|
if (!toPaint.CanBePainted())
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CannotPaint"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CannotPaint");
|
||||||
return;
|
return response;
|
||||||
}
|
}
|
||||||
if (!carpenterMenu.HasPermissionsToPaint(toPaint))
|
if (!carpenterMenu.HasPermissionsToPaint(toPaint))
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CannotPaint_Permission"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CannotPaint_Permission");
|
||||||
return;
|
return response;
|
||||||
}
|
}
|
||||||
toPaint.color.Value = Color.White;
|
toPaint.color.Value = Color.White;
|
||||||
carpenterMenu.SetChildMenu(new BuildingPaintMenu(toPaint));
|
carpenterMenu.SetChildMenu(new BuildingPaintMenu(toPaint));
|
||||||
|
@ -364,22 +396,25 @@ namespace stardew_access.Patches
|
||||||
{
|
{
|
||||||
if (!carpenterMenu.CanPaintHouse())
|
if (!carpenterMenu.CanPaintHouse())
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CannotPaint"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CannotPaint");
|
||||||
}
|
}
|
||||||
else if (!carpenterMenu.HasPermissionsToPaint(null))
|
else if (!carpenterMenu.HasPermissionsToPaint(null))
|
||||||
{
|
{
|
||||||
Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\UI:Carpenter_CannotPaint_Permission"), Color.Red, 3500f));
|
response = Game1.content.LoadString("Strings\\UI:Carpenter_CannotPaint_Permission");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
carpenterMenu.SetChildMenu(new BuildingPaintMenu("House", () => (farm_location.paintedHouseTexture != null) ? farm_location.paintedHouseTexture : Farm.houseTextures, farm_location.houseSource.Value, farm_location.housePaintColor.Value));
|
carpenterMenu.SetChildMenu(new BuildingPaintMenu("House", () => (farm_location.paintedHouseTexture != null) ? farm_location.paintedHouseTexture : Farm.houseTextures, farm_location.houseSource.Value, farm_location.housePaintColor.Value));
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Move(Building toMove, Vector2 position)
|
public static string? Move(Building? toMove, Vector2 position)
|
||||||
{
|
{
|
||||||
|
string? response = null;
|
||||||
|
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -354,7 +354,6 @@ namespace stardew_access.Patches
|
||||||
|
|
||||||
if (__instance is CarpenterMenu)
|
if (__instance is CarpenterMenu)
|
||||||
{
|
{
|
||||||
MainClass.monitor.Log($"Here", LogLevel.Info);
|
|
||||||
BuildingNAnimalMenuPatches.isOnFarm = false;
|
BuildingNAnimalMenuPatches.isOnFarm = false;
|
||||||
BuildingNAnimalMenuPatches.isUpgrading = false;
|
BuildingNAnimalMenuPatches.isUpgrading = false;
|
||||||
BuildingNAnimalMenuPatches.isDemolishing = false;
|
BuildingNAnimalMenuPatches.isDemolishing = false;
|
||||||
|
|
Loading…
Reference in New Issue