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