Skip to content

Commit a7f26c7

Browse files
author
Kirtle
committed
Added back the Infinity Upgrade
Introduced the Mirror Wand, no functionality in it yet.
1 parent c9d834a commit a7f26c7

File tree

10 files changed

+101
-30
lines changed

10 files changed

+101
-30
lines changed

Buffs/InfinitePlacementBuff.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Terraria;
22
using Terraria.ModLoader;
3+
using static BuilderEssentials.BuilderPlayer;
34

45
namespace BuilderEssentials.Buffs
56
{
@@ -17,7 +18,10 @@ public override void SetDefaults()
1718

1819
public override void Update(Player player, ref int buffIndex)
1920
{
20-
//player.GetModPlayer<BuilderPlayer>().InfinitePlacement = true;
21+
BuilderPlayer modPlayer = player.GetModPlayer<BuilderPlayer>();
22+
23+
if (!modPlayer.creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.InfinityUpgrade))
24+
modPlayer.creativeWheelSelectedIndex.Add((int)CreativeWheelItem.InfinityUpgrade);
2125
}
2226
}
2327
}

BuilderPlayer.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ public enum CreativeWheelItem : int
2929
ItemPicker,
3030
InfinitePlacement,
3131
AutoHammer,
32-
PlacementAnywhere
32+
PlacementAnywhere,
33+
34+
//Non important order (independent items)
35+
InfinityUpgrade
3336
}
3437

3538

@@ -67,6 +70,7 @@ public override void ResetEffects()
6770

6871
//Closing the creative wheel if the held item isn't air
6972
if (player.whoAmI == Main.myPlayer)
73+
{
7074
if (!player.inventory[player.selectedItem].IsAir)
7175
{
7276
if (BasePanel.creativeWheelPanel != null)
@@ -76,6 +80,11 @@ public override void ResetEffects()
7680
BasePanel.isCreativeWheelVisible = false;
7781
}
7882
}
83+
84+
if (creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.InfinityUpgrade)
85+
&& !player.HasBuff(mod.BuffType("InfinitePlacementBuff")))
86+
creativeWheelSelectedIndex.Remove((int)CreativeWheelItem.InfinityUpgrade);
87+
}
7988
}
8089

8190
public override void ProcessTriggers(TriggersSet triggersSet)

Items/Accessories/CreativeWrench.cs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,14 @@ public override void UpdateAccessory(Player player, bool hideVisual)
9090
}
9191
}
9292

93-
94-
//Infinite Placement Stuff
9593
public class InfinitePlacementTile : GlobalTile
9694
{
9795
public override bool CanPlace(int i, int j, int type)
9896
{
9997
BuilderPlayer modPlayer = Main.LocalPlayer.GetModPlayer<BuilderPlayer>();
10098
Tile tile = Main.tile[Player.tileTargetX, Player.tileTargetY];
99+
100+
//Placement Anywhere
101101
if (modPlayer.creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.PlacementAnywhere) && !tile.active())
102102
{
103103
Item selectedItem = Main.LocalPlayer.inventory[Main.LocalPlayer.selectedItem];
@@ -120,10 +120,15 @@ public override bool CanPlace(int i, int j, int type)
120120
return base.CanPlace(i, j, type);
121121
}
122122

123+
//Infinite Placement Stuff
123124
public override void PlaceInWorld(int i, int j, Item item)
124125
{
125126
BuilderPlayer modPlayer = Main.LocalPlayer.GetModPlayer<BuilderPlayer>();
126-
item.consumable = modPlayer.creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.InfinitePlacement) ? false : true;
127+
if (modPlayer.creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.InfinitePlacement)
128+
|| modPlayer.creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.InfinityUpgrade))
129+
item.consumable = false;
130+
else
131+
item.consumable = true;
127132
}
128133
}
129134

