public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { var item = GetItem(ref value); return(item != null ? SubsystemPalette.GetName(subsystemTerrain, GetPaintColor(value), item.GetDisplayName(subsystemTerrain, value)) : base.GetDisplayName(subsystemTerrain, value)); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int data = Terrain.ExtractData(value); ClothingData clothingData = GetClothingData(data); int clothingColor = GetClothingColor(data); string displayName = LanguageControl.GetBlock(string.Format("{0}:{1}", GetType().Name, data), "DisplayName"); if (string.IsNullOrEmpty(displayName)) { displayName = clothingData.DisplayName; } if (clothingColor != 0) { return(SubsystemPalette.GetName(subsystemTerrain, clothingColor, displayName)); } return(displayName); }
public override IEnumerable <CraftingRecipe> GetProceduralCraftingRecipes() { string[] additives = new string[4] { BlocksManager.Blocks[43].CraftingId, BlocksManager.Blocks[24].CraftingId, BlocksManager.Blocks[103].CraftingId, BlocksManager.Blocks[22].CraftingId }; int color = 0; while (color < 16) { int num2; for (int additive = 0; additive < 4; additive = num2) { int num = CombineColors(color, 1 << additive); if (num != color) { CraftingRecipe craftingRecipe = new CraftingRecipe { Description = $"ÖÆ×÷ {SubsystemPalette.GetName(null, num, null)} ÑÕÁÏ", ResultValue = Terrain.MakeBlockValue(129, 0, num), ResultCount = 1, RequiredHeatLevel = 1f }; craftingRecipe.Ingredients[0] = BlocksManager.Blocks[129].CraftingId + ":" + color.ToString(CultureInfo.InvariantCulture); craftingRecipe.Ingredients[1] = additives[additive]; yield return(craftingRecipe); } num2 = additive + 1; } num2 = color + 1; color = num2; } }
public override CraftingRecipe GetAdHocCraftingRecipe(SubsystemTerrain terrain, string[] ingredients, float heatLevel, float playerLevel) { if (heatLevel < 1f) { return(null); } List <string> list = ingredients.Where((string i) => !string.IsNullOrEmpty(i)).ToList(); if (list.Count == 2) { int num = 0; int num2 = 0; int num3 = 0; foreach (string item in list) { CraftingRecipesManager.DecodeIngredient(item, out string craftingId, out int?data); if (craftingId == BlocksManager.Blocks[203].CraftingId) { num3 = Terrain.MakeBlockValue(203, 0, data.HasValue ? data.Value : 0); } else if (craftingId == BlocksManager.Blocks[129].CraftingId) { num = Terrain.MakeBlockValue(129, 0, data.HasValue ? data.Value : 0); } else if (craftingId == BlocksManager.Blocks[128].CraftingId) { num2 = Terrain.MakeBlockValue(128, 0, data.HasValue ? data.Value : 0); } } if (num != 0 && num3 != 0) { int data2 = Terrain.ExtractData(num3); int clothingColor = GetClothingColor(data2); int clothingIndex = GetClothingIndex(data2); bool canBeDyed = GetClothingData(data2).CanBeDyed; int damage = BlocksManager.Blocks[203].GetDamage(num3); int color = PaintBucketBlock.GetColor(Terrain.ExtractData(num)); int damage2 = BlocksManager.Blocks[129].GetDamage(num); Block block = BlocksManager.Blocks[129]; Block block2 = BlocksManager.Blocks[203]; if (!canBeDyed) { return(null); } int num4 = PaintBucketBlock.CombineColors(clothingColor, color); if (num4 != clothingColor) { return(new CraftingRecipe { ResultCount = 1, ResultValue = block2.SetDamage(Terrain.MakeBlockValue(203, 0, SetClothingIndex(SetClothingColor(0, num4), clothingIndex)), damage), RemainsCount = 1, RemainsValue = BlocksManager.DamageItem(Terrain.MakeBlockValue(129, 0, color), damage2 + MathUtils.Max(block.Durability / 4, 1)), RequiredHeatLevel = 1f, Description = $"{LanguageControl.Get("BlocksManager", "Dyed")} {SubsystemPalette.GetName(terrain, color, null)}", Ingredients = (string[])ingredients.Clone() }); } } if (num2 != 0 && num3 != 0) { int data3 = Terrain.ExtractData(num3); int clothingColor2 = GetClothingColor(data3); int clothingIndex2 = GetClothingIndex(data3); bool canBeDyed2 = GetClothingData(data3).CanBeDyed; int damage3 = BlocksManager.Blocks[203].GetDamage(num3); int damage4 = BlocksManager.Blocks[128].GetDamage(num2); Block block3 = BlocksManager.Blocks[128]; Block block4 = BlocksManager.Blocks[203]; if (!canBeDyed2) { return(null); } if (clothingColor2 != 0) { return(new CraftingRecipe { ResultCount = 1, ResultValue = block4.SetDamage(Terrain.MakeBlockValue(203, 0, SetClothingIndex(SetClothingColor(0, 0), clothingIndex2)), damage3), RemainsCount = 1, RemainsValue = BlocksManager.DamageItem(Terrain.MakeBlockValue(128, 0, 0), damage4 + MathUtils.Max(block3.Durability / 4, 1)), RequiredHeatLevel = 1f, Description = LanguageControl.Get("BlocksManager", "Not Dyed") + " " + LanguageControl.Get("BlocksManager", "Clothes"), Ingredients = (string[])ingredients.Clone() }); } } } return(null); }
public override CraftingRecipe GetAdHocCraftingRecipe(SubsystemTerrain subsystemTerrain, string[] ingredients, float heatLevel, float playerLevel) { if (heatLevel < 1f) { return(null); } List <string> list = ingredients.Where((string i) => !string.IsNullOrEmpty(i)).ToList(); if (list.Count == 2) { int num = 0; int num2 = 0; int num3 = 0; foreach (string item in list) { CraftingRecipesManager.DecodeIngredient(item, out string craftingId, out int?data); if (craftingId == BlocksManager.Blocks[208].CraftingId) { num3 = Terrain.MakeBlockValue(208, 0, data.HasValue ? data.Value : 0); } else if (craftingId == BlocksManager.Blocks[129].CraftingId) { num = Terrain.MakeBlockValue(129, 0, data.HasValue ? data.Value : 0); } else if (craftingId == BlocksManager.Blocks[128].CraftingId) { num2 = Terrain.MakeBlockValue(128, 0, data.HasValue ? data.Value : 0); } } if (num != 0 && num3 != 0) { int num4 = Terrain.ExtractData(num3); int color = PaintBucketBlock.GetColor(Terrain.ExtractData(num)); int damage = BlocksManager.Blocks[129].GetDamage(num); Block block = BlocksManager.Blocks[129]; int num5 = PaintBucketBlock.CombineColors(num4, color); if (num5 != num4) { return(new CraftingRecipe { ResultCount = 1, ResultValue = Terrain.MakeBlockValue(208, 0, num5), RemainsCount = 1, RemainsValue = BlocksManager.DamageItem(Terrain.MakeBlockValue(129, 0, color), damage + MathUtils.Max(block.Durability / 4, 1)), RequiredHeatLevel = 1f, Description = $"Dye carpet {SubsystemPalette.GetName(subsystemTerrain, color, null)}", Ingredients = (string[])ingredients.Clone() }); } } if (num2 != 0 && num3 != 0) { int num6 = Terrain.ExtractData(num3); int damage2 = BlocksManager.Blocks[128].GetDamage(num2); Block block2 = BlocksManager.Blocks[128]; if (num6 != 0) { return(new CraftingRecipe { ResultCount = 1, ResultValue = Terrain.MakeBlockValue(208, 0, 0), RemainsCount = 1, RemainsValue = BlocksManager.DamageItem(Terrain.MakeBlockValue(128, 0, 0), damage2 + MathUtils.Max(block2.Durability / 4, 1)), RequiredHeatLevel = 1f, Description = "Undye carpet", Ingredients = (string[])ingredients.Clone() }); } } } return(null); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int value2 = Terrain.ExtractData(value); return(SubsystemPalette.GetName(subsystemTerrain, value2, "µØ̺")); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { return(SubsystemPalette.GetName(subsystemTerrain, Utils.GetColor(value), DefaultDisplayName)); }
public static CraftingRecipe GetAdHocCraftingRecipe(int index, SubsystemTerrain subsystemTerrain, string[] ingredients, float heatLevel) { if (heatLevel < 1f) { return(null); } int i = 0, num = 0; var array = new string[2]; for (; i < ingredients.Length; i++) { if (!string.IsNullOrEmpty(ingredients[i])) { if (num > 1) { return(null); } array[num] = ingredients[i]; num++; } } if (num != 2) { return(null); } num = 0; int num2 = 0; int num3 = 0; for (i = 0; i < array.Length; i++) { string item = array[i]; CraftingRecipesManager.DecodeIngredient(item, out string craftingId, out int?data); int d = data ?? 0; if (craftingId == BlocksManager.Blocks[index].CraftingId) { num3 = Terrain.MakeBlockValue(index, 0, d); } else if (craftingId == BlocksManager.Blocks[129].CraftingId) { num = Terrain.MakeBlockValue(129, 0, d); } else if (craftingId == BlocksManager.Blocks[128].CraftingId) { num2 = Terrain.MakeBlockValue(128, 0, d); } } if (num != 0 && num3 != 0) { int num4 = GetColor(Terrain.ExtractData(num3)); int color = PaintBucketBlock.GetColor(Terrain.ExtractData(num)); int num5 = PaintBucketBlock.CombineColors(num4, color); if (num5 != num4) { return(new CraftingRecipe { ResultCount = 1, ResultValue = Terrain.MakeBlockValue(index, 0, SetColor(Terrain.ExtractData(num3), num5)), RemainsCount = 1, RemainsValue = BlocksManager.DamageItem(Terrain.MakeBlockValue(129, 0, color), BlocksManager.Blocks[129].GetDamage(num) + 1), RequiredHeatLevel = 1f, Description = "Dye tool " + SubsystemPalette.GetName(subsystemTerrain, color, null), Ingredients = (string[])ingredients.Clone() }); } } if (num2 != 0 && num3 != 0) { if (GetColor(num3) != 0) { return(new CraftingRecipe { ResultCount = 1, ResultValue = Terrain.MakeBlockValue(index, 0, SetColor(Terrain.ExtractData(num3), 0)), RemainsCount = 1, RemainsValue = BlocksManager.DamageItem(128, BlocksManager.Blocks[128].GetDamage(num2) + 1), RequiredHeatLevel = 1f, Description = "Undye tool", Ingredients = (string[])ingredients.Clone() }); } } return(null); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int?color = GetColor(Terrain.ExtractData(value)); return(SubsystemPalette.GetName(subsystemTerrain, color, base.GetDisplayName(subsystemTerrain, value))); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { return(SubsystemPalette.GetName(subsystemTerrain, GetPaintColor(value), Terrain.ExtractData(value) >> 10 != 0 ? Names[(Terrain.ExtractData(value) >> 10) - 1] : DefaultDisplayName)); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int data = Terrain.ExtractData(value); return(SubsystemPalette.GetName(subsystemTerrain, GetColor(data), LanguageControl.GetBlock(string.Format("{0}:{1}", GetType().Name, data.ToString()), "DisplayName"))); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int?paintColor = GetPaintColor(value); return(SubsystemPalette.GetName(subsystemTerrain, paintColor, base.GetDisplayName(subsystemTerrain, value))); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int index = Terrain.ExtractData(value) >> 13 & 15; return(SubsystemPalette.GetName(subsystemTerrain, index == 0 ? default(int?) : index, GetType(value).ToString())); }
public override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) { int?color = GetColor(Terrain.ExtractData(value)); return(SubsystemPalette.GetName(subsystemTerrain, color, LanguageControl.Get(fName, 1))); }