public static bool drawInMenu_Prefix(GreenhouseBuilding __instance) { try { __instance.texture = new Lazy <Texture2D>(delegate { Texture2D texture2D = Game1.content.Load <Texture2D>("Buildings\\Greenhouse"); if (__instance.paintedTexture != null) { __instance.paintedTexture.Dispose(); __instance.paintedTexture = null; } __instance.paintedTexture = BuildingPainter.Apply(texture2D, "Buildings\\Greenhouse" + "_PaintMask", __instance.netBuildingPaintColor.Value); if (__instance.paintedTexture != null) { texture2D = __instance.paintedTexture; } return(texture2D); }); } catch (Exception ex) { Monitor.Log($"Failed in {nameof(drawInMenu_Prefix)}:\n{ex}", LogLevel.Error); } return(true); }
private static void ApplyHousePaintPostfix(Farm __instance) { if (__instance.modData.ContainsKey("AlternativeTextureName")) { var buildingType = $"Farmhouse_{Game1.MasterPlayer.HouseUpgradeLevel}"; if (!__instance.modData["AlternativeTextureName"].Contains(buildingType)) { var instanceSeasonName = $"{AlternativeTextureModel.TextureType.Building}_{buildingType}_{Game1.currentSeason}"; AssignDefaultModData(__instance, instanceSeasonName, true); if (__instance.paintedHouseTexture != null) { __instance.paintedHouseTexture.Dispose(); __instance.paintedHouseTexture = BuildingPainter.Apply(Farm.houseTextures, "Buildings\\houses_PaintMask", __instance.housePaintColor); } } var textureModel = AlternativeTextures.textureManager.GetSpecificTextureModel(__instance.modData["AlternativeTextureName"]); if (textureModel is null) { return; } var textureVariation = Int32.Parse(__instance.modData["AlternativeTextureVariation"]); if (textureVariation == -1 || AlternativeTextures.modConfig.IsTextureVariationDisabled(textureModel.GetId(), textureVariation)) { return; } if (__instance.paintedHouseTexture != null) { __instance.paintedHouseTexture.Dispose(); __instance.paintedHouseTexture = null; } var targetedBuilding = new Building(); targetedBuilding.buildingType.Value = buildingType; targetedBuilding.netBuildingPaintColor = __instance.housePaintColor; targetedBuilding.tileX.Value = __instance.GetHouseRect().X; targetedBuilding.tileY.Value = __instance.GetHouseRect().Y; targetedBuilding.tilesWide.Value = __instance.GetHouseRect().Width + 1; targetedBuilding.tilesHigh.Value = __instance.GetHouseRect().Height + 1; __instance.paintedHouseTexture = BuildingPatch.GetBuildingTextureWithPaint(targetedBuilding, textureModel, textureVariation, true); } }