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 void PaintBlueprint(Blueprint blueprint) { buildingTabPage.Controls.Clear(); BitmapPainter blueprintPainter = new BuildingPainter(blueprint, iconToolTip); Image paintedBlueprint = ((blueprintPainter as BuildingPainter).Paint()); buildingTabPage.Controls.Add(new PictureBox() { Image = paintedBlueprint, Size = paintedBlueprint.Size, BackColor = System.Drawing.Color.DimGray }); electricTabPage.Controls.Clear(); blueprintPainter = new ElectricalPainter(blueprint, iconToolTip, paintedBlueprint); Image electricOverlay = (blueprintPainter as ElectricalPainter).Paint(); electricTabPage.Controls.Add( new PictureBox() { Image = electricOverlay, Size = paintedBlueprint.Size, BackColor = System.Drawing.Color.DimGray }); liquidTabPage.Controls.Clear(); blueprintPainter = new LiquidPainter(blueprint, iconToolTip, paintedBlueprint); Image liquidOverlay = (blueprintPainter as LiquidPainter).Paint(); liquidTabPage.Controls.Add( new PictureBox() { Image = liquidOverlay, Size = paintedBlueprint.Size, BackColor = System.Drawing.Color.DimGray }); gasTabPage.Controls.Clear(); blueprintPainter = new GasPainter(blueprint, iconToolTip, paintedBlueprint); Image gasOverlay = (blueprintPainter as GasPainter).Paint(); gasTabPage.Controls.Add( new PictureBox() { Image = gasOverlay, Size = paintedBlueprint.Size, BackColor = System.Drawing.Color.DimGray }); }
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); } }