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

◆ MassWireOperationStep()

static ? bool Terraria.Wiring.MassWireOperationStep ( Player user,
Point pt,
WiresUI::Settings::MultiToolMode mode,
ref int wiresLeftToConsume,
ref int actuatorsLeftToConstume )
inlinestaticprivate

Definition at line 2978 of file Wiring.cs.

2979 {
2980 if (!WorldGen.InWorld(pt.X, pt.Y, 1))
2981 {
2982 return null;
2983 }
2984 Tile tile = Main.tile[pt.X, pt.Y];
2985 if (tile == null)
2986 {
2987 return null;
2988 }
2989 if (user != null && !user.CanDoWireStuffHere(pt.X, pt.Y))
2990 {
2991 return null;
2992 }
2993 if (!mode.HasFlag(WiresUI.Settings.MultiToolMode.Cutter))
2994 {
2995 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Red) && !tile.wire())
2996 {
2997 if (wiresLeftToConsume <= 0)
2998 {
2999 return false;
3000 }
3002 WorldGen.PlaceWire(pt.X, pt.Y);
3003 NetMessage.SendData(17, -1, -1, null, 5, pt.X, pt.Y);
3004 }
3005 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Green) && !tile.wire3())
3006 {
3007 if (wiresLeftToConsume <= 0)
3008 {
3009 return false;
3010 }
3012 WorldGen.PlaceWire3(pt.X, pt.Y);
3013 NetMessage.SendData(17, -1, -1, null, 12, pt.X, pt.Y);
3014 }
3015 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Blue) && !tile.wire2())
3016 {
3017 if (wiresLeftToConsume <= 0)
3018 {
3019 return false;
3020 }
3022 WorldGen.PlaceWire2(pt.X, pt.Y);
3023 NetMessage.SendData(17, -1, -1, null, 10, pt.X, pt.Y);
3024 }
3025 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Yellow) && !tile.wire4())
3026 {
3027 if (wiresLeftToConsume <= 0)
3028 {
3029 return false;
3030 }
3032 WorldGen.PlaceWire4(pt.X, pt.Y);
3033 NetMessage.SendData(17, -1, -1, null, 16, pt.X, pt.Y);
3034 }
3035 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Actuator) && !tile.actuator())
3036 {
3037 if (actuatorsLeftToConstume <= 0)
3038 {
3039 return false;
3040 }
3042 WorldGen.PlaceActuator(pt.X, pt.Y);
3043 NetMessage.SendData(17, -1, -1, null, 8, pt.X, pt.Y);
3044 }
3045 }
3046 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Cutter))
3047 {
3048 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Red) && tile.wire() && WorldGen.KillWire(pt.X, pt.Y))
3049 {
3050 NetMessage.SendData(17, -1, -1, null, 6, pt.X, pt.Y);
3051 }
3052 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Green) && tile.wire3() && WorldGen.KillWire3(pt.X, pt.Y))
3053 {
3054 NetMessage.SendData(17, -1, -1, null, 13, pt.X, pt.Y);
3055 }
3056 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Blue) && tile.wire2() && WorldGen.KillWire2(pt.X, pt.Y))
3057 {
3058 NetMessage.SendData(17, -1, -1, null, 11, pt.X, pt.Y);
3059 }
3060 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Yellow) && tile.wire4() && WorldGen.KillWire4(pt.X, pt.Y))
3061 {
3062 NetMessage.SendData(17, -1, -1, null, 17, pt.X, pt.Y);
3063 }
3064 if (mode.HasFlag(WiresUI.Settings.MultiToolMode.Actuator) && tile.actuator() && WorldGen.KillActuator(pt.X, pt.Y))
3065 {
3066 NetMessage.SendData(17, -1, -1, null, 9, pt.X, pt.Y);
3067 }
3068 }
3069 return true;
3070 }

References Terraria.Tile.actuator(), Terraria.WorldGen.InWorld(), Terraria.WorldGen.KillActuator(), Terraria.WorldGen.KillWire(), Terraria.WorldGen.KillWire2(), Terraria.WorldGen.KillWire3(), Terraria.WorldGen.KillWire4(), Terraria.WorldGen.PlaceActuator(), Terraria.WorldGen.PlaceWire(), Terraria.WorldGen.PlaceWire2(), Terraria.WorldGen.PlaceWire3(), Terraria.WorldGen.PlaceWire4(), Terraria.NetMessage.SendData(), Terraria.Main.tile, Terraria.Tile.wire(), Terraria.Tile.wire2(), Terraria.Tile.wire3(), and Terraria.Tile.wire4().