@@ -132,7 +137,11 @@ public class InfinitePlacementWall : GlobalWall
132137
public override void PlaceInWorld(int i, int j, int type, Item item)
133138
{
134139
BuilderPlayer modPlayer = Main.LocalPlayer.GetModPlayer<BuilderPlayer>();
135-
item.consumable = modPlayer.creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.InfinitePlacement) ? false : true;
140+
if (modPlayer.creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.InfinityUpgrade)
141+
|| modPlayer.creativeWheelSelectedIndex.Contains((int)CreativeWheelItem.InfinitePlacement))
142+
item.consumable = false;
143+
else
144+
item.consumable = true;
136145
}
137146
}
138147
}

Items/Accessories/InfinityUpgrade.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
using Terraria;
77
using Terraria.ID;
88
using Terraria.ModLoader;
9+
using static BuilderEssentials.BuilderPlayer;
910

1011
namespace BuilderEssentials.Items.Accessories
1112
{
1213
class InfinityUpgrade : ModItem
1314
{
1415
public override void SetStaticDefaults()
1516
{
16-
DisplayName.SetDefault("Infinity Upgrade (Disabled temporarily)");
17+
DisplayName.SetDefault("Infinity Upgrade");
1718
Tooltip.SetDefault("Allows infinite placement");
1819
}
1920

@@ -29,23 +30,22 @@ public override void SetDefaults()
2930

3031
public override void UpdateAccessory(Player player, bool hideVisual)
3132
{
32-
//player.AddBuff(mod.BuffType("InfinitePlacementBuff"), 10);
33+
BuilderPlayer modPlayer = player.GetModPlayer<BuilderPlayer>();
34+
player.AddBuff(mod.BuffType("InfinitePlacementBuff"), 10);
3335
}
3436

3537
public override void AddRecipes()
3638
{
3739
//Not really worried about balancing at this point
38-
39-
40-
//ModRecipe modRecipe = new ModRecipe(mod);
41-
//modRecipe.AddIngredient(ItemID.LunarBar, 40);
42-
//modRecipe.AddIngredient(ItemID.FragmentNebula, 20);
43-
//modRecipe.AddIngredient(ItemID.FragmentSolar, 20);
44-
//modRecipe.AddIngredient(ItemID.FragmentStardust, 20);
45-
//modRecipe.AddIngredient(ItemID.FragmentVortex, 20);
46-
//modRecipe.AddTile(TileID.LunarCraftingStation);
47-
//modRecipe.SetResult(this);
48-
//modRecipe.AddRecipe();
40+
ModRecipe modRecipe = new ModRecipe(mod);
41+
modRecipe.AddIngredient(ItemID.LunarBar, 40);
42+
modRecipe.AddIngredient(ItemID.FragmentNebula, 20);
43+
modRecipe.AddIngredient(ItemID.FragmentSolar, 20);
44+
modRecipe.AddIngredient(ItemID.FragmentStardust, 20);
45+
modRecipe.AddIngredient(ItemID.FragmentVortex, 20);
46+
modRecipe.AddTile(TileID.LunarCraftingStation);
47+
modRecipe.SetResult(this);
48+
modRecipe.AddRecipe();
4949
}
5050
}
5151
}

Items/MirrorWand.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using BuilderEssentials.UI;
2+
using Terraria;
3+
using Terraria.ID;
4+
using Terraria.ModLoader;
5+
6+
namespace BuilderEssentials.Items
7+
{
8+
class MirrorWand : ModItem
9+
{
10+
public override void SetStaticDefaults()
11+
{
12+
Tooltip.SetDefault("Mirrors everything!");
13+
Item.staff[item.type] = true;
14+
}
15+
public override void SetDefaults()
16+
{
17+
item.height = 20;
18+
item.width = 18;
19+
item.useTime = 1;
20+
item.useAnimation = 10;
21+
//item.useStyle = ItemUseStyleID.HoldingOut;
22+
item.value = Item.buyPrice(0, 10, 0, 0);
23+
item.rare = ItemRarityID.Red;
24+
item.UseSound = SoundID.Item1;
25+
item.autoReuse = false;
26+
item.noMelee = true;
27+
item.noUseGraphic = true;
28+
}
29+
30+
public override bool AltFunctionUse(Player player) //Right click
31+
{
32+
int posX = Player.tileTargetX;
33+
int posY = Player.tileTargetY;
34+
Tile tile = Main.tile[posX, posY];
35+
36+
//Draw Semi Transparent "Tiles"?
37+
38+
return true;
39+
}
40+
41+
42+
}
43+
}

