Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
        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);
            }
        }