Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ItemCheck_UseWiringTools()

void Terraria.Player.ItemCheck_UseWiringTools ( Item sItem)
inlineprivate

Definition at line 44535 of file Player.cs.

44536 {
44537 if ((sItem.type != 509 && sItem.type != 510 && sItem.type != 849 && sItem.type != 850 && sItem.type != 851 && sItem.type != 3612 && sItem.type != 3620 && sItem.type != 3625) || !(position.X / 16f - (float)tileRangeX - (float)sItem.tileBoost - (float)blockRange <= (float)tileTargetX) || !((position.X + (float)width) / 16f + (float)tileRangeX + (float)sItem.tileBoost - 1f + (float)blockRange >= (float)tileTargetX) || !(position.Y / 16f - (float)tileRangeY - (float)sItem.tileBoost - (float)blockRange <= (float)tileTargetY) || !((position.Y + (float)height) / 16f + (float)tileRangeY + (float)sItem.tileBoost - 2f + (float)blockRange >= (float)tileTargetY))
44538 {
44539 return;
44540 }
44541 if (!Main.GamepadDisableCursorItemIcon)
44542 {
44543 cursorItemIconEnabled = true;
44544 Main.ItemIconCacheUpdate(sItem.type);
44545 }
44547 {
44548 return;
44549 }
44550 int num = tileTargetX;
44551 int num2 = tileTargetY;
44552 if (sItem.type == 509)
44553 {
44554 int num3 = -1;
44555 for (int i = 0; i < 58; i++)
44556 {
44557 if (inventory[i].stack > 0 && inventory[i].type == 530)
44558 {
44559 num3 = i;
44560 break;
44561 }
44562 }
44563 if (num3 >= 0 && WorldGen.PlaceWire(num, num2))
44564 {
44565 inventory[num3].stack--;
44566 if (inventory[num3].stack <= 0)
44567 {
44569 }
44571 NetMessage.SendData(17, -1, -1, null, 5, tileTargetX, tileTargetY);
44572 }
44573 }
44574 else if (sItem.type == 850)
44575 {
44576 int num4 = -1;
44577 for (int j = 0; j < 58; j++)
44578 {
44579 if (inventory[j].stack > 0 && inventory[j].type == 530)
44580 {
44581 num4 = j;
44582 break;
44583 }
44584 }
44585 if (num4 >= 0 && WorldGen.PlaceWire2(num, num2))
44586 {
44587 inventory[num4].stack--;
44588 if (inventory[num4].stack <= 0)
44589 {
44591 }
44593 NetMessage.SendData(17, -1, -1, null, 10, tileTargetX, tileTargetY);
44594 }
44595 }
44596 if (sItem.type == 851)
44597 {
44598 int num5 = -1;
44599 for (int k = 0; k < 58; k++)
44600 {
44601 if (inventory[k].stack > 0 && inventory[k].type == 530)
44602 {
44603 num5 = k;
44604 break;
44605 }
44606 }
44607 if (num5 >= 0 && WorldGen.PlaceWire3(num, num2))
44608 {
44609 inventory[num5].stack--;
44610 if (inventory[num5].stack <= 0)
44611 {
44613 }
44615 NetMessage.SendData(17, -1, -1, null, 12, tileTargetX, tileTargetY);
44616 }
44617 }
44618 if (sItem.type == 3612)
44619 {
44620 int num6 = -1;
44621 for (int l = 0; l < 58; l++)
44622 {
44623 if (inventory[l].stack > 0 && inventory[l].type == 530)
44624 {
44625 num6 = l;
44626 break;
44627 }
44628 }
44629 if (num6 >= 0 && WorldGen.PlaceWire4(num, num2))
44630 {
44631 inventory[num6].stack--;
44632 if (inventory[num6].stack <= 0)
44633 {
44635 }
44637 NetMessage.SendData(17, -1, -1, null, 16, tileTargetX, tileTargetY);
44638 }
44639 }
44640 else if (sItem.type == 510)
44641 {
44642 if (WorldGen.KillActuator(num, num2))
44643 {
44645 NetMessage.SendData(17, -1, -1, null, 9, tileTargetX, tileTargetY);
44646 }
44647 else if (WorldGen.KillWire4(num, num2))
44648 {
44650 NetMessage.SendData(17, -1, -1, null, 17, tileTargetX, tileTargetY);
44651 }
44652 else if (WorldGen.KillWire3(num, num2))
44653 {
44655 NetMessage.SendData(17, -1, -1, null, 13, tileTargetX, tileTargetY);
44656 }
44657 else if (WorldGen.KillWire2(num, num2))
44658 {
44660 NetMessage.SendData(17, -1, -1, null, 11, tileTargetX, tileTargetY);
44661 }
44662 else if (WorldGen.KillWire(num, num2))
44663 {
44665 NetMessage.SendData(17, -1, -1, null, 6, tileTargetX, tileTargetY);
44666 }
44667 }
44668 else if (sItem.type == 849 && sItem.stack > 0 && WorldGen.PlaceActuator(num, num2))
44669 {
44671 NetMessage.SendData(17, -1, -1, null, 8, tileTargetX, tileTargetY);
44672 sItem.stack--;
44673 if (sItem.stack <= 0)
44674 {
44675 sItem.SetDefaults();
44676 }
44677 }
44678 if (sItem.type == 3620)
44679 {
44680 Tile tile = Main.tile[num, num2];
44681 if (tile != null && tile.actuator())
44682 {
44683 bool flag = tile.inActive();
44684 if ((!ActuationRodLock || ActuationRodLockSetting == tile.inActive()) && Wiring.Actuate(num, num2) && flag != tile.inActive())
44685 {
44686 ActuationRodLock = true;
44687 ActuationRodLockSetting = !tile.inActive();
44689 NetMessage.SendData(17, -1, -1, null, 19, tileTargetX, tileTargetY);
44690 }
44691 }
44692 }
44693 if (sItem.type == 3625)
44694 {
44695 Point point = new Point(tileTargetX, tileTargetY);
44698 WiresUI.Settings.ToolMode &= ~WiresUI.Settings.MultiToolMode.Actuator;
44699 if (Main.netMode == 1)
44700 {
44701 NetMessage.SendData(109, -1, -1, null, point.X, point.Y, point.X, point.Y, (int)WiresUI.Settings.ToolMode);
44702 }
44703 else
44704 {
44705 Wiring.MassWireOperation(point, point, this);
44706 }
44707 WiresUI.Settings.ToolMode = toolMode;
44708 }
44709 }
Vector2 position
Definition Entity.cs:14
int stack
Definition Item.cs:149
void SetDefaults(int Type=0)
Definition Item.cs:47332
void ApplyItemTime(Item sItem)
Definition Player.cs:3752
bool cursorItemIconEnabled
Definition Player.cs:1489
bool ItemTimeIsZero
Definition Player.cs:3525
bool ActuationRodLockSetting
Definition Player.cs:2195
bool ActuationRodLock
Definition Player.cs:2193
static int tileTargetY
Definition Player.cs:2085
static int tileRangeX
Definition Player.cs:2075
bool CanDoWireStuffHere(int x, int y)
Definition Player.cs:44711
static int tileTargetX
Definition Player.cs:2083
static int tileRangeY
Definition Player.cs:2077
Item[] inventory
Definition Player.cs:1257
bool controlUseItem
Definition Player.cs:1391

References Terraria.Wiring.Actuate(), Terraria.Tile.actuator(), Terraria.Main.GamepadDisableCursorItemIcon, Terraria.Tile.inActive(), Terraria.Main.ItemIconCacheUpdate(), Terraria.WorldGen.KillActuator(), Terraria.WorldGen.KillWire(), Terraria.WorldGen.KillWire2(), Terraria.WorldGen.KillWire3(), Terraria.WorldGen.KillWire4(), Terraria.Wiring.MassWireOperation(), Terraria.Main.netMode, Terraria.WorldGen.PlaceActuator(), Terraria.WorldGen.PlaceWire(), Terraria.WorldGen.PlaceWire2(), Terraria.WorldGen.PlaceWire3(), Terraria.WorldGen.PlaceWire4(), Terraria.NetMessage.SendData(), Terraria.Item.SetDefaults(), Terraria.Item.stack, Terraria.Main.tile, Terraria.GameContent.UI.WiresUI.Settings.ToolMode, System.type, Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.