Items/MirrorWand.png

215 Bytes
Loading

UI/BasePanel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public override void Update(GameTime gameTime)
107107
hoverText = null;
108108
}
109109

110-
//Don't need to actual list itself, just a reference of it
110+
//Don't need the actual list itself, just a reference of it
111111
var elementsList = CreativeWheelRework.CreativeWheelElements;
112112
string text = "";
113113
foreach (var element in hoveredElements)

UI/CreativeWheelRework.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,13 @@ private static void CreateLayout()
6868
//Correct display of previously toggled settings
6969
foreach (int selectedItem in modPlayer.creativeWheelSelectedIndex)
7070
{
71-
CreativeWheelElements[selectedItem].SetVisibility(1f, 1f);
72-
if (selectedItem == 2) //AutoHammer
73-
CreateHammerLayout(modPlayer.autoHammerSelectedIndex);
71+
//Required because only the first 4 indexes correspond to actual CW Elements
72+
if (selectedItem < 4)
73+
{
74+
CreativeWheelElements[selectedItem].SetVisibility(1f, 1f);
75+
if (selectedItem == 2) //AutoHammer
76+
CreateHammerLayout(modPlayer.autoHammerSelectedIndex);
77+
}
7478
}
7579

7680
//Append them to the Main Panel
@@ -100,7 +104,6 @@ private static void MainElementClick(int index)
100104
RemoveHammerLayout();
101105
break;
102106
case 3: //PlacementAnywhere
103-
//Main.NewText("Placement Anywhere: Still in development, currently does nothing!");
104107
break;
105108
}
106109

@@ -110,7 +113,11 @@ void ResetVisibility()
110113
CreativeWheelElements[i].SetVisibility(.75f, .4f);
111114

112115
foreach (int activeElement in modPlayer.creativeWheelSelectedIndex)
113-
CreativeWheelElements[activeElement].SetVisibility(1f, 1f);
116+
{
117+
//Only indexes smaller than 4 corresponde to actual CW Elements
118+
if (activeElement < 4)
119+
CreativeWheelElements[activeElement].SetVisibility(1f, 1f);
120+
}
114121
}
115122
}
116123

build.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
displayName = Builder Essentials
22
author = Kirtle
3-
version = 0.1.10.1
3+
version = 0.1.10.3
44
buildIgnore = *.csproj, *.user, obj\*, bin\*, .vs\*
5-
homepage = https://forums.terraria.org/index.php?threads/builder-essentials.94175/
5+
homepage = https://discord.gg/wQYMbQq

description.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@ For more info/previews check the mod's Homepage!
1010
Happy Building! Kirtle
1111

1212
Latest Changelog:
13-
- Crafting Stations sprites have been updated as well as the Super Painting Tool sprites
14-
- Completely redone some UI's (code wise) and fixed a few more bugs
15-
- Super Painting Tool now works in multiplayer (except for the paint scraper, for now)
1613
- Super Painting Tool now supports Vanilla Paints
1714
- Added the Placement Anywhere feature to the Creative Wrench
15+
- Fixed a bug where the secondary accessory system would duplicate accessories
16+
- Added tooltips on hover to the Creative Wrench Elements
1817

1918

2019
Sprites are being done by Strunter.

0 commit comments

Comments
 (0)