diff --git a/LifeSourcesLight/LifeSourcesLight.cs b/LifeSourcesLight/LifeSourcesLight.cs new file mode 100644 index 0000000..5f7bd47 --- /dev/null +++ b/LifeSourcesLight/LifeSourcesLight.cs @@ -0,0 +1,17 @@ +using Terraria.ModLoader; +using Terraria; +using Terraria.ID; + +namespace LifeSourcesLight +{ + public class LifeSourcesLight : Mod + { + public override void Load() + { + Main.tileLighted[TileID.Heart] = true; + Main.tileLighted[TileID.LifeFruit] = true; + + base.Load(); + } + } +} \ No newline at end of file diff --git a/LifeSourcesLight/LifeSourcesLight.csproj b/LifeSourcesLight/LifeSourcesLight.csproj new file mode 100644 index 0000000..d2b6580 --- /dev/null +++ b/LifeSourcesLight/LifeSourcesLight.csproj @@ -0,0 +1,13 @@ + + + + + LifeSourcesLight + net6.0 + AnyCPU + latest + + + + + \ No newline at end of file diff --git a/LifeSourcesLight/LightOverrideHeartCrystal.cs b/LifeSourcesLight/LightOverrideHeartCrystal.cs new file mode 100644 index 0000000..cd8c442 --- /dev/null +++ b/LifeSourcesLight/LightOverrideHeartCrystal.cs @@ -0,0 +1,22 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; + +namespace LifeSourcesLight +{ + public class LightOverrideHeartCrystal : GlobalTile + { + // Modify overall light brightness + private static readonly float LifeCrystalBrightCoefficient = 0.7f; + + public override void ModifyLight(int i, int j, int type, ref float r, ref float g, ref float b) + { + if (type == TileID.Heart) + { + r = (255f / 255f) * LifeCrystalBrightCoefficient; + g = (38f / 255f) * LifeCrystalBrightCoefficient; + b = (106f / 255f) * LifeCrystalBrightCoefficient; + } + } + } +} diff --git a/LifeSourcesLight/LightOverrideLifeFruit.cs b/LifeSourcesLight/LightOverrideLifeFruit.cs new file mode 100644 index 0000000..4a76e4d --- /dev/null +++ b/LifeSourcesLight/LightOverrideLifeFruit.cs @@ -0,0 +1,22 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; + +namespace LifeSourcesLight +{ + public class LightOverrideLifeFruit : GlobalTile + { + // Modify overall light brightness + private static readonly float LifeFruitBrightCoefficient = 0.7f; + + public override void ModifyLight(int i, int j, int type, ref float r, ref float g, ref float b) + { + if (type == TileID.LifeFruit) + { + r = (170f / 255f) * LifeFruitBrightCoefficient; + g = (221f / 255f) * LifeFruitBrightCoefficient; + b = (43f / 255f) * LifeFruitBrightCoefficient; + } + } + } +} diff --git a/LifeSourcesLight/Properties/launchSettings.json b/LifeSourcesLight/Properties/launchSettings.json new file mode 100644 index 0000000..8da89ff --- /dev/null +++ b/LifeSourcesLight/Properties/launchSettings.json @@ -0,0 +1,16 @@ +{ + "profiles": { + "Terraria": { + "commandName": "Executable", + "executablePath": "dotnet", + "commandLineArgs": "$(tMLPath)", + "workingDirectory": "$(tMLSteamPath)" + }, + "TerrariaServer": { + "commandName": "Executable", + "executablePath": "dotnet", + "commandLineArgs": "$(tMLServerPath)", + "workingDirectory": "$(tMLSteamPath)" + } + } +} \ No newline at end of file diff --git a/LifeSourcesLight/build.txt b/LifeSourcesLight/build.txt new file mode 100644 index 0000000..e7267d3 --- /dev/null +++ b/LifeSourcesLight/build.txt @@ -0,0 +1,5 @@ +displayName = Heart Crystal & Life Fruit Glow +author = Chev +version = 1.0.0 +homepage = https://github.com/chev2/terraria-mods +side = Client diff --git a/LifeSourcesLight/description.txt b/LifeSourcesLight/description.txt new file mode 100644 index 0000000..93bd3ca --- /dev/null +++ b/LifeSourcesLight/description.txt @@ -0,0 +1 @@ +Makes heart crystals & life fruits emit light. diff --git a/LifeSourcesLight/icon.png b/LifeSourcesLight/icon.png new file mode 100644 index 0000000..a84b199 Binary files /dev/null and b/LifeSourcesLight/icon.png differ diff --git a/README.md b/README.md index 58611d7..f579282 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ # terraria-mods My mods for Terraria's tModLoader. + +## Mods list + +* **LifeSourcesLight** - Makes heart crystals & life fruits emit light. +* **ZenithRecipeTooltips** - Shows "Required for Zenith" in the tooltips of every sword used in the Zenith crafting recipe. diff --git a/ZenithRecipeTooltips/HookZenithIngredientTooltips.cs b/ZenithRecipeTooltips/HookZenithIngredientTooltips.cs new file mode 100644 index 0000000..60a2fe5 --- /dev/null +++ b/ZenithRecipeTooltips/HookZenithIngredientTooltips.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; + +namespace ZenithRecipeTooltips +{ + public class HookZenithIngredientTooltips : GlobalItem + { + private static readonly Dictionary RecipeItemIDs = new() + { + { ItemID.CopperShortsword, true }, + { ItemID.EnchantedSword, true }, + { ItemID.BeeKeeper, true }, + { ItemID.Starfury, true }, + { ItemID.Seedler, true }, + { ItemID.TheHorsemansBlade, true }, + { ItemID.InfluxWaver, true }, + { ItemID.StarWrath, true }, + { ItemID.Meowmere, true }, + { ItemID.TerraBlade, true } + }; + + private static readonly string TooltipPrefixColor = "E10643"; + + private static bool IsMaterialTooltip(TooltipLine line) + { + return line.Name == "Material"; + } + + public override void ModifyTooltips(Item item, List tooltips) + { + if (RecipeItemIDs.ContainsKey(item.type)) + { + TooltipLine tooltip = new(Mod, "RequiredForZenith", $"[c/{TooltipPrefixColor}:Required for Zenith]"); + + int materialLineIndex = tooltips.FindIndex(IsMaterialTooltip); + + // If we found the index where the "Material" tooltip is + if (materialLineIndex > 0) + { + tooltips.Insert(materialLineIndex + 1, tooltip); + // If we didn't, just append it to the end + } else + { + tooltips.Add(tooltip); + } + } + + base.ModifyTooltips(item, tooltips); + } + } +} diff --git a/ZenithRecipeTooltips/Properties/launchSettings.json b/ZenithRecipeTooltips/Properties/launchSettings.json new file mode 100644 index 0000000..8da89ff --- /dev/null +++ b/ZenithRecipeTooltips/Properties/launchSettings.json @@ -0,0 +1,16 @@ +{ + "profiles": { + "Terraria": { + "commandName": "Executable", + "executablePath": "dotnet", + "commandLineArgs": "$(tMLPath)", + "workingDirectory": "$(tMLSteamPath)" + }, + "TerrariaServer": { + "commandName": "Executable", + "executablePath": "dotnet", + "commandLineArgs": "$(tMLServerPath)", + "workingDirectory": "$(tMLSteamPath)" + } + } +} \ No newline at end of file diff --git a/ZenithRecipeTooltips/ZenithRecipeTooltips.cs b/ZenithRecipeTooltips/ZenithRecipeTooltips.cs new file mode 100644 index 0000000..f411c51 --- /dev/null +++ b/ZenithRecipeTooltips/ZenithRecipeTooltips.cs @@ -0,0 +1,8 @@ +using Terraria.ModLoader; + +namespace ZenithRecipeTooltips +{ + public class ZenithRecipeTooltips : Mod + { + } +} \ No newline at end of file diff --git a/ZenithRecipeTooltips/ZenithRecipeTooltips.csproj b/ZenithRecipeTooltips/ZenithRecipeTooltips.csproj new file mode 100644 index 0000000..8905caf --- /dev/null +++ b/ZenithRecipeTooltips/ZenithRecipeTooltips.csproj @@ -0,0 +1,13 @@ + + + + + ZenithRecipeTooltips + net6.0 + AnyCPU + latest + + + + + \ No newline at end of file diff --git a/ZenithRecipeTooltips/build.txt b/ZenithRecipeTooltips/build.txt new file mode 100644 index 0000000..409b430 --- /dev/null +++ b/ZenithRecipeTooltips/build.txt @@ -0,0 +1,5 @@ +displayName = Zenith Recipe Tooltips +author = Chev +version = 1.0.0 +homepage = https://github.com/chev2/terraria-mods +side = Client diff --git a/ZenithRecipeTooltips/description.txt b/ZenithRecipeTooltips/description.txt new file mode 100644 index 0000000..f65a176 --- /dev/null +++ b/ZenithRecipeTooltips/description.txt @@ -0,0 +1 @@ +Shows "Required for Zenith" in the tooltips of every sword used in the Zenith crafting recipe. \ No newline at end of file diff --git a/ZenithRecipeTooltips/icon.png b/ZenithRecipeTooltips/icon.png new file mode 100644 index 0000000..113ad8b Binary files /dev/null and b/ZenithRecipeTooltips/icon.png differ