diff --git a/TombstoneDeathMod2/.vs/TombstoneDeathMod2/v15/.suo b/TombstoneDeathMod2/.vs/TombstoneDeathMod2/v15/.suo index 41894f1..c508fe8 100755 Binary files a/TombstoneDeathMod2/.vs/TombstoneDeathMod2/v15/.suo and b/TombstoneDeathMod2/.vs/TombstoneDeathMod2/v15/.suo differ diff --git a/TombstoneDeathMod2/.vs/TombstoneDeathMod2/v15/Server/sqlite3/storage.ide b/TombstoneDeathMod2/.vs/TombstoneDeathMod2/v15/Server/sqlite3/storage.ide index b2486d4..eb4c774 100755 Binary files a/TombstoneDeathMod2/.vs/TombstoneDeathMod2/v15/Server/sqlite3/storage.ide and b/TombstoneDeathMod2/.vs/TombstoneDeathMod2/v15/Server/sqlite3/storage.ide differ diff --git a/TombstoneDeathMod2/GlobalTombstone.cs b/TombstoneDeathMod2/GlobalTombstone.cs index 64c3165..c9d45eb 100755 --- a/TombstoneDeathMod2/GlobalTombstone.cs +++ b/TombstoneDeathMod2/GlobalTombstone.cs @@ -12,7 +12,7 @@ using System.IO; using Terraria.Localization; -namespace TombstoneDeathMod +namespace TombstoneDeathMod2 { public class GlobalTombstone : GlobalTile { diff --git a/TombstoneDeathMod2/PlayerDeathInventory.cs b/TombstoneDeathMod2/PlayerDeathInventory.cs index 94ce6a7..0d562e1 100755 --- a/TombstoneDeathMod2/PlayerDeathInventory.cs +++ b/TombstoneDeathMod2/PlayerDeathInventory.cs @@ -8,7 +8,7 @@ using Terraria.ID; using Terraria.ModLoader; -namespace TombstoneDeathMod +namespace TombstoneDeathMod2 { public class PlayerDeathInventory { diff --git a/TombstoneDeathMod2/TombstoneDeathMod.cs b/TombstoneDeathMod2/TombstoneDeathMod.cs index 9c2d59a..d74998f 100755 --- a/TombstoneDeathMod2/TombstoneDeathMod.cs +++ b/TombstoneDeathMod2/TombstoneDeathMod.cs @@ -10,7 +10,7 @@ using Terraria.Localization; using Terraria.ModLoader; -namespace TombstoneDeathMod +namespace TombstoneDeathMod2 { public class TombstoneDeathMod: Terraria.ModLoader.Mod { diff --git a/TombstoneDeathMod2/TombstoneDeathMod2.csproj b/TombstoneDeathMod2/TombstoneDeathMod2.csproj index 1059276..cb1c945 100755 --- a/TombstoneDeathMod2/TombstoneDeathMod2.csproj +++ b/TombstoneDeathMod2/TombstoneDeathMod2.csproj @@ -2,7 +2,7 @@ - TombstoneDeathMod + TombstoneDeathMod2 net45 x86 latest diff --git a/TombstoneDeathMod2/TombstoneGlobalProjectile.cs b/TombstoneDeathMod2/TombstoneGlobalProjectile.cs index aa5dee7..dcb51d8 100755 --- a/TombstoneDeathMod2/TombstoneGlobalProjectile.cs +++ b/TombstoneDeathMod2/TombstoneGlobalProjectile.cs @@ -8,7 +8,7 @@ using Terraria.ID; using Terraria.ModLoader; -namespace TombstoneDeathMod +namespace TombstoneDeathMod2 { class TombstoneGlobalProjectile : GlobalProjectile { diff --git a/TombstoneDeathMod2/TombstonePlayer.cs b/TombstoneDeathMod2/TombstonePlayer.cs index f349a41..b31de53 100755 --- a/TombstoneDeathMod2/TombstonePlayer.cs +++ b/TombstoneDeathMod2/TombstonePlayer.cs @@ -11,7 +11,7 @@ using Terraria.ModLoader; using Terraria.ModLoader.IO; -namespace TombstoneDeathMod +namespace TombstoneDeathMod2 { public class TombstonePlayer : ModPlayer { diff --git a/TombstoneDeathMod2/bin/Release/net45/Ionic.Zip.Reduced.dll b/TombstoneDeathMod2/bin/Release/net45/Ionic.Zip.Reduced.dll deleted file mode 100755 index 9622cc5..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Ionic.Zip.Reduced.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/MP3Sharp.dll b/TombstoneDeathMod2/bin/Release/net45/MP3Sharp.dll deleted file mode 100755 index 2eef09c..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/MP3Sharp.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Game.dll b/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Game.dll deleted file mode 100755 index 9ba4aa2..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Game.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Graphics.dll b/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Graphics.dll deleted file mode 100755 index 1bf4852..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Graphics.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Xact.dll b/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Xact.dll deleted file mode 100755 index 9681579..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.Xact.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.dll b/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.dll deleted file mode 100755 index a0caf6a..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Microsoft.Xna.Framework.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.Mdb.dll b/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.Mdb.dll deleted file mode 100755 index 18887bc..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.Mdb.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.Pdb.dll b/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.Pdb.dll deleted file mode 100755 index 680524c..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.Pdb.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.dll b/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.dll deleted file mode 100755 index 56b01e9..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Mono.Cecil.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/MonoMod.RuntimeDetour.dll b/TombstoneDeathMod2/bin/Release/net45/MonoMod.RuntimeDetour.dll deleted file mode 100755 index e8c5102..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/MonoMod.RuntimeDetour.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/MonoMod.RuntimeDetour.xml b/TombstoneDeathMod2/bin/Release/net45/MonoMod.RuntimeDetour.xml deleted file mode 100755 index a01efc2..0000000 --- a/TombstoneDeathMod2/bin/Release/net45/MonoMod.RuntimeDetour.xml +++ /dev/null @@ -1,165 +0,0 @@ - - - - MonoMod.RuntimeDetour - - - - - A fully managed detour. - Multiple Detours for a method to detour from can exist at any given time. Detours can be layered. - If you're writing your own detour manager or need to detour native functions, it's better to create instances of NativeDetour instead. - - - - - Mark the detour as applied in the detour chain. This can be done automatically when creating an instance. - - - - - Undo the detour without freeing it, allowing you to reapply it later. - - - - - Free the detour, while also permanently undoing it. This makes any further operations on this detour invalid. - - - - - Undo and free this temporary detour. - - - - - Generate a new DynamicMethod with which you can invoke the previous state. - - - - - Generate a new DynamicMethod with which you can invoke the previous state. - - - - - Generate a new DynamicMethod with which you can invoke the previous state. - - - - - A "raw" native detour, acting as a wrapper around NativeDetourData with a few helpers. - Only one NativeDetour for a method to detour from can exist at any given time. NativeDetours cannot be layered. - If you don't need the trampoline generator or any of the management helpers, use DetourManager.Native directly. - Unless you're writing your own detour manager or need to detour native functions, it's better to create instances of Detour instead. - - - - - Apply the native detour. This can be done automatically when creating an instance. - - - - - Undo the native detour without freeing the detour native data, allowing you to reapply it later. - - - - - Free the detour's data without undoing it. This makes any further operations on this detour invalid. - - - - - Undo and free this temporary detour. - - - - - Generate a new DynamicMethod with which you can invoke the previous state. - If the NativeDetour holds a reference to a managed method, a copy of the original method is returned. - If the NativeDetour holds a reference to a native function, an "undo-call-redo" trampoline with a matching signature is returned. - - - - - Generate a new delegate with which you can invoke the previous state. - If the NativeDetour holds a reference to a managed method, a copy of the original method is returned. - If the NativeDetour holds a reference to a native function, an "undo-call-redo" trampoline with a matching signature is returned. - - - - - Write the given value at the address to + offs, afterwards advancing offs by sizeof(byte). - - - - - Write the given value at the address to + offs, afterwards advancing offs by sizeof(ushort). - - - - - Write the given value at the address to + offs, afterwards advancing offs by sizeof(ushort). - - - - - Write the given value at the address to + offs, afterwards advancing offs by sizeof(ulong). - - - - - Generate a DynamicMethod to easily call the given native function from another DynamicMethod. - - The pointer to the native function to call. - A MethodBase with the target function's signature. - The detoured DynamicMethod. - - - - Fill the DynamicMethodDefinition with a throw. - - - - - Emit a call to DetourManager.Native.Copy using the given parameters. - - - - - Emit a call to DetourManager.Native.Apply using a copy of the given data. - - - - - The data forming a "raw" native detour, created and consumed by DetourManager.Native. - - - - - The method to detour from. Set when the structure is created by the IDetourNativePlatform. - - - - - The target method to be called instead. Set when the structure is created by the IDetourNativePlatform. - - - - - The type of the detour. Determined when the structure is created by the IDetourNativePlatform. - - - - - The size of the detour. Calculated when the structure is created by the IDetourNativePlatform. - - - - - DetourManager.Native-specific data. - - - - diff --git a/TombstoneDeathMod2/bin/Release/net45/MonoMod.Utils.dll b/TombstoneDeathMod2/bin/Release/net45/MonoMod.Utils.dll deleted file mode 100755 index 67aa902..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/MonoMod.Utils.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/MonoMod.Utils.xml b/TombstoneDeathMod2/bin/Release/net45/MonoMod.Utils.xml deleted file mode 100755 index befd903..0000000 --- a/TombstoneDeathMod2/bin/Release/net45/MonoMod.Utils.xml +++ /dev/null @@ -1,1436 +0,0 @@ - - - - MonoMod.Utils - - - - - An IL manipulation "context" with various helpers and direct access to the MethodBody. - - - - - The manipulator callback, accepted by the Invoke method. - - - - - - The manipulated method. - - - - - The manipulated method's IL processor. - - - - - The manipulated method body. - - - - - The manipulated method's module. - - - - - The manipulated method instructions. - - - - - A readonly list of all defined labels. - - - - - Has the context been made read-only? No further method access is possible, but the context has not yet been disposed. - - - - - Events which run when the context will be disposed. - - - - - The current reference bag. Used for methods such as EmitReference and EmitDelegate. - - - - - Invoke a given manipulator callback. - - The manipulator to run in this context. - - - - Mark this ILContext as read-only and prevent this context from further accessing the originally passed method. - - - If the method is altered prior to calling MakeReadOnly or afterwards by accessing the method directly, the results are undefined. - - - - - See - - - - - See - - - - - See - - - - - Define a new label to be marked with a cursor. - - A label without a target instruction. - - - - Define a new label pointing at a given instruction. - - The instruction the label will point at. - A label pointing at the given instruction. - - - - Determine the index of a given instruction. - - The instruction to get the index of. - The instruction index, or the end of the method body if it hasn't been found. - - - - Obtain all labels pointing at the given instruction. - - The instruction to get all labels for. - All labels targeting the given instruction. - - - - Bind an arbitary object to an ILContext for static retrieval. - - The type of the object. The combination of typeparam and id provides the unique static reference. - The object to store. - The id to use in combination with the typeparam for object retrieval. - - - - Dispose this context, making it read-only and invoking all OnDispose event listeners. - - - - - Obtain a string representation of this context (method ID and body). - - A string representation of this context. - - - - Specifies where a ILCursor should be positioned in relation to the target of a search function - - - - - Move the cursor before the first instruction in the match - - - - - Equivalent to Before with `cursor.MoveAfterLabels()` causing emitted instructions to become the target of incoming labels - - - - - Move the cursor after the last instruction in the match - - - - - Indicates whether the position of a ILCursor is the result of a search function and - if the next search should ignore the instruction preceeding or following this cursor. - - SearchTarget.Next is the result of searching with MoveType.Before, and SearchTarget.Prev from MoveType.After - - - - - A foward searching function cannot match the Next instruction and must move the cursor forward - - - - - A reverse searching function cannot match the Next instruction and must move the cursor backward - - - - - A cursor used to manipulate a method body in an ILContext. - - - - - The context to which this cursor belongs to. - - - - - The instruction immediately following the cursor position or null if the cursor is at the end of the instruction list. - - - - - The instruction immediately preceding the cursor position or null if the cursor is at the start of the instruction list. - - - - - The instruction immediately preceding the cursor position or null if the cursor is at the start of the instruction list. - - - - - The index of the instruction immediately following the cursor position. Range: 0 to Instrs.Count - Setter accepts negative indexing by adding Instrs.Count to the operand - - - - - Indicates whether the position of a MMILCursor is the result of a search function and - if the next search should ignore the instruction preceeding or following this cursor. - - See - - - - - Enumerates all labels which point to the current instruction (label.Target == Next) - - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - Create a clone of this cursor. - - The cloned cursor. - - - - Is this cursor before the given instruction? - - The instruction to check. - True if this cursor is before the given instruction, false otherwise. - - - - Is this cursor after the given instruction? - - The instruction to check. - True if this cursor is after the given instruction, false otherwise. - - - - Obtain a string representation of this cursor (method ID, index, search target, surrounding instructions). - - A string representation of this cursor. - - - - Move the cursor to a target instruction. All other movements go through this. - - The target instruction - Where to move in relation to the target instruction and incoming labels (branches) - Whether to set the `SearchTarget` and skip the target instruction with the next search function - this - - - - Move the cursor after incoming labels (branches). If an instruction is emitted, all labels which currently point to Next, will point to the newly emitted instruction. - - this - - - - Move the cursor before incoming labels (branches). This is the default behaviour. Emitted instructions will not cause labels to change targets. - - this - - - - Move the cursor to a target index. Supports negative indexing. See - - this - - - - Overload for Goto(label.Target). defaults to MoveType.AfterLabel - - this - - - - Search forward and moves the cursor to the next sequence of instructions matching the corresponding predicates. See also - - this - If no match is found - - - - Search forward and moves the cursor to the next sequence of instructions matching the corresponding predicates. - - True if a match was found - - - - Search backward and moves the cursor to the next sequence of instructions matching the corresponding predicates. See also - - this - If no match is found - - - - Search backward and moves the cursor to the next sequence of instructions matching the corresponding predicates. - - True if a match was found - - - - Find the next occurences of a series of instructions matching the given set of predicates with gaps permitted. - - An array of cursors corresponding to each found instruction (MoveType.Before) - If no match is found - - - - Find the next occurences of a series of instructions matching the given set of predicates with gaps permitted. - - An array of cursors corresponding to each found instruction (MoveType.Before) - True if a match was found - - - - Search backwards for occurences of a series of instructions matching the given set of predicates with gaps permitted. - - An array of cursors corresponding to each found instruction (MoveType.Before) - If no match is found - - - - Search backwards for occurences of a series of instructions matching the given set of predicates with gaps permitted. - - An array of cursors corresponding to each found instruction (MoveType.Before) - True if a match was found - - - - Set the target of a label to the current position (label.Target = Next) and moves after it. - - The label to mark - - - - Create a new label targetting the current position (label.Target = Next) and moves after it. - - The newly created label - - - - Create a new label for use with - - A new label with no target - - - - Remove the Next instruction - - - - - Remove several instructions - - - - - Move the cursor and all labels the cursor is positioned after to a target instruction - - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position. - - The instruction opcode. - The instruction operand. - this - - - - Emit a new instruction at this cursor's current position, accessing a given member. - - The type in which the member is defined. - The instruction opcode. - The accessed member name. - this - - - - Bind an arbitary object to an ILContext for static retrieval. See - - - - - Emit the IL to retrieve a stored reference of type with the given and place it on the stack. - - - - - Store an object in the reference store, and emit the IL to retrieve it and place it on the stack. - - - - - Emit the IL to invoke a delegate as if it were a method. Stack behaviour matches OpCodes.Call - - - - - A label to be used in ILContexts. - - - - - The target instruction this label points at. - - - - - All instructions using this label. - - - - - An IL inline reference bag used for ILContexts. - - - - - Get the object for the given ID. - - The object type. - The object ID. - The stored object. - - - - Get a MethodInfo for the getter. - - The object type. - The getter method. - - - - Store a new object. - - The object type. - The object to be stored. - An ID to be used for all further operations. - - - - Remove the object with the given ID from the bag, essentially clearing the ID's slot. - - The object type. - The object ID. - - - - Get a MethodInfo invoking a delegate of the given type, with the delegate at the top of the stack. Used by . - - The delegate type. - A MethodInfo invoking a delegate of the given type. - - - - The default IL reference bag. Throws NotSupportedException for every operation. - - - - - An IL reference bag implementation to be used for runtime-generated methods. - - - - - Allows you to remap library paths / names and specify loading flags. Useful for cross-platform compatibility. Applies only to DynDll. - - - - - Open a given library and get its handle. - - The library name. - Whether to skip using the mapping or not. - Any optional platform-specific flags. - The library handle. - - - - Try to open a given library and get its handle. - - The library name. - The library handle, or null if it failed loading. - Whether to skip using the mapping or not. - Any optional platform-specific flags. - True if the handle was obtained, false otherwise. - - - - Release a library handle obtained via OpenLibrary. Don't release the result of OpenLibrary(null)! - - The library handle. - - - - Get a function pointer for a function in the given library. - - The library handle. - The function name. - The function pointer. - - - - Get a function pointer for a function in the given library. - - The library handle. - The function name. - The function pointer, or null if it wasn't found. - True if the function pointer was obtained, false otherwise. - - - - Extension method wrapping Marshal.GetDelegateForFunctionPointer - - - - - Fill all static delegate fields with the DynDllImport attribute. - Call this early on in the static constructor. - - The type containing the DynDllImport delegate fields. - Any optional mappings similar to the static mappings. - - - - Fill all instance delegate fields with the DynDllImport attribute. - Call this early on in the constructor. - - An instance of a type containing the DynDllImport delegate fields. - Any optional mappings similar to the static mappings. - - - - Similar to DllImport, but requires you to run typeof(DeclaringType).ResolveDynDllImports(); - - - - - The name as which the library will be resolved as. Useful to remap libraries or to provide full paths. - - - - - Platform-dependant loading flags. - - - - - Collection of extensions used by MonoMod and other projects. - - - - - Create a hexadecimal string for the given bytes. - - The input bytes. - The output hexadecimal string. - - - - Invokes all delegates in the invocation list, passing on the result to the next. - - Type of the result. - The multicast delegate. - The initial value and first parameter. - Any other arguments that may be passed. - The result of all delegates. - - - - Invokes all delegates in the invocation list, as long as the previously invoked delegate returns true. - - - - - Invokes all delegates in the invocation list, as long as the previously invoked delegate returns false. - - - - - Invokes all delegates in the invocation list, as long as the previously invoked delegate returns null. - - - - - Split PascalCase words to become Pascal Case instead. - - PascalCaseString - Pascal Case String - - - - Read the string from the BinaryReader BinaryWriter in a C-friendly format. - - The input which the method reads from. - The output string. - - - - Write the string to the BinaryWriter in a C-friendly format. - - The output which the method writes to. - The input string. - - - - Cast a delegate from one type to another. Compatible with delegates holding an invocation list (combined delegates). - - The input delegate. - The output delegate. - - - - Cast a delegate from one type to another. Compatible with delegates holding an invocation list (combined delegates). - - The input delegate. - The wanted output delegate type. - The output delegate. - - - - Print the exception to the console, including extended loading / reflection data useful for mods. - - - - - Safely resolve a reference, silently discarding any exceptions. - - The reference to resolve. - The resolved definition or null. - - - - Safely resolve a reference, silently discarding any exceptions. - - The reference to resolve. - The resolved definition or null. - - - - Safely resolve a reference, silently discarding any exceptions. - - The reference to resolve. - The resolved definition or null. - - - - Safely resolve a reference, silently discarding any exceptions. - - The reference to resolve. - The resolved definition or null. - - - - Get a certain custom attribute from an attribute provider. - - The attribute provider. - The custom attribute name. - The first matching custom attribute, or null if no matching attribute has been found. - - - - Determine if an attribute provider has got a specific custom attribute. - - The attribute provider. - The custom attribute name. - true if the attribute provider contains the given custom attribute, false otherwise. - - - - Get the integer value pushed onto the stack with this instruction. - - The instruction to get the pushed integer value for. - The pushed integer value. - - - - Get the integer value pushed onto the stack with this instruction. - - The instruction to get the pushed integer value for. - The pushed integer value or null. - - - - Determine if the method call is a base method call. - - The caller method body. - The called method. - True if the called method is a base method of the caller method, false otherwise. - - - - Determine if the given method can be preferably called using callvirt. - - The called method. - True if the called method can be called using callvirt, false otherwise. - - - - Determine if the given type is a struct (also known as "value type") or struct-alike (f.e. primitive). - - The type to check. - True if the type is a struct, primitive or similar, false otherwise. - - - - Get the long form opcode for any short form opcode. - - The short form opcode. - The long form opcode. - - - - Get the short form opcode for any long form opcode. - - The long form opcode. - The short form opcode. - - - - Calculate updated instruction offsets. Required for certain manual fixes. - - The method to recalculate the IL instruction offsets for. - - - - Fix (and optimize) any instructions which should use the long / short form opcodes instead. - - The method to apply the fixes to. - - - - Check if the signatures of a given System.Reflection and Mono.Cecil member reference match. - - The System.Reflection member reference. - The Mono.Cecil member reference. - True if both references share the same signature, false otherwise. - - - - Check if the signatures of a given System.Reflection and Mono.Cecil member reference match. - - The Mono.Cecil member reference. - The System.Reflection member reference. - True if both references share the same signature, false otherwise. - - - - See - - - - - See - - - - - See - - - - - See - - - - - See - - - - - Determine if two types are compatible with each other (f.e. object with string, or enums with their underlying integer type). - - The first type. - The second type. - True if both types are compatible with each other, false otherwise. - - - - Creates a delegate of the specified type from this method. - - The method to create the delegate from. - The type of the delegate to create. - The delegate for this method. - - - - Creates a delegate of the specified type with the specified target from this method. - - The method to create the delegate from. - The type of the delegate to create. - The object targeted by the delegate. - The delegate for this method. - - - - Creates a delegate of the specified type from this method. - - The method to create the delegate from. - The type of the delegate to create. - The delegate for this method. - - - - Creates a delegate of the specified type with the specified target from this method. - - The method to create the delegate from. - The type of the delegate to create. - The object targeted by the delegate. - The delegate for this method. - - - - Find a method for a given ID. - - The type to search in. - The method ID. - Whether to perform a simple search pass as well or not. - The first matching method or null. - - - - Find a method for a given ID recursively (including the passed type's base types). - - The type to search in. - The method ID. - Whether to perform a simple search pass as well or not. - The first matching method or null. - - - - Find a method for a given ID. - - The type to search in. - The method ID. - Whether to perform a simple search pass as well or not. - The first matching method or null. - - - - Find a method for a given ID recursively (including the passed type's base types). - - The type to search in. - The method ID. - Whether to perform a simple search pass as well or not. - The first matching method or null. - - - - Find a property for a given name. - - The type to search in. - The property name. - The first matching property or null. - - - - Find a property for a given name recursively (including the passed type's base types). - - The type to search in. - The property name. - The first matching property or null. - - - - Find a field for a given name. - - The type to search in. - The field name. - The first matching field or null. - - - - Find a field for a given name recursively (including the passed type's base types). - - The type to search in. - The field name. - The first matching field or null. - - - - Find an event for a given name. - - The type to search in. - The event name. - The first matching event or null. - - - - Find an event for a given name recursively (including the passed type's base types). - - The type to search in. - The event name. - The first matching event or null. - - - - Get a reference ID that is similar to the full name, but consistent between System.Reflection and Mono.Cecil. - - The method to get the ID for. - The name to use instead of the reference's own name. - The ID to use instead of the reference's declaring type ID. - Whether the type ID should be included or not. System.Reflection avoids it by default. - Whether the ID should be "simple" (name only). - The ID. - - - - Get a reference ID that is similar to the full name, but consistent between System.Reflection and Mono.Cecil. - - The call site to get the ID for. - The ID. - - - - Get a reference ID that is similar to the full name, but consistent between System.Reflection and Mono.Cecil. - - The method to get the ID for. - The name to use instead of the reference's own name. - The ID to use instead of the reference's declaring type ID. - Whether the type ID should be included or not. System.Reflection avoids it by default. - Whether the method is regarded as a proxy method or not. Setting this paramater to true will skip the first parameter. - Whether the ID should be "simple" (name only). - The ID. - - - - Get the "patch name" - the name of the target to patch - for the given member. - - The member to get the patch name for. - The patch name. - - - - Get the "patch name" - the name of the target to patch - for the given member. - - The member to get the patch name for. - The patch name. - - - - Clone the given method definition. - - The original method. - The method definition to apply the cloning process onto, or null to create a new method. - A clone of the original method. - - - - Clone the given method body. - - The original method body. - The method which will own the newly cloned method body. - A clone of the original method body. - - - - Force-update a generic parameter's position and type. - - The generic parameter to update. - The new position. - The new type. - The updated generic parameter. - - - - Resolve a given generic parameter in another context. - - The new context. - The original generic parameter. - A generic parameter provided by the given context which matches the original generic parameter. - - - - Relink the given member reference (metadata token provider). - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Relink the given type reference. - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Relink the given type reference. - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Relink the given method reference. - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Relink the given callsite. - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Relink the given field reference. - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Relink the given parameter definition. - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Clone the given parameter definition. - - The original parameter definition. - A clone of the original parameter definition. - - - - Relink the given custom attribute. - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Clone the given custom attribute. - - The original custom attribute. - A clone of the original custom attribute. - - - - Relink the given generic parameter reference. - - The reference to relink. - The relinker to use during the relinking process. - The generic context provided to relink generic references. - A relinked reference. - - - - Clone the given generic parameter. - - The original generic parameter. - A clone of the original generic parameter. - - - - Get the managed size of a given type. This matches an IL-level sizeof(t), even if it cannot be determined normally in C#. - Note that sizeof(t) != Marshal.SizeOf(t), f.e. when t is char. - - The type to get the size from. - The managed type size. - - - - Get a type which matches what the method should receive via ldarg.0 - - The method to obtain the "this" parameter type from. - The "this" parameter type. - - - - Get a native function pointer for a given method. This matches an IL-level ldftn. - - - ldftn doesn't JIT-compile the method on mono, which thus keeps the class constructor untouched. - On the other hand, its result thus doesn't always match that of MethodHandle.GetFunctionPointer(). - - The method to get a native function pointer for. - The native function pointer. - - - - A variant of ILGenerator which uses Mono.Cecil under the hood. - - - - - The underlying Mono.Cecil.Cil.ILProcessor. - - - - - Abstract version of System.Reflection.Emit.ILGenerator. See for proper documentation. - - - - - Get a "real" ILGenerator for this ILGeneratorShim. - - A "real" ILGenerator. - - - - Get the proxy type for a given ILGeneratorShim type. The proxy type implements ILGenerator. - - The ILGeneratorShim type. - The "real" ILGenerator type. - - - - Get the proxy type for a given ILGeneratorShim type. The proxy type implements ILGenerator. - - The ILGeneratorShim type. - The "real" ILGenerator type. - - - - Get the non-generic proxy type implementing ILGenerator. - - The "real" ILGenerator type, non-generic. - - - - A DynamicMethodDefinition "generator", responsible for generating a runtime MethodInfo from a DMD MethodDefinition. - - - - - - A DMDGenerator implementation using Mono.Cecil to build an in-memory assembly. - - - - - Fill the DynamicMethod with a stub. - - - - - Fill the DynamicMethod with a stub. - - - - - Emit a reference to an arbitrary object. Note that the references "leak." - - - - - Emit a reference to an arbitrary object. Note that the references "leak." - - - - - Emit a reference to an arbitrary object. Note that the references "leak." - - - - - Emit a reference to an arbitrary object. Note that the references "leak." - - - - - The relinker callback delegate type. - - The reference (metadata token provider) to relink. - The generic context provided to relink generic references. - A relinked reference. - - - - Generic platform enum. - - - - - Bit applied to all OSes (Unknown, Windows, MacOS, ...). - - - - - On demand 64-bit platform bit. - - - - - Applied to all NT and NT-oid platforms (Windows). - - - - - Applied to all Unix and Unix-oid platforms (macOS, Linux, ...). - - - - - On demand ARM platform bit. - - - - - Unknown OS. - - - - - Windows, using the NT kernel. - - - - - macOS, using the Darwin kernel. - - - - - Linux. - - - - - Android, using the Linux kernel. - - - - - iOS, sharing components with macOS. - - - - diff --git a/TombstoneDeathMod2/bin/Release/net45/NVorbis.dll b/TombstoneDeathMod2/bin/Release/net45/NVorbis.dll deleted file mode 100755 index 282aca6..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/NVorbis.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Newtonsoft.Json.dll b/TombstoneDeathMod2/bin/Release/net45/Newtonsoft.Json.dll deleted file mode 100755 index 9c83621..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Newtonsoft.Json.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/ReLogic.dll b/TombstoneDeathMod2/bin/Release/net45/ReLogic.dll deleted file mode 100755 index baf3bd6..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/ReLogic.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Steamworks.NET.dll b/TombstoneDeathMod2/bin/Release/net45/Steamworks.NET.dll deleted file mode 100755 index 66920e7..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Steamworks.NET.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/System.ValueTuple.dll b/TombstoneDeathMod2/bin/Release/net45/System.ValueTuple.dll deleted file mode 100755 index 78a1851..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/System.ValueTuple.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Terraria.exe b/TombstoneDeathMod2/bin/Release/net45/Terraria.exe deleted file mode 100755 index 56034c8..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Terraria.exe and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Terraria.pdb b/TombstoneDeathMod2/bin/Release/net45/Terraria.pdb deleted file mode 100755 index f0816eb..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/Terraria.pdb and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/Terraria.xml b/TombstoneDeathMod2/bin/Release/net45/Terraria.xml deleted file mode 100755 index 44f4f1e..0000000 --- a/TombstoneDeathMod2/bin/Release/net45/Terraria.xml +++ /dev/null @@ -1,10182 +0,0 @@ - - - - Terraria - - - - Enumerates the values used with Item.holdStyle - - - Zero (0)\nDefault\nUsed by any item by default - - - One (1)\nHolding out\nUsed for items such as torches and glowsticks - - - Two (2)\nHolding up \nUsed only by Breathing Reed (ID: 186) - - - Three (3)\nHolding out\nUsed only by Magical Harp, a custom style of holding out - - - Enumerates the values used with Item.rare - - - Minus twelve (-12)\nExpert: Rainbow\nFlag: item.expert - - - Minus eleven (-11)\nQuest: Amber\nFlag: item.quest - - - Minus one (-1) - - - Zero (0) - - - One (1) - - - Two (2) - - - Three (3) - - - Four (4) - - - Five (5) - - - Six (6) - - - Seven (7) - - - Eight (8) - - - Nine (9) - - - Ten (10) - - - Eleven (11) - - - Enumerates the values used with Item.useStyle - - - One (1)\nSwinging and throwing\nUsed for many weapons, block placement etc. - - - Two (2)\nEating or using\nUsed for many consumables such as potions or food - - - Three (3)\nStabbing\nUsed for shortswords - - - Four (4)\nHolding up\nUsed for items such as mana/life crystals, life fruit and summoning items - - - Five (5)\nHolding out\nUsed for items such as guns, spellbooks, flails and spears - - - - Bind must always be called after the ctor and serves to facilitate a convenient inheritance workflow for custom ConfigElemets from mods. - - - - - Classes implementing EntityDefinition serve to function as a way to save and load the identities of various Terraria objects. Only the identity is preserved, no other data such as stack size, damage, etc. These classes are well suited for ModConfig, but can be saved and loaded in a TagCompound as well. - - - - - ItemDefinition represents an Item identity. A typical use for this class is usage in ModConfig, perhapse to facilitate an Item tweaking mod. - - - - - This TypeConverter facilitates converting to and from the string Type. This is necessary for Objects that are to be used as Dictionary keys, since the JSON for keys needs to be a string. Classes annotated with this TypeConverter need to implement a static FromString method that returns T. - - The Type that implementes the static FromString method that returns Type T. - - - - Specifies a background color to be used for the property, field, or class in the ModConfig UI. - - - - - Specifies a slider color for ModConfig elements that use a slider. The default color is white. - - - - - This attribute hints that changing the value of the annotated property or field will put the config in a state that requires a reload. An overridden ModConfig.NeedsReload can further validate if more complex logic is needed. - - - - - This attribute sets a label for the property, field, or class for use in the ModConfig UI. - Starting the label with $ means the label should be interpreted as a Localization key. - - - - - This attribute sets a hover tooltip for the annotated property or field to be shown in the ModConfig UI. This can be longer and more descriptive than Label. - Starting the tooltip with $ means the tooltip should be interpreted as a Localization key. - - - - - This attribute adds a label above this property or field in the ModConfig UI that acts as a header. Use this to delineate sections within your config. - Note that fields will be in order, and properties will be in order, but fields and properties will not be interleaved together in the source code order. - - - - - Use this attribute to specify a custom UI element to be used for the annotated property, field, or class in the ModConfig UI. - - - - - Similar to DefaultValueAttribute but for reference types. It uses a json string that will be used populate this element when initialized. Defines the default value, expressed as json, to be used to populate an object with the NullAllowed attribute. Modders should only use this in conjuction with NullAllowed, as simply initializing the field with a default value is preferred. - - - - - Defines the default value to be added when using the ModConfig UI to add elements to a Collection (List, Set, or Dictionary value). Works the same as System.ComponentModel.DefaultValueAttribute, but can't inherit from it because it would break when deserializing any data structure annotated with it. - - - - - Defines the default key value to be added when using the ModConfig UI to add elements to a Dictionary. Works the same as System.ComponentModel.DefaultValueAttribute, but can't inherit from it because it would break when deserializing any data structure annotated with it. This attribute compliments DefaultListValueAttribute when used annotating a Dictionary. - - - - - Similar to DefaultListValueAttribute but for reference types. It uses a json string that will be used populate new instances list elements. Defines the default value, expressed as json, to be added when using the ModConfig UI to add elements to a Collection (List, Set, or Dictionary value). - - - - - Similar to JsonDefaultListValueAttribute, but for assigning to the Dictionary Key rather than the Value. - - - - - By default, string fields will provide the user with a text input field. Use this attribute to restrict strings to a selection of options. - - - - - Use this to set an increment for sliders. The slider will move by the amount assigned. Remember that this is just a UI suggestion and manual editing of config files can specify other values, so validate your values. - Defaults are: float: 0.01f - byte/int/uint: 1 - - - - - Specifies a range for primitive data values. Without this, default min and max are as follows: float: 0, 1 - int/uint: 0, 100 - byte: 0, 255 - - - - - Affects whether this data will be presented as a slider of an input field. Add this attribute to use a slider. Currently only affects data of type int. - - - - - Add this attribute and the sliders will show white tick marks at each increment. - - - - - Add this attribute to a Color item and Alpha will not be presented in the UI and will remain as 255 unless manually edited. - - - - - Add this attribute to a Color item and the UI will present a Hue, Saturation, and Lightness sliders rather than Red, Green, and Blue sliders. Pass in false to skip Saturation and Lightness. - - - - - This specifies that the annotated item will appear as a button that leads to a separate page in the UI. Use this to organize hierarchies. - - - - - This attribute means the annotated item can possibly be null. This will allow the UI to make the item null. It is up to the modder to make sure the item isn't null in the ModConfig constructor and nested classes. - - - - - ModConfig provides a way for mods to be configurable. ModConfigs can either be Client specific or Server specific. - When joining a MP server, Client configs are kept but Server configs are synced from the server. - Using serialization attributes such as [DefaultValue(5)] or [JsonIgnore] are critical for proper usage of ModConfig. - tModLoader also provides its own attributes such as ReloadRequiredAttribute and LabelAttribute. - - - - - This method is called when the ModConfig has been loaded for the first time. This happens before regular Autoloading and Mod.Load. You can use this hook to assign a static reference to this instance for easy access. - tModLoader will automatically assign (and later unload) this instance to a static field named Instance in the class prior to calling this method, if it exists. - - - - - This hook is called anytime new config values have been set and are ready to take effect. This will always be called right after OnLoaded and anytime new configuration values are ready to be used. The hook won't be called with values that violate NeedsReload. Use this hook to integrate with other code in your Mod to apply the effects of the configuration values. If your NeedsReload is correctly implemented, you should be able to apply the settings without error in this hook. Be aware that this hook can be called in-game and in the main menu, as well as in single player and multiplayer situations. - - - - - Called on the Server for ServerSide configs to determine if the changes asked for by the Client will be accepted. Useful for enforcing permissions. Called after a check for NeedsReload. - - An instance of the ModConfig with the attempted changes - The client whoAmI - A message that will be returned to the client, set this to the reason the server rejects the changes. - Return false to reject client changes - - - - tModLoader will call Clone on ModConfig to facilitate proper implementation of the ModConfig user interface and detecting when a reload is required. Modders need to override this method if their config contains reference types. Failure to do so will lead to bugs. See ModConfigShowcaseDataTypes.Clone for examples and explanations. - - - - - - Whether or not a reload is required. The default implementation compares properties and fields annotated with the ReloadRequiredAttribute. Unlike the other ModConfig hooks, this method is called on a clone of the ModConfig that was saved during mod loading. The pendingConfig has values that are about to take effect. Neither of these instances necessarily match the instance used in OnLoaded. - - The other instance of ModConfig to compare against, it contains the values that are pending to take effect - - - - - Each ModConfig class has a different scope. Failure to use the correct mode will lead to bugs. - - - - - This config is shared between all clients and maintained by the server. Use this for game-play changes that should affect all players the same. ServerSide also covers single player as well. - - - - - This config is specific to the client. Use this for personalization options. - - - - - Custom ContractResolver for facilitating refernce type defaults. - The ShouldSerialize code enables unchanged-by-user reference type defaults to properly not serialize. - The ValueProvider code helps during deserialization to not - - - - - Log archiving is performed after log initialization in a separate class to avoid loading Ionic.Zip before logging initialises and it can be patched - Some CLRs will load all required assemblies when the class is entered, not necessarily just the method, so you've got to watch out - - - - - Attempt to hook the .NET internal methods to log when requests are sent to web addresses. - Use the right internal methods to capture redirects - - - - - When Ionic.Zip extracts an entry it uses \\ for all separators when it should use Path.DirectorySeparatorChar for platform compatibility - - - - - Adds a (fileName -> content) entry to the compressed payload - This method is not threadsafe with reads, but is threadsafe with multiple concurrent AddFile calls - - The internal filepath, will be slash sanitised automatically - The file content to add. WARNING, data is kept as a shallow copy, so modifications to the passed byte array will affect file content - - - - Invoke the Roslyn compiler via reflection to avoid a .NET 4.6 dependency - - - - - Responsible for sorting, dependency verification and organizing which mods to load - - - - - XNA makes a distinction between graphics device resets and creations. - Calls to GraphicsDevice.Reset via GraphicsDeviceManager.ApplyChanges trigger a device reset on screen resolution and other changes. - When a device is reset, all textures are re-uploaded from native copies stored in RAM, and the game continues to run with valid handles. - When changing graphics profile, the device must be re-created, and all graphics resources must be re-initialized manually. - - Sometimes (we haven't been able to track the actual cause) seemingly innocuous resets with HiDef graphics profile, fail in XNA native code, and GraphicsDevice.Reset falls back to a full recreation. - XNA includes this fallback try-catch path, implying that this is a known or expected issue, however tML (and Terraria) are - not equipped to handle re-acquiring all graphics resources at any point in the load cycle. - - This failed reset manifests as a silently caught InvalidOperationException, and then later causes an engine crash, normally via an ObjectDisposedException. - The graphics device does not fail the initial switch to HiDef, and for most users, only fails some portion of the time (a heisenbug). - - The HiDef graphics profile is normally only enabled with the "Support4K" configuration flag, and on monitors with display resolutions above 1080p - However, due to some advanced shader features available on HiDef, there has been request for tML to enable HiDef graphics by default where possible. - - - - - Main.ContentLoad is called every time the device is recreated. Some small modifications have been made to allow Terraria to recover (re-acquire textures) - if the device is recreated early enough, but once JIT finishes and tML loading begins further recreations cannot be silently handled, and will require disabling HiDef graphics. - - - - - Provides a SynchronizationContext for running continuations on the Main thread in the Update loop, for platforms which don't initialized with one - - - - - FNA uses a single-threaded GL context. This class helps with tracking down related issues and deadlocks. - See https://github.com/tModLoader/tModLoader/issues/237 and https://github.com/FNA-XNA/FNA/blob/master/src/FNAPlatform/OpenGLDevice.cs#L4676 - It also improves loading performance on FNA - - - - - Enqueues a list of mods, if found on the browser (also used for ModPacks) - - - - - This serves as the central class from which ModUgBgStyle functions are supported and carried out. - - - - - Returns the ModUgBgStyle object with the given ID. - - - - - Returns the ModSurfaceBgStyle object with the given ID. - - - - - This is the class that keeps track of all modded background textures and their slots/IDs. - - - - - Returns the slot/ID of the background texture with the given name. - - - - - This serves as the central class from which buff-related functions are supported and carried out. - - - - - Gets the ModBuff instance with the given type. If no ModBuff with the given type exists, returns null. - - - - - This serves as the central class from which ModCommand functions are supported and carried out. - - - - - Finds a command by name. Handles mod prefixing. Replies with error messages. - - The found command, or null if an error was encountered. - True if a ModCommand was found, or an error message was replied. False if the command is unrecognized. - - - - A struct that contains information that may help with PlayerLayer drawing. - - - - - The player that is being drawn. - - - - - The position the player should be drawn in. Use this; do not use drawPlayer.position. - - - - - The transparency of the player, where 0f is fully opaque and 1f is fully transparent. - - - - - Similar to Player.itemLocation, but takes PlayerDrawInfo.position into account. - - - - - Whether or not the player's hands underneath the armor should be drawn. - - - - - Whether or not the player's arms underneath the armor should be drawn. - - - - - Whether or not the held projectile is drawn in front of or behind the held item and arms. - - - - - Whether or not the player's hair is drawn. - - - - - Whether or not the player's alternate (hat) hair is drawn. - - - - - The ID of the shader (dye) on the player's hair. - - - - - The ID of the shader (dye) on the player's head armor. - - - - - The ID of the shader (dye) on the player's body armor. - - - - - The ID of the shader (dye) on the player's leg armor. - - - - - The ID of the shader (dye) on the player's hand on accessory. - - - - - The ID of the shader (dye) on the player's hand off accessory. - - - - - The ID of the shader (dye) on the player's back accessory. - - - - - The ID of the shader (dye) on the player's front accessory. - - - - - The ID of the shader (dye) on the player's shoe accessory. - - - - - The ID of the shader (dye) on the player's waist accessory. - - - - - The ID of the shader (dye) on the player's shield accessory. - - - - - The ID of the shader (dye) on the player's neck accessory. - - - - - The ID of the shader (dye) on the player's face accessory. - - - - - The ID of the shader (dye) on the player's balloon accessory. - - - - - The ID of the shader (dye) on the player's wings. - - - - - The ID of the shader (dye) on the player's magic carpet. - - - - - The color of the player's hair, with lighting and transparency taken into account. - - - - - The color of the whites of the player's eyes, with lighting and transparency taken into account. - - - - - The color of the player's eyes, with lighting and transparency taken into account. - - - - - The color of the player's face, with lighting and transparency taken into account. - - - - - The color of the player's body skin, with lighting and transparency taken into account. - - - - - The color of the player's leg skin, with lighting and transparency taken into account. - - - - - The color of the player's shirt, with lighting and transparency taken into account. - - - - - The color of the player's under-shirt, with lighting and transparency taken into account. - - - - - The color of the player's pants, with lighting and transparency taken into account. - - - - - The color of the player's shoes, with lighting and transparency taken into account. - - - - - The color of all armor and accessories on the upper third of the player, with lighting and transparency taken into account. - - - - - The color of all armor and accessories on the middle third of the player, with lighting and transparency taken into account. - - - - - The color of the player's mount, with lighting and transparency taken into account. - - - - - The color of all armor and accessories on the lower third of the player, with lighting and transparency taken into account. - - - - - The ID of the glow-mask on the player's head. - - - - - The ID of the glow-mask on the player's body. - - - - - The ID of the glow-mask on the player's arms. - - - - - The ID of the glow-mask on the player's legs. - - - - - The color of the glow-mask on the player's head. - - - - - The color of the glow-mask on the player's body. - - - - - The color of the glow-mask on the player's arms. - - - - - The color of the glow-mask on the player's legs. - - - - - The SpriteEffects that should be used to draw the player (how the sprite should be flipped). - - - - - The point around which the player's head texture rotates. - - - - - The point around which the player's body texture rotates. - - - - - The point around which the player's leg texture rotates. - - - - - A struct that contains information that may help with PlayerHeadLayer drawing. - - - - - The SpriteBatch object that should be used to do all the drawing. This is the same as Main.spriteBatch. - - - - - The player whose head is being drawn. - - - - - The transparency in which the player should be drawn. 0 means fully transparent, while 1 means fully opaque. - - - - - The scale on the size in which the player should be drawn. - - - - - The ID of the shader (dye) on the player's hair. - - - - - The ID of the shader (dye) on the player's head armor. - - - - - The color of the whites of the player's eyes. Alpha has already been taken into account. - - - - - The color of the player's eyes. Alpha has already been taken into account. - - - - - The color of the player's hair. Alpha has already been taken into account. - - - - - The color of the player's skin. Alpha has already been taken into account. - - - - - The color the player's armor should be shaded in. Alpha has already been taken into account. - - - - - The SpriteEffects that should be used to draw the player. (SpriteEffects.None or SpriteEffects.FlipHorizontal) - - - - - The point on the player's texture around which everything should be rotated. - - - - - Whether the player's hair texture should be drawn. - - - - - Whether the player's alternate (hat) hair texture should be drawn. - - - - - This serves as a central place to store equipment slots and their corresponding textures. You will use this to obtain the IDs for your equipment textures. - - - - - Gets the equipment texture for the specified equipment type and ID. - - - - - - - - This serves as a place for you to program behaviors of equipment textures. This is useful for equipment slots that do not have any item associated with them (for example, the Werewolf buff). Note that this class is purely for visual effects. - - - - - The name and folders of the texture file used by this equipment texture. - - - - - The mod that added this equipment texture. - - - - - The internal name of this equipment texture. - - - - - The type of equipment that this equipment texture is used as. - - - - - The slot (internal ID) of this equipment texture. - - - - - The item that is associated with this equipment texture. Null if no item is associated with this. - - - - - Allows you to create special effects (such as dust) when this equipment texture is displayed on the player under the given equipment type. By default this will call the associated ModItem's UpdateVanity if there is an associated ModItem. - - - - - - - Returns whether or not the head armor, body armor, and leg armor textures make up a set. This hook is used for the PreUpdateVanitySet, UpdateVanitySet, and ArmorSetShadow hooks. By default this will return the same thing as the associated ModItem's IsVanitySet, or false if no ModItem is associated. - - - - - - - - - Allows you to create special effects (such as the necro armor's hurt noise) when the player wears this equipment texture's vanity set. This hook is called regardless of whether the player is frozen in any way. By default this will call the associated ModItem's PreUpdateVanitySet if there is an associated ModItem. - - - - - - Allows you to create special effects (such as dust) when the player wears this equipment texture's vanity set. This hook will only be called if the player is not frozen in any way. By default this will call the associated ModItem's UpdateVanitySet if there is an associated ModItem. - - - - - - Allows you to determine special visual effects this vanity set has on the player without having to code them yourself. By default this will call the associated ModItem's ArmorSetShadows if there is an associated ModItem. - - - - - - Allows you to modify the equipment that the player appears to be wearing. This hook will only be called for head, body and leg textures. Note that equipSlot is not the same as the item type of the armor the player will appear to be wearing. Worn equipment has a separate set of IDs. You can find the vanilla equipment IDs by looking at the headSlot, bodySlot, and legSlot fields for items, and modded equipment IDs by looking at EquipLoader. - If this hook is called on body armor, equipSlot allows you to modify the leg armor the player appears to be wearing. If you modify it, make sure to set robes to true. If this hook is called on leg armor, equipSlot allows you to modify the leg armor the player appears to be wearing, and the robes parameter is useless. - By default, if there is an associated ModItem, this will call that ModItem's SetMatch. - - - - - - - - Allows you to determine whether the skin/shirt on the player's arms and hands are drawn when this body equipment texture is worn. By default both flags will be false. Note that if drawHands is false, the arms will not be drawn either. If there is an associated ModItem, by default this will call that ModItem's DrawHands. - - - - - - - Allows you to determine whether the player's hair or alt (hat) hair draws when this head equipment texture is worn. By default both flags will be false. If there is an associated ModItem, by default this will call that ModItem's DrawHair. - - - - - - - Return false to hide the player's head when this head equipment texture is worn. By default this will return the associated ModItem's DrawHead, or true if there is no associated ModItem. - - - - - - Return false to hide the player's body when this body equipment texture is worn. By default this will return the associated ModItem's DrawBody, or true if there is no associated ModItem. - - - - - - Return false to hide the player's legs when this leg or shoe equipment texture is worn. By default this will return the associated ModItem's DrawLegs, or true if there is no associated ModItem. - - - - - - Allows you to modify the colors in which this armor texture and surrounding accessories are drawn, in addition to which glow mask and in what color is drawn. By default this will call the associated ModItem's DrawArmorColor if there is an associated ModItem. - - - - - - - - - - Allows you to modify which glow mask and in what color is drawn on the player's arms. Note that this is only called for body equipment textures. By default this will call the associated ModItem's ArmorArmGlowMask if there is an associated ModItem. - - - - - - - - - Allows you to modify vertical wing speeds. - - - - - - - - - - - Allows you to modify horizontal wing speeds. - - - - - - - - Allows for wing textures to do various things while in use. "inUse" is whether or not the jump button is currently pressed. Called when this wing texture visually appears on the player. Use to animate wings, create dusts, invoke sounds, and create lights. By default this will call the associated ModItem's WingUpdate if there is an associated ModItem. - - - - - - - - This is an enum of all the types of equipment that exist. An equipment type is defined as a type or layer of texture that is drawn on the player (for example, body and shield and wings). - - - - - NOTE: This class is deprecated. Use instead (see ExampleMod for example) - This class consists of functions that write error messages to text files for you to read. It also lets you write logs to text files. - - - - - NOTE: Deprecated. Use instead - The file path to which logs are written and stored. - - - - - NOTE: Deprecated. Please use your own ILog instead, see ExampleMod for an example - You can use this method for your own testing purposes. The message will be added to the Logs.txt file in the Logs folder. - - - - - NOTE: Deprecated. Please use your own ILog instead, see ExampleMod for an example - Allows you to log an object for your own testing purposes. The message will be added to the Logs.txt file in the Logs folder. - - The object to be logged. - If true, the object's data will be manually retrieved and logged. If false, the object's ToString method is logged. - - - - NOTE: Deprecated. - Deletes all log files. - - - - - This class allows you to modify the behavior of any buff in the game. - - - - - The mod to which this GlobalBuff belongs. - - - - - The internal name of this GlobalBuff instance. - - - - - Allows you to automatically load a GlobalBuff instead of using Mod.AddGlobalBuff. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload or to control the internal name. - - - - - Allows you to make the buff with the given ID give certain effects to a player. If you remove the buff from the player, make sure the decrement the buffIndex parameter by 1. - - - - - Allows you to make the buff with the given ID give certain effects to an NPC. If you remove the buff from the NPC, make sure to decrement the buffIndex parameter by 1. - - - - - Allows to you make special things happen when adding the given type of buff to a player when the player already has that buff. Return true to block the vanilla re-apply code from being called; returns false by default. The vanilla re-apply code sets the buff time to the "time" argument if that argument is larger than the current buff time. (For Mana Sickness, the vanilla re-apply code adds the "time" argument to the current buff time.) - - - - - Allows to you make special things happen when adding the given buff type to an NPC when the NPC already has that buff. Return true to block the vanilla re-apply code from being called; returns false by default. The vanilla re-apply code sets the buff time to the "time" argument if that argument is larger than the current buff time. - - - - - Allows you to modify the tooltip that displays when the mouse hovers over the buff icon, as well as the color the buff's name is drawn in. - - - - - If you are using the DrawCustomBuffTip hook, then you must use this hook as well. Calculate the location (relative to the origin) of the bottom-right corner of everything you will draw, and add that location to the sizes parameter. - - - - - Allows you to draw whatever you want when a buff tooltip is drawn. The originX and originY parameters are the top-left corner of everything that's drawn; you should add these to the position argument passed to SpriteBatch.Draw. - - - - - This class allows you to modify and use hooks for all items, including vanilla items. Create an instance of an overriding class then call Mod.AddGlobalItem to use this. - - - - - The mod to which this GlobalItem belongs. - - - - - The name of this GlobalItem instance. - - - - - Allows you to automatically load a GlobalItem instead of using Mod.AddGlobalItem. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload or to control the internal name. - - - - - Whether to create a new GlobalItem instance for every Item that exists. - Useful for storing information on an item. Defaults to false. - Return true if you need to store information (have non-static fields). - - - - - Whether instances of this GlobalItem are created through Clone or constructor (by default implementations of NewInstance and Clone(Item, Item)). - Defaults to false (using default constructor). - - - - - - Create a copy of this instanced GlobalItem. Called when an item is cloned. - Defaults to NewInstance(item) - - The item being cloned - The new item - - - - Create a new instance of this GlobalItem for an Item instance. - Called at the end of Item.SetDefaults. - If CloneNewInstances is true, just calls Clone() - Otherwise calls the default constructor and copies fields - - - - - Allows you to set the properties of any and every item that gets created. - - - - - Allows you to manually choose what prefix an item will get. - - The ID of the prefix to give the item, -1 to use default vanilla behavior - - - - To prevent putting the item in the tinkerer slot, return false when pre is -3. - To prevent rolling of a prefix on spawn, return false when pre is -1. - To force rolling of a prefix on spawn, return true when pre is -1. - - To reduce the probability of a prefix on spawn (pre == -1) to X%, return false 100-4X % of the time. - To increase the probability of a prefix on spawn (pre == -1) to X%, return true (4X-100)/3 % of the time. - - To delete a prefix from an item when the item is loaded, return false when pre is the prefix you want to delete. - Use AllowPrefix to prevent rolling of a certain prefix. - - The prefix being applied to the item, or the roll mode. -1 is when the item is naturally generated in a chest, crafted, purchased from an NPC, looted from a grab bag (excluding presents), or dropped by a slain enemy (if it's spawned with prefixGiven: -1). -2 is when the item is rolled in the tinkerer. -3 determines if the item can be placed in the tinkerer slot. - - - - - Force a re-roll of a prefix by returning false. - - - - - Returns whether or not any item can be used. Returns true by default. The inability to use a specific item overrides this, so use this to stop an item from being used. - - - - - Allows you to modify the location and rotation of any item in its use animation. - - - - - Allows you to modify the location and rotation of the item the player is currently holding. - - - - - Allows you to make things happen when the player is holding an item (for example, torches make light and water candles increase spawn rate). - - - - - Allows you to change the effective useTime of an item. - - The multiplier on the usage speed. 1f by default. Values greater than 1 increase the item speed. - - - - Allows you to change the effective useAnimation of an item. - - The multiplier on the animation speed. 1f by default. Values greater than 1 increase the item speed. - - - - Allows you to temporarily modify the amount of life a life healing item will heal for, based on player buffs, accessories, etc. This is only called for items with a healLife value. - - The item being used. - The player using the item. - Whether the item is being used through quick heal or not. - The amount of life being healed. - - - - Allows you to temporarily modify the amount of mana a mana healing item will heal for, based on player buffs, accessories, etc. This is only called for items with a healMana value. - - The item being used. - The player using the item. - Whether the item is being used through quick heal or not. - The amount of mana being healed. - - - - Allows you to temporarily modify the amount of mana an item will consume on use, based on player buffs, accessories, etc. This is only called for items with a mana value. - - The item being used. - The player using the item. - Used for decreasingly stacking buffs (most common). Only ever use -= on this field. - Use to directly multiply the item's effective mana cost. Good for debuffs, or things which should stack separately (eg meteor armor set bonus). - - - - Allows you to make stuff happen when a player doesn't have enough mana for an item they are trying to use. - If the player has high enough mana after this hook runs, mana consumption will happen normally. - Only runs once per item use. - - The item being used. - The player using the item. - The mana needed to use the item. - - - - Allows you to make stuff happen when a player consumes mana on use of an item. - - The item being used. - The player using the item. - The mana consumed from the player. - - - - Allows you to temporarily modify this weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - Note that tModLoader follows vanilla principle of only allowing one effective damage class at a time. - This means that if you want your own custom damage class, all vanilla damage classes must be set to false. - Vanilla checks classes in this order: melee, ranged, magic, thrown, summon - So if you set both melee class and another class to true, only the melee damage will actually be used. - - The item being used - The player using the item - The damage - - - - Allows you to temporarily modify this weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - - The item being used - The player using the item - Used for additively stacking buffs (most common). Only ever use += on this field. - Use to directly multiply the player's effective damage. Good for debuffs, or things which should stack separately (eg ammo type buffs) - - - - Allows you to temporarily modify this weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - - The item being used - The player using the item - Used for additively stacking buffs (most common). Only ever use += on this field. Things with effects like "5% increased MyDamageClass damage" would use this: `add += 0.05` - Use to directly multiply the player's effective damage. Good for debuffs, or things which should stack separately (eg ammo type buffs) - This is a flat damage bonus that will be added after add and mult are applied. It facilitates effects like "4 more damage from weapons" - - - - Allows you to temporarily modify this weapon's knockback based on player buffs, etc. This allows you to customize knockback beyond the Player class's limited fields. - Note that tModLoader follows vanilla principle of only allowing one effective damage class at a time. - This means that if you want your own custom damage class, all vanilla damage classes must be set to false. - Vanilla checks classes in this order: melee, ranged, magic, thrown, summon - So if you set both melee class and another class to true, only the melee knockback will actually be used. - - The item being used - The player using the item - The knockback - - - - Allows you to temporarily modify this weapon's crit chance based on player buffs, etc. - Note that tModLoader follows vanilla principle of only allowing one effective damage class at a time. - This means that if you want your own custom damage class, all vanilla damage classes must be set to false. - If you use a custom damage class, the crit value will equal item.crit - Vanilla checks classes in this order: melee, ranged, magic, thrown, and summon cannot crit. - So if you set both melee class and another class to true, only the melee crit will actually be used. - - The item being used - The player using the item - The critical strike chance - - - - Allows you to modify the projectile created by a weapon based on the ammo it is using. - - The item that is using this ammo - The ammo item - The player using the item - The ID of the projectile shot - The speed of the projectile shot - The damage of the projectile shot - The speed of the projectile shot - - - - Whether or not ammo will be consumed upon usage. Called both by the gun and by the ammo; if at least one returns false then the ammo will not be used. By default returns true. - If false is returned, the OnConsumeAmmo hook is never called. - - - - - Allows you to make things happen when ammo is consumed. Called both by the gun and by the ammo. - Called before the ammo stack is reduced. - - - - - This is called before the weapon creates a projectile. You can use it to create special effects, such as changing the speed, changing the initial position, and/or firing multiple projectiles. Return false to stop the game from shooting the default projectile (do this if you manually spawn your own projectile). Returns true by default. - - The weapon item. - The player. - The shoot spawn position. - The speed x calculated from shootSpeed and mouse position. - The speed y calculated from shootSpeed and mouse position. - The projectile type chosen by ammo and weapon. - The projectile damage. - The projectile knock back. - - - - - Changes the hitbox of a melee weapon when it is used. - - - - - Allows you to give melee weapons special effects, such as creating light or dust. - - - - - Allows you to determine whether a melee weapon can hit the given NPC when swung. Return true to allow hitting the target, return false to block the weapon from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. - - - - - Allows you to modify the damage, knockback, etc., that a melee weapon does to an NPC. - - - - - Allows you to create special effects when a melee weapon hits an NPC (for example how the Pumpkin Sword creates pumpkin heads). - - - - - Allows you to determine whether a melee weapon can hit the given opponent player when swung. Return false to block the weapon from hitting the target. Returns true by default. - - - - - Allows you to modify the damage, etc., that a melee weapon does to a player. - - - - - Allows you to create special effects when a melee weapon hits a player. - - - - - Allows you to make things happen when an item is used. Return true if using the item actually does stuff. Returns false by default. - - - - - If the item is consumable and this returns true, then the item will be consumed upon usage. Returns true by default. - If false is returned, the OnConsumeItem hook is never called. - - - - - Allows you to make things happen when this item is consumed. - Called before the item stack is reduced. - - - - - Allows you to modify the player's animation when an item is being used. Return true if you modify the player's animation. Returns false by default. - - - - - Allows you to modify the player's animation when the player is holding an item. Return true if you modify the player's animation. Returns false by default. - - - - - Allows you to make an item usable by right-clicking. Returns false by default. When the item is used by right-clicking, player.altFunctionUse will be set to 2. - - - - - Allows you to make things happen when an item is in the player's inventory (for example, how the cell phone makes information display). - - - - - Allows you to give effects to armors and accessories, such as increased damage. - - - - - Allows you to give effects to accessories. The hideVisual parameter is whether the player has marked the accessory slot to be hidden from being drawn on the player. - - - - - Allows you to determine whether the player is wearing an armor set, and return a name for this set. - If there is no armor set, return the empty string. - Returns the empty string by default. - - This method is not instanced. - - - - - Allows you to give set bonuses to your armor set with the given name. - The set name will be the same as returned by IsArmorSet. - - This method is not instanced. - - - - - Returns whether or not the head armor, body armor, and leg armor textures make up a set. - This hook is used for the PreUpdateVanitySet, UpdateVanitySet, and ArmorSetShadow hooks, and will use items in the social slots if they exist. - By default this will return the same value as the IsArmorSet hook, so you will not have to use this hook unless you want vanity effects to be entirely separate from armor sets. - - This method is not instanced. - - - - - Allows you to create special effects (such as the necro armor's hurt noise) when the player wears the vanity set with the given name returned by IsVanitySet. - This hook is called regardless of whether the player is frozen in any way. - - This method is not instanced. - - - - - Allows you to create special effects (such as dust) when the player wears the vanity set with the given name returned by IsVanitySet. This hook will only be called if the player is not frozen in any way. - - This method is not instanced. - - - - - Allows you to determine special visual effects a vanity has on the player without having to code them yourself. - - This method is not instanced. - - player.armorEffectDrawShadow = true; - - - - Allows you to modify the equipment that the player appears to be wearing. - - Note that type and equipSlot are not the same as the item type of the armor the player will appear to be wearing. Worn equipment has a separate set of IDs. - You can find the vanilla equipment IDs by looking at the headSlot, bodySlot, and legSlot fields for items, and modded equipment IDs by looking at EquipLoader. - - This method is not instanced. - - head armor (0), body armor (1) or leg armor (2). - The equipment texture ID of the item that the player is wearing. - The altered equipment texture ID for the legs (armorSlot 1 and 2) or head (armorSlot 0) - Set to true if you modify equipSlot when armorSlot == 1 to set Player.wearsRobe, otherwise ignore it - - - - Returns whether or not an item does something when right-clicked in the inventory. Returns false by default. - - - - - Allows you to make things happen when an item is right-clicked in the inventory. Useful for goodie bags. - - - - - Allows you to make vanilla bags drop your own items and stop the default items from being dropped. - Return false to stop the default items from being dropped; returns true by default. - Context will either be "present", "bossBag", "crate", "lockBox", "herbBag", or "goodieBag". - For boss bags and crates, arg will be set to the type of the item being opened. - This method is also called for modded bossBags that are properly implemented. - - This method is not instanced. - - - - - Allows you to make vanilla bags drop your own items in addition to the default items. - This method will not be called if any other GlobalItem returns false for PreOpenVanillaBag. - Context will either be "present", "bossBag", "crate", "lockBox", "herbBag", or "goodieBag". - For boss bags and crates, arg will be set to the type of the item being opened. - This method is also called for modded bossBags that are properly implemented. - - This method is not instanced. - - - - - Returns if the normal reforge pricing is applied. - If true or false is returned and the price is altered, the price will equal the altered price. - The passed reforge price equals the item.value. Vanilla pricing will apply 20% discount if applicable and then price the reforge at a third of that value. - - - - - This hook gets called when the player clicks on the reforge button and can afford the reforge. - Returns whether the reforge will take place. If false is returned, the PostReforge hook is never called. - Reforging preserves modded data on the item. - - - - - This hook gets called immediately after an item gets reforged by the Goblin Tinkerer. - Useful for modifying modded data based on the reforge result. - - - - - Allows you to determine whether the skin/shirt on the player's arms and hands are drawn when a body armor is worn. - Note that if drawHands is false, the arms will not be drawn either. - - This method is not instanced. - - - - - Allows you to determine whether the player's hair or alt (hat) hair will be drawn when a head armor is worn. - - This method is not instanced. - - - - - Return false to hide the player's head when a head armor is worn. Returns true by default. - - This method is not instanced. - - - - - Return false to hide the player's body when a body armor is worn. Returns true by default. - - This method is not instanced. - - - - - Return false to hide the player's legs when a leg armor or shoe accessory is worn. Returns true by default. - - This method is not instanced. - - - - - Allows you to modify the colors in which the player's armor and their surrounding accessories are drawn, in addition to which glow mask and in what color is drawn. - - This method is not instanced. - - - - - Allows you to modify which glow mask and in what color is drawn on the player's arms. Note that this is only called for body armor. - - This method is not instanced. - - - - - Allows you to modify the speeds at which you rise and fall when wings are equipped. - - - - - Allows you to modify the horizontal flight speed and acceleration of wings. - - - - - Allows for Wings to do various things while in use. "inUse" is whether or not the jump button is currently pressed. - Called when wings visually appear on the player. - Use to animate wings, create dusts, invoke sounds, and create lights. False will keep everything the same. - True, you need to handle all animations in your own code. - - This method is not instanced. - - - - - Allows you to customize an item's movement when lying in the world. Note that this will not be called if the item is currently being grabbed by a player. - - - - - Returns whether or not this item burns when it is thrown into lava despite item.rare not being 0. Returns false by default. - - - - - Allows you to make things happen when an item is lying in the world. This will always be called, even when the item is being grabbed by a player. This hook should be used for adding light, or for increasing the age of less valuable items. - - - - - Allows you to modify how close an item must be to the player in order to move towards the player. - - - - - Allows you to modify the way an item moves towards the player. Return false to allow the vanilla grab style to take place. Returns false by default. - - - - - Allows you to determine whether or not the item can be picked up - - - - - Allows you to make special things happen when the player picks up an item. Return false to stop the item from being added to the player's inventory; returns true by default. - - - - - Return true to specify that the item can be picked up despite not having enough room in inventory. Useful for something like hearts or experience items. Use in conjunction with OnPickup to actually consume the item and handle it. - - - - - Allows you to determine the color and transparency in which an item is drawn. Return null to use the default color (normally light color). Returns null by default. - - - - - Allows you to draw things behind an item, or to modify the way an item is drawn in the world. Return false to stop the game from drawing the item (useful if you're manually drawing the item). Returns true by default. - - - - - Allows you to draw things in front of an item. This method is called even if PreDrawInWorld returns false. - - - - - Allows you to draw things behind an item in the inventory. Return false to stop the game from drawing the item (useful if you're manually drawing the item). Returns true by default. - - - - - Allows you to draw things in front of an item in the inventory. This method is called even if PreDrawInInventory returns false. - - - - - Allows you to determine the offset of an item's sprite when used by the player. - This is only used for items with a useStyle of 5 that aren't staves. - Return null to use the item's default holdout offset; returns null by default. - - This method is not instanced. - - return new Vector2(10, 0); - - - - Allows you to determine the point on an item's sprite that the player holds onto when using the item. - The origin is from the bottom left corner of the sprite. This is only used for staves with a useStyle of 5. - Return null to use the item's default holdout origin; returns null by default. - - This method is not instanced. - - - - - Allows you to disallow the player from equipping an accessory. Return false to disallow equipping the accessory. Returns true by default. - - The item that is attepting to equip. - The player. - The inventory slot that the item is attempting to occupy. - - - - Allows you to modify what item, and in what quantity, is obtained when an item of the given type is fed into the Extractinator. - An extractType of 0 represents the default extraction (Silt and Slush). - By default the parameters will be set to the output of feeding Silt/Slush into the Extractinator. - - This method is not instanced. - - - - - Allows you to modify how many of an item a player obtains when the player fishes that item. - - - - - Whether or not specific conditions have been satisfied for the Angler to be able to request the given item. (For example, Hardmode.) - Returns true by default. - - This method is not instanced. - - - - - Allows you to set what the Angler says when the Quest button is clicked in his chat. - The chat parameter is his dialogue, and catchLocation should be set to "Caught at [location]" for the given type. - - This method is not instanced. - - - - - This is essentially the same as Mod.AddRecipes or ModItem.AddRecipes. Use whichever method makes organizational sense for your mod. - - - - - Allows you to make anything happen when the player crafts the given item using the given recipe. - - - - - Allows you to do things before this item's tooltip is drawn. - - The item - The tooltip lines for this item - The top X position for this tooltip. It is where the first line starts drawing - The top Y position for this tooltip. It is where the first line starts drawing - Whether or not to draw this tooltip - - - - Allows you to do things after this item's tooltip is drawn. The lines contain draw information as this is ran after drawing the tooltip. - - The item - The tooltip lines for this item - - - - Allows you to do things before a tooltip line of this item is drawn. The line contains draw info. - - The item - The line that would be drawn - The Y offset added for next tooltip lines - Whether or not to draw this tooltip line - - - - Allows you to do things after a tooltip line of this item is drawn. The line contains draw info. - - The item - The line that was drawn - - - - Allows you to modify all the tooltips that display for the given item. See here for information about TooltipLine. - - - - - Whether or not the given item needs to save custom data. Returning false will save on the memory used in saving an item, but returning true is necessary in order to save data across all items or vanilla items. Returns false by default. Note that the return value of this hook must be deterministic (randomness is not allowed). - - - - - Allows you to save custom data for the given item. Only called when NeedsCustomSaving returns true. Returns false by default. - - - - - Allows you to load custom data that you have saved for the given item. - - - - - Allows you to load pre-v0.9 custom data that you have saved for the given item. - - - - - Allows you to send custom data for the given item between client and server. - - - - - - - - - - This class allows you to modify and use hooks for all NPCs, including vanilla mobs. Create an instance of an overriding class then call Mod.AddGlobalNPC to use this. - - - - - The mod to which this GlobalNPC belongs. - - - - - The name of this GlobalNPC instance. - - - - - Allows you to automatically load a GlobalNPC instead of using Mod.AddGlobalNPC. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload or to control the internal name. - - - - - - - Whether to create a new GlobalNPC instance for every NPC that exists. - Useful for storing information on an npc. Defaults to false. - Return true if you need to store information (have non-static fields). - - - - - Whether instances of this GlobalNPC are created through Clone or constructor (by default implementations of NewInstance and Clone()). - Defaults to false (using default constructor). - - - - - - Create a new instance of this GlobalNPC for an NPC instance. - Called at the end of NPC.SetDefaults. - If CloneNewInstances is true, just calls Clone() - Otherwise calls the default constructor and copies fields - - - - - Allows you to set the properties of any and every NPC that gets created. - - - - - - Allows you to customize an NPC's stats in expert mode. - - - - - - - - This is where you reset any fields you add to your subclass to their default states. This is necessary in order to reset your fields if they are conditionally set by a tick update but the condition is no longer satisfied. - - - - - - Allows you to determine how any NPC behaves. Return false to stop the vanilla AI and the AI hook from being run. Returns true by default. - - - - - - - Allows you to determine how any NPC behaves. This will only be called if PreAI returns true. - - - - - - Allows you to determine how any NPC behaves. This will be called regardless of what PreAI returns. - - - - - - Allows you to modify the frame from an NPC's texture that is drawn, which is necessary in order to animate NPCs. - - - - - - - - Allows you to make the NPC either regenerate health or take damage over time by setting npc.lifeRegen. Regeneration or damage will occur at a rate of half of npc.lifeRegen per second. The damage parameter is the number that appears above the NPC's head if it takes damage over time. - - - - - - - Whether or not to run the code for checking whether an NPC will remain active. Return false to stop the NPC from being despawned and to stop the NPC from counting towards the limit for how many NPCs can exist near a player. Returns true by default. - - - - - - - Whether or not an NPC should be killed when it reaches 0 health. You may program extra effects in this hook (for example, how Golem's head lifts up for the second phase of its fight). Return false to stop the NPC from being killed. Returns true by default. - - - - - - - Allows you to call NPCLoot on your own when the NPC dies, rather then letting vanilla call it on its own. Useful for things like dropping loot from the nearest segment of a worm boss. Returns false by default. - - Return true to stop vanilla from calling NPCLoot on its own. Do this if you call NPCLoot yourself. - - - - Allows you to determine whether or not the NPC will drop anything at all. Return false to stop the NPC from dropping anything. Returns true by default. - - - - - - - Allows you to make things happen when an NPC dies (for example, dropping items and setting ModWorld fields). This hook runs on the server/single player. For client-side effects, such as dust, gore, and sounds, see HitEffect - - - - - - Allows you to make things happen when an NPC is caught. Ran Serverside. - - The caught NPC - The player catching the NPC - The item that will be spawned - - - - Allows you to determine whether an NPC can hit the given player. Return false to block the NPC from hitting the target. Returns true by default. CooldownSlot determines which of the player's cooldown counters to use (-1, 0, or 1), and defaults to -1. - - - - - - - - - Allows you to modify the damage, etc., that an NPC does to a player. - - - - - - - - - Allows you to create special effects when an NPC hits a player (for example, inflicting debuffs). - - - - - - - - - Allows you to determine whether an NPC can hit the given friendly NPC. Return true to allow hitting the target, return false to block the NPC from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. - - - - - - - - Allows you to modify the damage, knockback, etc., that an NPC does to a friendly NPC. - - - - - - - - - - Allows you to create special effects when an NPC hits a friendly NPC. - - - - - - - - - - Allows you to determine whether an NPC can be hit by the given melee weapon when swung. Return true to allow hitting the NPC, return false to block hitting the NPC, and return null to use the vanilla code for whether the NPC can be hit. Returns null by default. - - - - - - - - - Allows you to modify the damage, knockback, etc., that an NPC takes from a melee weapon. - - - - - - - - - - - Allows you to create special effects when an NPC is hit by a melee weapon. - - - - - - - - - - - Allows you to determine whether an NPC can be hit by the given projectile. Return true to allow hitting the NPC, return false to block hitting the NPC, and return null to use the vanilla code for whether the NPC can be hit. Returns null by default. - - - - - - - - Allows you to modify the damage, knockback, etc., that an NPC takes from a projectile. - - - - - - - - - - - Allows you to create special effects when an NPC is hit by a projectile. - - - - - - - - - - Allows you to use a custom damage formula for when an NPC takes damage from any source. For example, you can change the way defense works or use a different crit multiplier. Return false to stop the game from running the vanilla damage formula; returns true by default. - - - - - - - - - - - - Allows you to customize the boss head texture used by an NPC based on its state. - - - - - - - Allows you to customize the rotation of an NPC's boss head icon on the map. - - - - - - - Allows you to flip an NPC's boss head icon on the map. - - - - - - - Allows you to determine the color and transparency in which an NPC is drawn. Return null to use the default color (normally light and buff color). Returns null by default. - - - - - - - - Allows you to add special visual effects to an NPC (such as creating dust), and modify the color in which the NPC is drawn. - - - - - - - Allows you to draw things behind an NPC, or to modify the way the NPC is drawn. Return false to stop the game from drawing the NPC (useful if you're manually drawing the NPC). Returns true by default. - - - - - - - - - Allows you to draw things in front of this NPC. This method is called even if PreDraw returns false. - - - - - - - - Allows you to control how the health bar for the given NPC is drawn. The hbPosition parameter is the same as Main.hbPosition; it determines whether the health bar gets drawn above or below the NPC by default. The scale parameter is the health bar's size. By default, it will be the normal 1f; most bosses set this to 1.5f. Return null to let the normal vanilla health-bar-drawing code to run. Return false to stop the health bar from being drawn. Return true to draw the health bar in the position specified by the position parameter (note that this is the world position, not screen position). - - - - - - - - - - Allows you to modify the chance of NPCs spawning around the given player and the maximum number of NPCs that can spawn around the player. Lower spawnRates mean a higher chance for NPCs to spawn. - - - - - - - - Allows you to modify the range at which NPCs can spawn around the given player. The spawnRanges determine that maximum distance NPCs can spawn from the player, and the safeRanges determine the minimum distance. - - - - - - - - - - Allows you to control which NPCs can spawn and how likely each one is to spawn. The pool parameter maps NPC types to their spawning weights (likelihood to spawn compared to other NPCs). A type of 0 in the pool represents the default vanilla NPC spawning. - - - - - - - Allows you to customize an NPC (for example, its position or ai array) after it naturally spawns and before it is synced between servers and clients. As of right now, this only works for modded NPCs. - - - - - - - - Allows you to determine whether this NPC can talk with the player. Return true to allow talking with the player, return false to block this NPC from talking with the player, and return null to use the vanilla code for whether the NPC can talk. Returns null by default. - - - - - - - Allows you to modify the chat message of any NPC that the player can talk to. - - - - - - - Allows you to determine if something can happen whenever a button is clicked on this NPC's chat window. The firstButton parameter tells whether the first button or second button (button and button2 from SetChatButtons) was clicked. Return false to prevent the normal code for this button from running. Returns true by default. - - - - - - - - Allows you to make something happen whenever a button is clicked on this NPC's chat window. The firstButton parameter tells whether the first button or second button (button and button2 from SetChatButtons) was clicked. - - - - - - - Allows you to add items to an NPC's shop. The type parameter is the type of the NPC that this shop belongs to. Add an item by setting the defaults of shop.item[nextSlot] then incrementing nextSlot. In the end, nextSlot must have a value of 1 greater than the highest index in shop.item that contains an item. If you want to remove an item, you will have to be familiar with programming. - - - - - - - - Allows you to add items to the traveling merchant's shop. Add an item by setting shop[nextSlot] to the ID of the item you are adding then incrementing nextSlot. In the end, nextSlot must have a value of 1 greater than the highest index in shop that represents an item ID. If you want to remove an item, you will have to be familiar with programming. - - - - - - - Whether this NPC can be telported a King or Queen statue. Return true to allow the NPC to teleport to the statue, return false to block this NPC from teleporting to the statue, and return null to use the vanilla code for whether the NPC can teleport to the statue. Returns null by default. - - The NPC - Whether the NPC is being teleported to a King or Queen statue. - - - - Allows you to make things happen when this NPC teleports to a King or Queen statue. - This method is only called server side. - - The NPC - Whether the NPC was teleported to a King or Queen statue. - - - - Allows you to modify the stats of town NPCs. Useful for buffing town NPCs when certain bosses are defeated, etc. - - - - - - - Allows you to determine the damage and knockback of a town NPC's attack before the damage is scaled. (More information on scaling in GlobalNPC.BuffTownNPCs.) - - - - - - - - Allows you to determine the cooldown between each of a town NPC's attack. The cooldown will be a number greater than or equal to the first parameter, and less then the sum of the two parameters. - - - - - - - - Allows you to determine the projectile type of a town NPC's attack, and how long it takes for the projectile to actually appear. This hook is only used when the town NPC has an attack type of 0 (throwing), 1 (shooting), or 2 (magic). - - - - - - - - Allows you to determine the speed at which a town NPC throws a projectile when it attacks. Multiplier is the speed of the projectile, gravityCorrection is how much extra the projectile gets thrown upwards, and randomOffset allows you to randomize the projectile's velocity in a square centered around the original velocity. This hook is only used when the town NPC has an attack type of 0 (throwing), 1 (shooting), or 2 (magic). - - - - - - - - - Allows you to tell the game that a town NPC has already created a projectile and will still create more projectiles as part of a single attack so that the game can animate the NPC's attack properly. Only used when the town NPC has an attack type of 1 (shooting). - - - - - - - Allows you to control the brightness of the light emitted by a town NPC's aura when it performs a magic attack. Only used when the town NPC has an attack type of 2 (magic) - - - - - - - Allows you to determine the width and height of the item a town NPC swings when it attacks, which controls the range of the NPC's swung weapon. Only used when the town NPC has an attack type of 3 (swinging). - - - - - - - - Allows you to customize how a town NPC's weapon is drawn when the NPC is shooting (the NPC must have an attack type of 1). Scale is a multiplier for the item's drawing size, item is the ID of the item to be drawn, and closeness is how close the item should be drawn to the NPC. - - - - - - - - - Allows you to customize how a town NPC's weapon is drawn when the NPC is swinging it (the NPC must have an attack type of 3). Item is the Texture2D instance of the item to be drawn (use Main.itemTexture[id of item]), itemSize is the width and height of the item's hitbox (the same values for TownNPCAttackSwing), scale is the multiplier for the item's drawing size, and offset is the offset from which to draw the item from its normal position. - - - - - - - - - - This class allows you to modify and use hooks for all projectiles, including vanilla projectiles. Create an instance of an overriding class then call Mod.AddGlobalProjectile to use this. - - - - - The mod to which this GlobalProjectile belongs. - - - - - The name of this GlobalProjectile instance. - - - - - Allows you to automatically load a GlobalProjectile instead of using Mod.AddGlobalProjectile. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload or to control the internal name. - - - - - - - Whether to create a new GlobalProjectile instance for every Projectile that exists. - Useful for storing information on a projectile. Defaults to false. - Return true if you need to store information (have non-static fields). - - - - - Whether instances of this GlobalProjectile are created through Clone or constructor (by default implementations of NewInstance and Clone()). - Defaults to false (using default constructor). - - - - - - Create a new instance of this GlobalProjectile for a Projectile instance. - Called at the end of Projectile.SetDefaults. - If CloneNewInstances is true, just calls Clone() - Otherwise calls the default constructor and copies fields - - - - - Allows you to set the properties of any and every projectile that gets created. - - - - - - Allows you to determine how any projectile behaves. Return false to stop the vanilla AI and the AI hook from being run. Returns true by default. - - - - - - - Allows you to determine how any projectile behaves. This will only be called if PreAI returns true. - - - - - - Allows you to determine how any projectile behaves. This will be called regardless of what PreAI returns. - - - - - - Whether or not the given projectile should update its position based on factors such as its velocity, whether it is in liquid, etc. Return false to make its velocity have no effect on its position. Returns true by default. - - - - - - - Allows you to determine how a projectile interacts with tiles. Width and height determine the projectile's hitbox for tile collision, and default to -1. Leave them as -1 to use the projectile's real size. Fallthrough determines whether the projectile can fall through platforms, etc., and defaults to true. - - - - - - - - - - Allows you to determine what happens when a projectile collides with a tile. OldVelocity is the velocity before tile collision. The velocity that takes tile collision into account can be found with projectile.velocity. Return true to allow the vanilla tile collision code to take place (which normally kills the projectile). Returns true by default. - - - - - - - - Allows you to determine whether the vanilla code for Kill and the Kill hook will be called. Return false to stop them from being called. Returns true by default. Note that this does not stop the projectile from dying. - - - - - - - - Allows you to control what happens when a projectile is killed (for example, creating dust or making sounds). - - - - - - - Return true or false to specify if the projectile can cut tiles, like vines. Return null for vanilla decision. - - - - - - - Code ran when the projectile cuts tiles. Only runs if CanCutTiles() returns true. Useful when programming lasers and such. - - - - - - Whether or not the given projectile is capable of killing tiles (such as grass) and damaging NPCs/players. Return false to prevent it from doing any sort of damage. Returns true by default. - - - - - - - Whether or not a minion can damage NPCs by touching them. Returns false by default. Note that this will only be used if the projectile is considered a pet. - - - - - - - Allows you to change the hitbox used by a projectile for damaging players and NPCs. - - - - - - - Allows you to determine whether a projectile can hit the given NPC. Return true to allow hitting the target, return false to block the projectile from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. - - - - - - - - Allows you to modify the damage, knockback, etc., that a projectile does to an NPC. This method is only called for the owner of the projectile, meaning that in multi-player, projectiles owned by a player call this method on that client, and projectiles owned by the server such as enemy projectiles call this method on the server. - - - - - - - - - - - Allows you to create special effects when a projectile hits an NPC (for example, inflicting debuffs). This method is only called for the owner of the projectile, meaning that in multi-player, projectiles owned by a player call this method on that client, and projectiles owned by the server such as enemy projectiles call this method on the server. - - - - - - - - - - Allows you to determine whether a projectile can hit the given opponent player. Return false to block the projectile from hitting the target. Returns true by default. - - - - - - - - Allows you to modify the damage, etc., that a projectile does to an opponent player. - - - - - - - - - Allows you to create special effects when a projectile hits an opponent player. - - - - - - - - - Allows you to determine whether a hostile projectile can hit the given player. Return false to block the projectile from hitting the target. Returns true by default. - - - - - - - - Allows you to modify the damage, etc., that a hostile projectile does to a player. - - - - - - - - - Allows you to create special effects when a hostile projectile hits a player. - - - - - - - - - Allows you to use custom collision detection between a projectile and a player or NPC that the projectile can damage. Useful for things like diagonal lasers, projectiles that leave a trail behind them, etc. - - - - - - - - - Allows you to determine the color and transparency in which a projectile is drawn. Return null to use the default color (normally light and buff color). Returns null by default. - - - - - - - - Allows you to draw things behind a projectile. Returns false to stop the game from drawing extras textures related to the projectile (for example, the chains for grappling hooks), useful if you're manually drawing the extras. Returns true by default. - - - - - - - - Allows you to draw things behind a projectile, or to modify the way the projectile is drawn. Return false to stop the game from drawing the projectile (useful if you're manually drawing the projectile). Returns true by default. - - - - - - - - - Allows you to draw things in front of a projectile. This method is called even if PreDraw returns false. - - - - - - - - When used in conjunction with "projectile.hide = true", allows you to specify that this projectile should be drawn behind certain elements. Add the index to one and only one of the lists. For example, the Nebula Arcanum projectile draws behind NPCs and tiles. - - - - - - - - - - - Whether or not a grappling hook that shoots this type of projectile can be used by the given player. Return null to use the default code (whether or not the player is in the middle of firing the grappling hook). Returns null by default. - - - - - Whether or not a grappling hook can only have one hook per player in the world at a time. Return null to use the vanilla code. Returns null by default. - - - - - This code is called whenever the player uses a grappling hook that shoots this type of projectile. Use it to change what kind of hook is fired (for example, the Dual Hook does this), to kill old hook projectiles, etc. - - - - - How many of this type of grappling hook the given player can latch onto blocks before the hooks start disappearing. Change the numHooks parameter to determine this; by default it will be 3. - - - - - The speed at which the grapple retreats back to the player after not hitting anything. Defaults to 11, but vanilla hooks go up to 24. - - - - - The speed at which the grapple pulls the player after hitting something. Defaults to 11, but the Bat Hook uses 16. - - - - - This class provides hooks that control all recipes in the game. - - - - - The mod which added this GlobalRecipe. - - - - - The name of this GlobaRecipe. - - - - - Allows you to automatically load a GlobalRecipe instead of using Mod.AddGlobalRecipe. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload, and to change the default internal name. - - - - - Whether or not the conditions are met for the given recipe to be available for the player to use. This hook can be used for conditions unrelated to items or tiles (for example, biome or time). - - - - - Allows you to make anything happen when the player uses the given recipe. The item parameter is the item the player has just crafted. - - The item created. - The recipe used to create the item. - - - - This class allows you to modify the behavior of any tile in the game. Create an instance of an overriding class then call Mod.AddGlobalTile to use this. - - - - - The mod to which this GlobalTile belongs to. - - - - - The name of this GlobalTile instance. - - - - - A convenient method for adding an integer to the end of an array. This can be used with the arrays in TileID.Sets.RoomNeeds. - - - - - - - Allows the given type of tile to grow the given modded tree. - - - - - - - Allows the given type of tile to grow the given modded palm tree. - - - - - - - Allows the given type of tile to grow the given modded cactus. - - - - - - - Allows you to automatically load a GlobalTile instead of using Mod.AddGlobalTile. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload or to control the internal name. - - - - - - - Allows you to modify the properties of any tile in the game. Most properties are stored as arrays throughout the Terraria code. - - - - - Allows you to customize which sound you want to play when the tile at the given coordinates is hit. Return false to stop the game from playing its default sound for the tile. Returns true by default. - - - - - - - - - Allows you to change how many dust particles are created when the tile at the given coordinates is hit. - - - - - - - - - - Allows you to modify the default type of dust created when the tile at the given coordinates is hit. Return false to stop the default dust (the dustType parameter) from being created. Returns true by default. - - - - - - - - - - Allows you to modify the chance the tile at the given coordinates has of spawning a certain critter when the tile is killed. - - - - - - - - - - - Allows you to customize which items the tile at the given coordinates drops. Return false to stop the game from dropping the tile's default item. Returns true by default. - - - - - Allows you to determine whether or not the tile at the given coordinates can be hit by anything. Returns true by default. blockDamaged currently has no use. - - - - - - - - - - Allows you to determine what happens when the tile at the given coordinates is killed or hit with a pickaxe. Fail determines whether the tile is mined, effectOnly makes it so that only dust is created, and noItem stops items from dropping. - - - - - - - - - - - Whether or not the tile at the given coordinates can be killed by an explosion (ie. bombs). Returns true by default; return false to stop an explosion from destroying it. - - - - - - - - - Allows you to make things happen when the tile is within a certain range of the player (around the same range water fountains and music boxes work). The closer parameter is whether or not the tile is within the range at which things like campfires and banners work. - - - - - - - - - Allows you to determine how much light the block emits. Make sure you set Main.tileLighted[type] to true in SetDefaults for this to work. - - - - - - - - - - - Allows you to determine whether the block glows red when the given player has the Dangersense buff. - - - - - - - - - - Allows you to determine whether or not a tile will draw itself flipped in the world. - - - - - - - - - Allows animating tiles that were previously static. Loading a new texture for the tile is required first. Use Main.tileFrameCounter to count game frames and Main.tileFrame to change animation frames. - - - - - Allows you to draw things behind the tile at the given coordinates. Return false to stop the game from drawing the tile normally. Returns true by default. - - - - - - - - - - Allows you to make stuff happen whenever the tile at the given coordinates is drawn. For example, creating dust or changing the color the tile is drawn in. - - - - - - - The special draw count. Use with Main.specX and Main.specY and then increment to draw special things after the main tile drawing loop is complete via DrawSpecial. - - - - Allows you to draw things in front of the tile at the given coordinates. This can also be used to do things such as creating dust. Called on active tiles. See also ModWorld.PostDrawTiles. - - - - - - - - - Special Draw. Only called if coordinates are placed in Main.specX/Y during DrawEffects. Useful for drawing things that would otherwise be impossible to draw due to draw order, such as items in item frames. - - The i. - The j. - - - - Called for every tile the world randomly decides to update in a given tick. Useful for things such as growing or spreading. - - - - - - - - Called for every tile that updates due to being placed or being next to a tile that is changed. Return false to stop the game from carrying out its default TileFrame operations. Returns true by default. - - - - - - - - - - - Allows you to stop a tile from being placed at the given coordinates. Return false to block the tile from being placed. Returns true by default. - - - - - - - - - Allows you to determine which tiles the given tile type can be considered as when looking for crafting stations. - - - - - - - Allows you to make something happen when any tile is right-clicked by the player. - - - - - - - - Allows you to make something happen when the mouse hovers over any tile. Useful for showing item icons or text on the mouse. - - - - - - - - Allows you to make something happen when the mouse hovers over any tile, even when the player is far away. Useful for showing what's written on signs, etc. - - - - - - - - Allows you to determine whether the given item can become selected when the cursor is hovering over a tile and the auto selection hotkey is pressed. - - - - - - - - - - Whether or not the vanilla HitWire code and the HitWire hook is allowed to run. Useful for overriding vanilla behavior by returning false. Returns true by default. - - - - - - - - - Allows you to make something happen when a wire current passes through any tile. - - - - - - - - Allows you to control how hammers slope any tile. Return true to allow the tile to slope normally. Returns true by default. Called on the local Client and Single Player. - - - - - - - - - Allows you to make something happen when a player stands on the given type of tile. For example, you can make the player slide as if on ice. - - - - - - - Allows you to change the style of waterfall that passes through or over any tile. - - - - - - - Allows a tile to support a sapling that can eventually grow into a tree. The type of the sapling should be returned here. Returns -1 by default. The style parameter will determine which sapling is chosen if multiple sapling types share the same ID; even if you only have a single sapling in an ID, you must still set this to 0. - - - - - - - - Allows you to do something when this tile is placed. Called on the local Client and Single Player. - - The x position in tile coordinates. Equal to Player.tileTargetX - The y position in tile coordinates. Equal to Player.tileTargetY - The item used to place this tile. - - - - This class allows you to modify the behavior of any wall in the game (although admittedly walls don't have much behavior). Create an instance of an overriding class then call Mod.AddGlobalWall to use this. - - - - - The mod to which this GlobalWall belongs. - - - - - The name of this GlobalWall instance. - - - - - Allows you to automatically load a GlobalWall instead of using Mod.AddGlobalWall. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload or to control the internal name. - - - - - Allows you to modify the properties of any wall in the game. Most properties are stored as arrays throughout the Terraria code. - - - - - Allows you to customize which sound you want to play when the wall at the given coordinates is hit. Return false to stop the game from playing its default sound for the wall. Returns true by default. - - - - - Allows you to change how many dust particles are created when the wall at the given coordinates is hit. - - - - - Allows you to modify the default type of dust created when the wall at the given coordinates is hit. Return false to stop the default dust (the dustType parameter) from being created. Returns true by default. - - - - - Allows you to customize which items the wall at the given coordinates drops. Return false to stop the game from dropping the wall's default item (the dropType parameter). Returns true by default. - - - - - Allows you to determine what happens when the wall at the given coordinates is killed or hit with a hammer. Fail determines whether the wall is mined (whether it is killed). - - - - - Whether or not the wall at the given coordinates can be killed by an explosion (ie. bombs). Returns true by default; return false to stop an explosion from destroying it. - - - - - Allows you to determine how much light the wall emits. This can also let you light up the block in front of the wall. - - - - - Called for every wall the world randomly decides to update in a given tick. Useful for things such as growing or spreading. - - - - - Allows you to draw things behind the wall at the given coordinates. Return false to stop the game from drawing the wall normally. Returns true by default. - - - - - Allows you to draw things in front of the wall at the given coordinates. - - - - - Called after this wall type was placed in the world by way of the item provided. - - - - - This serves as the central class from which item-related functions are carried out. It also stores a list of mod items by ID. - - - - - Gets the ModItem instance corresponding to the specified type. Returns null if no modded item has the given type. - - - - - Allows for blocking, forcing and altering chance of prefix rolling. - False (block) takes precedence over True (force). - Null gives vanilla behaviour - - - - - Returns the "and" operation on the results of ModItem.CanUseItem and all GlobalItem.CanUseItem hooks. - Does not fail fast (every hook is called). - - The item. - The player holding the item. - - - - Calls ModItem.UseStyle and all GlobalItem.UseStyle hooks. - - - - - If the player is not holding onto a rope and is not in the middle of using an item, calls ModItem.HoldStyle and all GlobalItem.HoldStyle hooks. - - - - - Calls ModItem.HoldItem and all GlobalItem.HoldItem hooks. - - - - - Calls ModItem.GetHealLife, then all GlobalItem.GetHealLife hooks. - - - - - Calls ModItem.GetHealMana, then all GlobalItem.GetHealMana hooks. - - - - - Calls ModItem.ModifyManaCost, then all GlobalItem.ModifyManaCost hooks. - - - - - Calls ModItem.OnMissingMana, then all GlobalItem.OnMissingMana hooks. - - - - - Calls ModItem.OnConsumeMana, then all GlobalItem.OnConsumeMana hooks. - - - - - Calls ModItem.GetWeaponDamage, then all GlobalItem.GetWeaponDamage hooks. - - - - - Calls ModItem.HookModifyWeaponDamage, then all GlobalItem.HookModifyWeaponDamage hooks. - - - - - Calls ModItem.GetWeaponKnockback, then all GlobalItem.GetWeaponKnockback hooks. - - - - - Calls ModItem.GetWeaponCrit, then all GlobalItem.GetWeaponCrit hooks. - - - - - If the item is a modded item, ModItem.checkProjOnSwing is true, and the player is not at the beginning of the item's use animation, sets canShoot to false. - - - - - Calls ModItem.PickAmmo, then all GlobalItem.PickAmmo hooks. - - - - - Calls ModItem.ConsumeAmmo for the weapon, ModItem.ConsumeAmmo for the ammo, then each GlobalItem.ConsumeAmmo hook for the weapon and ammo, until one of them returns false. If all of them return true, returns true. - - - - - Calls ModItem.OnConsumeAmmo for the weapon, ModItem.OnConsumeAmmo for the ammo, then each GlobalItem.OnConsumeAmmo hook for the weapon and ammo. - - - - - Calls each GlobalItem.Shoot hook, then ModItem.Shoot, until one of them returns false. If all of them return true, returns true. - - The weapon item. - The player. - The shoot spawn position. - The speed x calculated from shootSpeed and mouse position. - The speed y calculated from shootSpeed and mouse position. - The projectile type choosen by ammo and weapon. - The projectile damage. - The projectile knock back. - - - - - Calls ModItem.UseItemHitbox, then all GlobalItem.UseItemHitbox hooks. - - - - - Calls ModItem.MeleeEffects and all GlobalItem.MeleeEffects hooks. - - - - - Gathers the results of ModItem.CanHitNPC and all GlobalItem.CanHitNPC hooks. - If any of them returns false, this returns false. - Otherwise, if any of them returns true then this returns true. - If all of them return null, this returns null. - - - - - Calls ModItem.ModifyHitNPC, then all GlobalItem.ModifyHitNPC hooks. - - - - - Calls ModItem.OnHitNPC and all GlobalItem.OnHitNPC hooks. - - - - - Calls all GlobalItem.CanHitPvp hooks, then ModItem.CanHitPvp, until one of them returns false. - If all of them return true, this returns true. - - - - - Calls ModItem.ModifyHitPvp, then all GlobalItem.ModifyHitPvp hooks. - - - - - Calls ModItem.OnHitPvp and all GlobalItem.OnHitPvp hooks. - - - - - Returns true if any of ModItem.UseItem or GlobalItem.UseItem return true - Does not fail fast (calls every hook) - - - - - If ModItem.ConsumeItem or any of the GlobalItem.ConsumeItem hooks returns false, sets consume to false. - - - - - Calls ModItem.OnConsumeItem and all GlobalItem.OnConsumeItem hooks. - - - - - Calls ModItem.UseItemFrame, then all GlobalItem.UseItemFrame hooks, until one of them returns true. Returns whether any of the hooks returned true. - - - - - Calls ModItem.HoldItemFrame, then all GlobalItem.HoldItemFrame hooks, until one of them returns true. Returns whether any of the hooks returned true. - - - - - Calls ModItem.AltFunctionUse, then all GlobalItem.AltFunctionUse hooks, until one of them returns true. Returns whether any of the hooks returned true. - - - - - Calls ModItem.UpdateInventory and all GlobalItem.UpdateInventory hooks. - - - - - Calls ModItem.UpdateEquip and all GlobalItem.UpdateEquip hooks. - - - - - Calls ModItem.UpdateAccessory and all GlobalItem.UpdateAccessory hooks. - - - - - Calls each of the item's equipment texture's UpdateVanity hook. - - - - - If the head's ModItem.IsArmorSet returns true, calls the head's ModItem.UpdateArmorSet. This is then repeated for the body, then the legs. Then for each GlobalItem, if GlobalItem.IsArmorSet returns a non-empty string, calls GlobalItem.UpdateArmorSet with that string. - - - - - If the player's head texture's IsVanitySet returns true, calls the equipment texture's PreUpdateVanitySet. This is then repeated for the player's body, then the legs. Then for each GlobalItem, if GlobalItem.IsVanitySet returns a non-empty string, calls GlobalItem.PreUpdateVanitySet, using player.head, player.body, and player.legs. - - - - - If the player's head texture's IsVanitySet returns true, calls the equipment texture's UpdateVanitySet. This is then repeated for the player's body, then the legs. Then for each GlobalItem, if GlobalItem.IsVanitySet returns a non-empty string, calls GlobalItem.UpdateVanitySet, using player.head, player.body, and player.legs. - - - - - If the player's head texture's IsVanitySet returns true, calls the equipment texture's ArmorSetShadows. This is then repeated for the player's body, then the legs. Then for each GlobalItem, if GlobalItem.IsVanitySet returns a non-empty string, calls GlobalItem.ArmorSetShadows, using player.head, player.body, and player.legs. - - - - - Calls EquipTexture.SetMatch, then all GlobalItem.SetMatch hooks. - - - - - Calls ModItem.CanRightClick, then all GlobalItem.CanRightClick hooks, until one of the returns true. If one of the returns true, returns Main.mouseRight. Otherwise, returns false. - - - - - If Main.mouseRightRelease is true, the following steps are taken: - 1. Call ModItem.RightClick - 2. Calls all GlobalItem.RightClick hooks - 3. Call ItemLoader.ConsumeItem, and if it returns true, decrements the item's stack - 4. Sets the item's type to 0 if the item's stack is 0 - 5. Plays the item-grabbing sound - 6. Sets Main.stackSplit to 30 - 7. Sets Main.mouseRightRelease to false - 8. Calls Recipe.FindRecipes. - - - - - Returns whether ModItem.bossBagNPC is greater than 0. Returns false if item is not a modded item. - - - - - If the item is a modded item and ModItem.bossBagNPC is greater than 0, calls ModItem.OpenBossBag and sets npc to ModItem.bossBagNPC. - - - - - Calls each GlobalItem.PreOpenVanillaBag hook until one of them returns false. Returns true if all of them returned true. - - - - - Calls all GlobalItem.OpenVanillaBag hooks. - - - - - Call all ModItem.ReforgePrice, then GlobalItem.ReforgePrice hooks. - - - - - - - Calls ModItem.PreReforge, then all GlobalItem.PreReforge hooks. - - - - - Calls ModItem.PostReforge, then all GlobalItem.PostReforge hooks. - - - - - Calls the item's body equipment texture's DrawHands hook, then all GlobalItem.DrawHands hooks. - - - - - Calls the item's head equipment texture's DrawHair hook, then all GlobalItem.DrawHair hooks. - - - - - Calls the item's head equipment texture's DrawHead hook, then all GlobalItem.DrawHead hooks, until one of them returns false. Returns true if none of them return false. - - - - - Calls the item's body equipment texture's DrawBody hook, then all GlobalItem.DrawBody hooks, until one of them returns false. Returns true if none of them return false. - - - - - Calls the item's leg equipment texture's DrawLegs hook, then the item's shoe equipment texture's DrawLegs hook, then all GlobalItem.DrawLegs hooks, until one of them returns false. Returns true if none of them return false. - - - - - Calls the item's equipment texture's DrawArmorColor hook, then all GlobalItem.DrawArmorColor hooks. - - - - - Calls the item's body equipment texture's ArmorArmGlowMask hook, then all GlobalItem.ArmorArmGlowMask hooks. - - - - s - Returns the wing item that the player is functionally using. If player.wingsLogic has been modified, so no equipped wing can be found to match what the player is using, this creates a new Item object to return. - - - - - If the player is using wings, this uses the result of GetWing, and calls ModItem.VerticalWingSpeeds then all GlobalItem.VerticalWingSpeeds hooks. - - - - - If the player is using wings, this uses the result of GetWing, and calls ModItem.HorizontalWingSpeeds then all GlobalItem.HorizontalWingSpeeds hooks. - - - - - If wings can be seen on the player, calls the player's wing's equipment texture's WingUpdate and all GlobalItem.WingUpdate hooks. - - - - - Calls ModItem.Update, then all GlobalItem.Update hooks. - - - - - Calls ModItem.CanBurnInLava. - - - - - Calls ModItem.PostUpdate and all GlobalItem.PostUpdate hooks. - - - - - Calls ModItem.GrabRange, then all GlobalItem.GrabRange hooks. - - - - - Calls all GlobalItem.GrabStyle hooks then ModItem.GrabStyle, until one of them returns true. Returns whether any of the hooks returned true. - - - - - Calls all GlobalItem.OnPickup hooks then ModItem.OnPickup, until one of the returns false. Returns true if all of the hooks return true. - - - - - Calls all GlobalItem.GetAlpha hooks then ModItem.GetAlpha, until one of them returns a color, and returns that color. Returns null if all of the hooks return null. - - - - - Returns the "and" operator on the results of ModItem.PreDrawInWorld and all GlobalItem.PreDrawInWorld hooks. - - - - - Calls ModItem.PostDrawInWorld, then all GlobalItem.PostDrawInWorld hooks. - - - - - Returns the "and" operator on the results of all GlobalItem.PreDrawInInventory hooks and ModItem.PreDrawInInventory. - - - - - Calls ModItem.PostDrawInInventory, then all GlobalItem.PostDrawInInventory hooks. - - - - - Mod is an abstract class that you will override. It serves as a central place from which the mod's contents are stored. It provides methods for you to use or override. - - - - - The TmodFile object created when tModLoader reads this mod. - - - - - The assembly code this is loaded when tModLoader loads this mod. - - - - - A logger with this mod's name for easy logging. - - - - - Stores the name of the mod. This name serves as the mod's identification, and also helps with saving everything your mod adds. By default this returns the name of the folder that contains all your code and stuff. - - - - - The version of tModLoader that was being used when this mod was built. - - - - - This version number of this mod. - - - - - The ModSide that controls how this mod is synced between client and server. - - - - - The display name of this mod in the Mods menu. - - - - - Override this method to add most of your content to your mod. Here you will call other methods such as AddItem. This is guaranteed to be called after all content has been autoloaded. - - - - - Allows you to load things in your mod after its content has been setup (arrays have been resized to fit the content, etc). - - - - - This is called whenever this mod is unloaded from the game. Use it to undo changes that you've made in Load that aren't automatically handled (for example, modifying the texture of a vanilla item). Mods are guaranteed to be unloaded in the reverse order they were loaded in. - - - - - The amount of extra buff slots this mod desires for Players. This value is checked after Mod.Load but before Mod.PostSetupContent. The actual number of buffs the player can use will be 22 plus the max value of all enabled mods. In-game use Player.MaxBuffs to check the maximum number of buffs. - - - - - Override this method to add recipe groups to this mod. You must add recipe groups by calling the RecipeGroup.RegisterGroup method here. A recipe group is a set of items that can be used interchangeably in the same recipe. - - - - - Override this method to add recipes to the game. It is recommended that you do so through instances of ModRecipe, since it provides methods that simplify recipe creation. - - - - - This provides a hook into the mod-loading process immediately after recipes have been added. You can use this to edit recipes added by other mods. - - - - - Close is called before Unload, and may be called at any time when mod unloading is imminent (such as when downloading an update, or recompiling) - Use this to release any additional file handles, or stop streaming music. - Make sure to call `base.Close()` at the end - May be called multiple times before Unload - - - - - Hook for pre-loading resources - - The path of the resource within the tmod - The length of the uncompressed resource - A function which returns a stream containing the file content - true if the file will no-longer be needed and should not be cached - - - - Adds a type of item to your mod with the specified internal name. This method should be called in Load. You can obtain an instance of ModItem by overriding it then creating an instance of the subclass. - - The name. - The item. - You tried to add 2 ModItems with the same name: " + name + ". Maybe 2 classes share a classname but in different namespaces while autoloading or you manually called AddItem with 2 items of the same name. - - - - Gets the ModItem instance corresponding to the name. Because this method is in the Mod class, conflicts between mods are avoided. Returns null if no ModItem with the given name is found. - - The name. - - - - - Same as the other GetItem, but assumes that the class name and internal name are the same. - - - - - - - Gets the internal ID / type of the ModItem corresponding to the name. Returns 0 if no ModItem with the given name is found. - - The name. - - - - - Same as the other ItemType, but assumes that the class name and internal name are the same. - - - - - - - Adds the given GlobalItem instance to this mod with the provided name. - - The name. - The global item. - - - - Gets the GlobalItem instance with the given name from this mod. - - The name. - - - - - Same as the other GetGlobalItem, but assumes that the class name and internal name are the same. - - - - - - - Adds an equipment texture of the specified type, internal name, and associated item to your mod. - (The item parameter may be null if you don't want to associate an item with the texture.) - You can then get the ID for your texture by calling EquipLoader.GetEquipTexture, and using the EquipTexture's Slot property. - If the EquipType is EquipType.Body, make sure that you also provide an armTexture and a femaleTexture. - Returns the ID / slot that is assigned to the equipment texture. - - The item. - The type. - The name. - The texture. - The arm texture (for body slots). - The female texture (for body slots), if missing the regular body texture is used. - - - - - Adds an equipment texture of the specified type, internal name, and associated item to your mod. - This method is different from the other AddEquipTexture in that you can specify the class of the equipment texture, thus allowing you to override EquipmentTexture's hooks. - All other parameters are the same as the other AddEquipTexture. - - The equip texture. - The item. - The type. - The name. - The texture. - The arm texture (for body slots). - The female texture (for body slots), if missing the regular body texture is used. - - - - - Gets the EquipTexture instance corresponding to the name and EquipType. Returns null if no EquipTexture with the given name and EquipType is found. - - The name. - The type. - - - - - Gets the slot/ID of the equipment texture corresponding to the given name. Returns -1 if no EquipTexture with the given name is found. - - The name. - - - - - - Same as GetEquipSlot, except returns the number as an sbyte (signed byte) for your convenience. - - The name. - - - - - - Adds a prefix to your mod with the specified internal name. This method should be called in Load. You can obtain an instance of ModPrefix by overriding it then creating an instance of the subclass. - - The name. - The prefix. - You tried to add 2 ModItems with the same name: " + name + ". Maybe 2 classes share a classname but in different namespaces while autoloading or you manually called AddItem with 2 items of the same name. - - - - Gets the ModPrefix instance corresponding to the name. Because this method is in the Mod class, conflicts between mods are avoided. Returns null if no ModPrefix with the given name is found. - - The name. - - - - - Same as the other GetPrefix, but assumes that the class name and internal name are the same. - - - - - - - Gets the internal ID / type of the ModPrefix corresponding to the name. Returns 0 if no ModPrefix with the given name is found. - - The name. - - - - - Same as the other PrefixType, but assumes that the class name and internal name are the same. - - - - - - - Adds a type of dust to your mod with the specified name. Create an instance of ModDust normally, preferably through the constructor of an overriding class. Leave the texture as an empty string to use the vanilla dust sprite sheet. - - The name. - The dust. - The texture. - - - - Gets the ModDust of this mod corresponding to the given name. Returns null if no ModDust with the given name is found. - - The name. - - - - - Same as the other GetDust, but assumes that the class name and internal name are the same. - - - - - - - Gets the type of the ModDust of this mod with the given name. Returns 0 if no ModDust with the given name is found. - - The name. - - - - - Same as the other DustType, but assumes that the class name and internal name are the same. - - - - - - - Adds a type of tile to the game with the specified name and texture. - - The name. - The tile. - The texture. - - - - Gets the ModTile of this mod corresponding to the given name. Returns null if no ModTile with the given name is found. - - The name. - - - - - Same as the other GetTile, but assumes that the class name and internal name are the same. - - - - - - - Gets the type of the ModTile of this mod with the given name. Returns 0 if no ModTile with the given name is found. - - The name. - - - - - Same as the other TileType, but assumes that the class name and internal name are the same. - - - - - - - Adds the given GlobalTile instance to this mod with the provided name. - - The name. - The global tile. - - - - Gets the GlobalTile instance with the given name from this mod. - - The name. - - - - - Same as the other GetGlobalTile, but assumes that the class name and internal name are the same. - - - - - - - Manually add a tile entity during Load. - - - - - Gets the ModTileEntity of this mod corresponding to the given name. Returns null if no ModTileEntity with the given name is found. - - The name. - - - - - Same as the other GetTileEntity, but assumes that the class name and internal name are the same. - - - - - - - Gets the type of the ModTileEntity of this mod with the given name. Returns -1 if no ModTileEntity with the given name is found. - - The name. - - - - - Same as the other TileEntityType, but assumes that the class name and internal name are the same. - - - - - - - Adds a type of wall to the game with the specified name and texture. - - The name. - The wall. - The texture. - - - - Gets the ModWall of this mod corresponding to the given name. Returns null if no ModWall with the given name is found. - - The name. - - - - - Gets the type of the ModWall of this mod with the given name. Returns 0 if no ModWall with the given name is found. - - The name. - - - - - Same as the other WallType, but assumes that the class name and internal name are the same. - - - - - - - Adds the given GlobalWall instance to this mod with the provided name. - - The name. - The global wall. - - - - Gets the GlobalWall instance with the given name from this mod. - - The name. - - - - - Adds a type of projectile to the game with the specified name. - - The name. - The projectile. - - - - Gets the ModProjectile of this mod corresponding to the given name. Returns null if no ModProjectile with the given name is found. - - The name. - - - - - Gets the type of the ModProjectile of this mod with the given name. Returns 0 if no ModProjectile with the given name is found. - - The name. - - - - - Same as the other ProjectileType, but assumes that the class name and internal name are the same. - - - - - - - Adds the given GlobalProjectile instance to this mod with the provided name. - - The name. - The global projectile. - - - - Gets the GlobalProjectile instance with the given name from this mod. - - The name. - - - - - Adds a type of NPC to the game with the specified name and texture. Also allows you to give the NPC alternate textures. - - The name. - The NPC. - - - - Gets the ModNPC of this mod corresponding to the given name. Returns null if no ModNPC with the given name is found. - - The name. - - - - - Gets the type of the ModNPC of this mod with the given name. Returns 0 if no ModNPC with the given name is found. - - The name. - - - - - Same as the other NPCType, but assumes that the class name and internal name are the same. - - - - - - - Adds the given GlobalNPC instance to this mod with the provided name. - - The name. - The global NPC. - - - - Gets the GlobalNPC instance with the given name from this mod. - - The name. - - - - - Assigns a head texture to the given town NPC type. - - Type of the NPC. - The texture. - - - - - Assigns a head texture that can be used by NPCs on the map. - - The texture. - An optional npc id for NPCID.Sets.BossHeadTextures - - - - Adds a type of ModPlayer to this mod. All ModPlayer types will be newly created and attached to each player that is loaded. - - The name. - The player. - - - - Gets the ModPlayer of this mod corresponding to the given name. Returns null if no ModPlayer with the given name is found. - - The name. - - - - - Adds a type of buff to the game with the specified internal name and texture. - - The name. - The buff. - The texture. - - - - Gets the ModBuff of this mod corresponding to the given name. Returns null if no ModBuff with the given name is found. - - The name. - - - - - Gets the type of the ModBuff of this mod corresponding to the given name. Returns 0 if no ModBuff with the given name is found. - - The name. - - - - - Same as the other BuffType, but assumes that the class name and internal name are the same. - - - - - - - Adds the given GlobalBuff instance to this mod using the provided name. - - The name. - The global buff. - - - - Gets the GlobalBuff with the given name from this mod. - - The name. - - - - - Adds the given mount to the game with the given name and texture. The extraTextures dictionary should optionally map types of mount textures to the texture paths you want to include. - - The name. - The mount. - The texture. - The extra textures. - - - - Gets the ModMountData instance of this mod corresponding to the given name. Returns null if no ModMountData has the given name. - - The name. - - - - - Gets the ID of the ModMountData instance corresponding to the given name. Returns 0 if no ModMountData has the given name. - - The name. - - - - - Same as the other MountType, but assumes that the class name and internal name are the same. - - - - - - - Adds a ModWorld to this mod with the given name. - - The name. - The mod world. - - - - Gets the ModWorld instance with the given name from this mod. - - The name. - - - - - Same as the other GetModWorld, but assumes that the class name and internal name are the same. - - - - - - - Adds the given underground background style with the given name to this mod. - - The name. - The ug bg style. - - - - Returns the underground background style corresponding to the given name. - - The name. - - - - - Adds the given surface background style with the given name to this mod. - - The name. - The surface bg style. - - - - Returns the surface background style corresponding to the given name. - - The name. - - - - - Returns the Slot of the surface background style corresponding to the given name. - - The name. - - - - - Adds the given global background style with the given name to this mod. - - The name. - The global bg style. - - - - Returns the global background style corresponding to the given name. - - The name. - - - - - Adds the given water style to the game with the given name, texture path, and block texture path. - - The name. - The water style. - The texture. - The block texture. - - - - Returns the water style with the given name from this mod. - - The name. - - - - - Adds the given waterfall style to the game with the given name and texture path. - - The name. - The waterfall style. - The texture. - - - - Returns the waterfall style with the given name from this mod. - - The name. - - - - - Returns the waterfall style corresponding to the given name. - - The name. - - - - - Adds the given texture to the game as a custom gore, with the given custom gore behavior. If no custom gore behavior is provided, the custom gore will have the default vanilla behavior. - - The texture. - The mod gore. - - - - Shorthand for calling ModGore.GetGoreSlot(this.Name + '/' + name). - - The name. - - - - - Same as the other GetGoreSlot, but assumes that the class name and internal name are the same. - - - - - - - Adds the given sound file to the game as the given type of sound and with the given custom sound playing. If no ModSound instance is provided, the custom sound will play in a similar manner as the default vanilla ones. - - The type. - The sound path. - The mod sound. - - - - Shorthand for calling SoundLoader.GetSoundSlot(type, this.Name + '/' + name). - - The type. - The name. - - - - - Shorthand for calling SoundLoader.GetLegacySoundSlot(type, this.Name + '/' + name). - - The type. - The name. - - - - - Adds a texture to the list of background textures and assigns it a background texture slot. - - The texture. - - - - Gets the texture slot corresponding to the specified texture name. Shorthand for calling BackgroundTextureLoader.GetBackgroundSlot(this.Name + '/' + name). - - The name. - - - - - Manually add a Global Recipe during Load - - The name. - The global recipe. - - - - Gets the global recipe corresponding to the specified name. - - The name. - - - - - Manually add a Command during Load - - - - - Allows you to tie a music ID, and item ID, and a tile ID together to form a music box. When music with the given ID is playing, equipped music boxes have a chance to change their ID to the given item type. When an item with the given item type is equipped, it will play the music that has musicSlot as its ID. When a tile with the given type and Y-frame is nearby, if its X-frame is >= 36, it will play the music that has musicSlot as its ID. - - The music slot. - Type of the item. - Type of the tile. - The tile frame y. - - Cannot assign music box to vanilla music ID " + musicSlot - or - Music ID " + musicSlot + " does not exist - or - Cannot assign music box to vanilla item ID " + itemType - or - Item ID " + itemType + " does not exist - or - Cannot assign music box to vanilla tile ID " + tileType - or - Tile ID " + tileType + " does not exist - - - Music ID " + musicSlot + " has already been assigned a music box - or - Item ID " + itemType + " has already been assigned a music - or - or - Y-frame must be divisible by 36 - - - - - Registers a hotkey with a name and defaultKey. Use the returned ModHotKey to detect when buttons are pressed. Do this in a ModPlayer.ProcessTriggers. - - The name. - The default key. - - - - - Creates a ModTranslation object that you can use in AddTranslation. - - The key for the ModTranslation. The full key will be Mods.ModName.key - - - - Adds a ModTranslation to the game so that you can use Language.GetText to get a LocalizedText. - - - - - Retrieve contents of files within the tmod file - - The name. - - - - - Retrieve contents of files within the tmod file - - The name. - - - - - Shorthand for calling ModLoader.FileExists(this.FileName(name)). Note that file extensions are used here. - - The name. - - - - - Shorthand for calling ModContent.GetTexture(this.FileName(name)). - - - - - - Shorthand for calling ModLoader.TextureExists(this.FileName(name)). - - The name. - - - - - Shorthand for calling ModLoader.AddTexture(this.FileName(name), texture). - - The name. - The texture. - Texture already exist: " + name - - - - Shorthand for calling ModContent.GetSound(this.FileName(name)). - - The name. - - - - - - Shorthand for calling ModLoader.SoundExists(this.FileName(name)). - - The name. - - - - - Shorthand for calling ModContent.GetMusic(this.FileName(name)). - - The name. - - - - - - Shorthand for calling ModLoader.MusicExists(this.FileName(name)). - - The name. - - - - - Gets a SpriteFont loaded from the specified path. - - - - - - Used to check if a custom SpriteFont exists - - - - - Gets an Effect loaded from the specified path. - - - - - - Used to check if a custom Effect exists - - - - - Used for weak inter-mod communication. This allows you to interact with other mods without having to reference their types or namespaces, provided that they have implemented this method. - - - - - Creates a ModPacket object that you can write to and then send between servers and clients. - - The capacity. - - Cannot get packet for " + Name + " because it does not exist on the other side - - - - Loads .lang files - - - - - Allows you to determine what music should currently play. - - The music. - The music priority. - - - - A legacy hook that you should no longer use. Use the version with two parameters instead. - - - - - - Called when a hotkey is pressed. Check against the name to verify particular hotkey that was pressed. (Using the ModHotKey is more recommended.) - - The display name of the hotkey. - - - - Called whenever a net message / packet is received from a client (if this is a server) or the server (if this is a client). whoAmI is the ID of whomever sent the packet (equivalent to the Main.myPlayer of the sender), and reader is used to read the binary data of the packet. - - The reader. - The player the message is from. - - - - Allows you to modify net message / packet information that is received before the game can act on it. - - Type of the message. - The reader. - The player number the message is from. - - - - - Hijacks the send data method. Only use if you absolutely know what you are doing. If any hooks return true, the message is not sent. - - - - - Allows you to set the transformation of the screen that is drawn. (Translations, rotations, scales, etc.) - - - - - Ran every update and suitable for calling Update for UserInterface classes - - - - - Use this if you want to do something before anything in the World gets updated. - Called after UI updates, but before anything in the World (Players, NPCs, Projectiles, Tiles) gets updated. - - When is true or is 0 or 2, the game may do a partial update. This means that it only updates menus and some animations, but not the World or Entities. This hook - and every hook after it - only gets called on frames with a full update. - - If you are looking to hook a later part of the update process, see . - - - - - Called after Players got updated, but before any NPCs get updated. - - If you are looking to hook an earlier part of the update process, see . - If you are looking to hook a later part of the update process, see . - - - - - Called after NPCs got updated, but before any Gores get updated. - - If you are looking to hook an earlier part of the update process, see . - If you are looking to hook a later part of the update process, see . - - - - - Called after Gores got updated, but before any Projectiles get updated. - - If you are looking to hook an earlier part of the update process, see . - If you are looking to hook a later part of the update process, see . - - - - - Gets called immediately after all Projectiles are updated, but before any Items get updated. - - If you are looking to hook an earlier part of the update process, see . - If you are looking to hook a later part of the update process, see . - - - - - Called after Items got updated, but before any Dust gets updated. - - If you are looking to hook an earlier part of the update process, see . - If you are looking to hook a later part of the update process, see . - - - - - Called after Dust got updated, but before Time (day/night, events, etc.) gets updated. - - If you are looking to hook an earlier part of the update process, see . - If you are looking to hook a later part of the update process, see . - - - - - Called after Time got updated, but before the World gets updated. - - If you are looking to hook an earlier part of the update process, see . - If you are looking to hook a later part of the update process, see . - - - - - Called after Invasions got updated. The only thing that is updated after this is the Network. - - If you are looking to hook an earlier part of the update process, see . - If you are looking to hook even after the Network is updated, see . - - - - - Called after the Network got updated, this is the last hook that happens in an update. - - If you are looking to hook an earlier part of the update process, see . - - - - - Allows you to modify the elements of the in-game interface that get drawn. GameInterfaceLayer can be found in the Terraria.UI namespace. Check https://github.com/tModLoader/tModLoader/wiki/Vanilla-Interface-layers-values for vanilla interface layer names - - The layers. - - - - Allows you to modify color of light the sun emits. - - Tile lighting color - Background lighting color - - - - Allows you to modify overall brightness of lights. Can be used to create effects similiar to what night vision and darkness (de)buffs give you. Values too high or too low might result in glitches. For night vision effect use scale 1.03 - - Brightness scale - - - - Called after interface is drawn but right before mouse and mouse hover text is drawn. Allows for drawing interface. - - Note: This hook should no longer be used. It is better to use the ModifyInterfaceLayers hook. - - The sprite batch. - - - - Called while the fullscreen map is active. Allows custom drawing to the map. - - The mouse text. - - - - Called after the input keys are polled. Allows for modifying things like scroll wheel if your custom drawing should capture that. - - - - - Called in SP or Client when the Save and Quit button is pressed. One use for this hook is clearing out custom UI slots to return items to the player. - - - - - Run a given archiving task, which will archive to a backup .zip file - Zip entries added will be compressed - - - - - Adds a new entry to the archive .zip file - Will use the best compression level using Deflate - Some files are already compressed and will not be compressed further - - - - - Will delete old archive files - Algorithm details: - - One backup per day for the last week - - One backup per week for the last month - - One backup per month for all time - - - - - Responsible for archiving world backups - - - - - Responsible for archiving player backups - - - - - Write the archive. Writes the .plr and .tplr files, then writes the player directory - - - - - - Write local files, which simply writes the entire player dir - - - - - Each background style determines in its own way how exactly the background is drawn. This class serves as a collection of functions for underground backgrounds. - - - - - The mod that added this underground background style. - - - - - The internal name of this underground background style. - - - - - The ID of this underground background style. - - - - - Allows you to automatically add a ModUgBgStyle instead of using Mod.AddUgBgStyle. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this to either force or stop an autoload, or change the name that identifies this type of ModUgBgStyle. - - - - - Whether or not the conditions have been met for this background style to draw its backgrounds. Returns false by default. - - - - - Allows you to determine which textures make up the background by assigning their background slots/IDs to the given array. Mod.GetBackgroundSlot may be useful here. Index 0 is the texture on the border of the ground and sky layers. Index 1 is the texture drawn between rock and ground layers. Index 2 is the texture on the border of ground and rock layers. Index 3 is the texture drawn in the rock layer. The border images are 160x16 pixels, and the others are 160x96, but it seems like the right 32 pixels of each is a duplicate of the far left 32 pixels. - - - - - Each background style determines in its own way how exactly the background is drawn. This class serves as a collection of functions for above-ground backgrounds. - - - - - The mod that added this surface background style. - - - - - The internal name of this surface background style. - - - - - The ID of this surface background style. - - - - - Allows you to automatically add a ModSurfaceBgStyle instead of using Mod.AddSurfaceBgStyle. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this to either force or stop an autoload, or change the name that identifies this type of ModSurfaceBgStyle. - - - - - Whether or not the conditions have been met for this background style to draw its backgrounds. Returns false by default. - - - - - Allows you to modify the transparency of all background styles that exist. In general, you should move the index equal to this style's slot closer to 1, and all other indexes closer to 0. The transitionSpeed parameter is what you should add/subtract to each element of the fades parameter. See the ExampleMod for an example. - - - - - Allows you to determine which texture is drawn in the very back of the background. Mod.GetBackgroundSlot may be useful here, as well as for the other texture-choosing hooks. - - - - - Allows you to determine which texture is drawn in the middle of the background. - - - - - Gives you complete freedom over how the closest part of the background is drawn. Return true for ChooseCloseTexture to have an effect; return false to disable tModLoader's own code for drawing the close background. - - - - - Allows you to determine which texture is drawn in the closest part of the background. This also lets you modify the scale and parallax (as well as two unfortunately-unknown parameters). - - The scale. - The parallax value. - a? - b? - - - - - This class serves to collect functions that operate on any kind of background style, without being specific to one single background style. - - - - - That mod that added this global background style. - - - - - The internal name of this global background style. - - - - - Allows you to automatically add a GlobalBgStyle instead of using Mod.AddGlobalBgStyle. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this to either force or stop an autoload, or change the name that identifies this type of GlobalBgStyle. - - - - - Allows you to change which underground background style is being used. - - - - - Allows you to change which surface background style is being used. - - - - - Allows you to change which textures make up the underground background by assigning their background slots/IDs to the given array. Index 0 is the texture on the border of the ground and sky layers. Index 1 is the texture drawn between rock and ground layers. Index 2 is the texture on the border of ground and rock layers. Index 3 is the texture drawn in the rock layer. The border images are 160x16 pixels, and the others are 160x96, but it seems like the right 32 pixels of each is a duplicate of the far left 32 pixels. - - - - - Allows you to modify the transparency of all background styles that exist. The style parameter is the current style that is being used. - - - - - This class serves as a place for you to define a new buff and how that buff behaves. - - - - - The mod that added this ModBuff. - - - - - The internal name of this type of buff. - - - - - The buff id of this buff. - - - - - The translations of this buff's display name. - - - - - The translations of this buff's description. - - - - If this buff is a debuff, setting this to true will make this buff last twice as long on players in expert mode. Defaults to false. - - - Whether or not it is always safe to call Player.DelBuff on this buff. Setting this to false will prevent the nurse from being able to remove this debuff. Defaults to true. - - - - Allows you to automatically load a buff instead of using Mod.AddBuff. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name and texture is initialized to the namespace and overriding class name with periods replaced with slashes. Use this method to either force or stop an autoload, and to change the default display name and texture path. - - - - - This is where all buff related assignments go. For example: - - Main.buffName[Type] = "Display Name"; - Main.buffTip[Type] = "Buff Tooltip"; - Main.debuff[Type] = true; - Main.buffNoTimeDisplay[Type] = true; - Main.vanityPet[Type] = true; - Main.lightPet[Type] = true; - - - - - - Allows you to make this buff give certain effects to the given player. If you remove the buff from the player, make sure the decrement the buffIndex parameter by 1. - - - - - Allows you to make this buff give certain effects to the given NPC. If you remove the buff from the NPC, make sure to decrement the buffIndex parameter by 1. - - - - - Allows to you make special things happen when adding this buff to a player when the player already has this buff. Return true to block the vanilla re-apply code from being called; returns false by default. The vanilla re-apply code sets the buff time to the "time" argument if that argument is larger than the current buff time. - - - - - Allows to you make special things happen when adding this buff to an NPC when the NPC already has this buff. Return true to block the vanilla re-apply code from being called; returns false by default. The vanilla re-apply code sets the buff time to the "time" argument if that argument is larger than the current buff time. - - - - - Allows you to modify the tooltip that displays when the mouse hovers over the buff icon, as well as the color the buff's name is drawn in. - - - - A flag enum representing context where this command operates. - - - Command can be used in Chat in SP and MP. - - - Command is executed by server in MP. - - - Command can be used in server console during MP. - - - Command can be used in Chat in SP and MP, but executes on the Server in MP. (singleplayer ? Chat : Server) - - - - The Player object corresponding to the Player that invoked this command. Use this when the Player is needed. Don't use Main.LocalPlayer because that would be incorrect for various CommandTypes. - - - - - Use this to repond to the Player that invoked this command. This method handles writing to the console, writing to chat, or sending messages over the network for you depending on the CommandType used. Avoid using Main.NewText, Console.WriteLine, or NetMessage.SendChatMessageToClient directly because the logic would change depending on CommandType. - - - - - - - This class represents a chat or console command. Use the CommandType to specify the scope of the command. - - - - The Mod this ModCommand belongs to. - - - Internal name of this command. - - - The desired text to trigger this command. - - - A flag enum representing context where this command operates. - - - A short usage explanation for this command. - - - A short description of this command. - - - Autoload this command, defaults to Mod.Properties.Autoload. - - - The code that is executed when the command is triggered. - - - - This class represents a type of modded tree. The tree will share a tile ID with the vanilla trees (5), so that the trees can freely convert between each other if the soil below is converted. This class encapsulates several functions that distinguish each type of tree from each other. Use ModTile.SetModTree or GlobalTile.AddModTree to make a tile able to grow this kind of tree. - - - - - Return the type of dust created when this tree is destroyed. Returns 7 by default. - - - - - - Return the type of gore created to represent leaves when this tree grows on-screen. Returns -1 by default. - - - - - - Whether or not this tree can drop acorns. Returns true by default. - - - - - - The ID of the item that is dropped in bulk when this tree is destroyed. - - - - - - Return the texture that represents the tile sheet used for drawing this tree. - - - - - - Return the texture containing the possible tree tops that can be drawn above this tree. - - - - - - - - - - - - - Return the texture containing the possible tree branches that can be drawn next to this tree. The trunkOffset parameter can be added to i to get the x-coordinate of the tree's trunk. - - - - - - - - - - This class represents a type of modded palm tree. The palm tree will share a tile ID with the vanilla palm trees (323), so that the trees can freely convert between each other if the sand below is converted. This class encapsulates several functions that distinguish each type of palm tree from each other. Use ModTile.SetModPalmTree or GlobalTile.AddModPalmTree to make a tile able to grow this kind of palm tree. - - - - - Return the type of dust created when this palm tree is destroyed. Returns 215 by default. - - - - - - Return the type of gore created to represent leaves when this palm tree grows on-screen. Returns -1 by default. - - - - - - The ID of the item that is dropped in bulk when this palm tree is destroyed. - - - - - - Return the texture that represents the tile sheet used for drawing this palm tree. - - - - - - Return the texture containing the possible tree tops that can be drawn above this palm tree. - - - - - - This class represents a type of modded cactus. The cactus will share a tile ID with the vanilla cacti (80), so that the cacti can freely convert between each other if the sand below is converted. This class encapsulates a function for retrieving the cactus's texture, the only difference between each type of cactus. Use ModTile.SetModCactus or GlobalTile.AddModCactus to make a tile able to grow this kind of cactus. - - - - - Return the texture that represents the tile sheet used for drawing this cactus. - - - - - - Manages content added by mods. - Liasons between mod content and Terraria's arrays and oversees the Loader classes. - - - - - Gets the byte representation of the file with the specified name. The name is in the format of "ModFolder/OtherFolders/FileNameWithExtension". Throws an ArgumentException if the file does not exist. - - Missing mod: " + name - - - - Returns whether or not a file with the specified name exists. - - - - - Gets the texture with the specified name. The name is in the format of "ModFolder/OtherFolders/FileNameWithoutExtension". Throws an ArgumentException if the texture does not exist. If a vanilla texture is desired, the format "Terraria/FileNameWithoutExtension" will reference an image from the "terraria/Content/Images" folder. Note: Texture2D is in the Microsoft.Xna.Framework.Graphics namespace. - - Missing mod: " + name - - - - Returns whether or not a texture with the specified name exists. - - - - - Returns whether or not a texture with the specified name exists. texture will be populated with null if not found, and the texture if found. - - The texture name that is requested - The texture itself will be output to this - True if the texture is found, false otherwise. - - - - Gets the sound with the specified name. The name is in the same format as for texture names. Throws an ArgumentException if the sound does not exist. Note: SoundEffect is in the Microsoft.Xna.Framework.Audio namespace. - - Missing mod: " + name - - - - Returns whether or not a sound with the specified name exists. - - - - - Gets the music with the specified name. The name is in the same format as for texture names. Throws an ArgumentException if the music does not exist. Note: SoundMP3 is in the Terraria.ModLoader namespace. - - Missing mod: " + name - - - - Returns whether or not a sound with the specified name exists. - - - - - Gets the ModNPC instance corresponding to the specified type. - - The type of the npc - The ModNPC instance in the npcs array, null if not found. - - - - Gets the index of the boss head texture corresponding to the given texture path. - - - - - - - Gets the index of the head texture corresponding to the given texture path. - - Relative texture path - The index of the texture in the heads array, -1 if not found. - - - - Gets the ModItem instance corresponding to the specified type. Returns null if no modded item has the given type. - - - - - Gets the ModDust instance with the given type. Returns null if no ModDust with the given type exists. - - - - - Gets the ModProjectile instance corresponding to the specified type. - - The type of the projectile - The ModProjectile instance in the projectiles array, null if not found. - - - - Gets the ModBuff instance with the given type. If no ModBuff with the given type exists, returns null. - - - - - Gets the equipment texture for the specified equipment type and ID. - - - - - - - - Gets the ModMountData instance corresponding to the given type. Returns null if no ModMountData has the given type. - - The type of the mount. - Null if not found, otherwise the ModMountData associated with the mount. - - - - Gets the ModTile instance with the given type. If no ModTile with the given type exists, returns null. - - The type of the ModTile - The ModTile instance in the tiles array, null if not found. - - - - Gets the ModWall instance with the given type. If no ModWall with the given type exists, returns null. - - - - - Returns the ModWaterStyle with the given ID. - - - - - Returns the ModWaterfallStyle with the given ID. - - - - - Returns the slot/ID of the background texture with the given name. - - - - - Returns the ModSurfaceBgStyle object with the given ID. - - - - - Returns the ModUgBgStyle object with the given ID. - - - - - Get the id (type) of a ModItem by class. Assumes one instance per class. - - - - - Get the id (type) of a ModPrefix by class. Assumes one instance per class. - - - - - Get the id (type) of a ModDust by class. Assumes one instance per class. - - - - - Get the id (type) of a ModTile by class. Assumes one instance per class. - - - - - Get the id (type) of a ModTileEntity by class. Assumes one instance per class. - - - - - Get the id (type) of a ModWall by class. Assumes one instance per class. - - - - - Get the id (type) of a ModProjectile by class. Assumes one instance per class. - - - - - Get the id (type) of a ModNPC by class. Assumes one instance per class. - - - - - Get the id (type) of a ModBuff by class. Assumes one instance per class. - - - - - Get the id (type) of a ModMountData by class. Assumes one instance per class. - - - - - Several arrays and other fields hold references to various classes from mods, we need to clean them up to give properly coded mods a chance to be completely free of references - so that they can be collected by the garbage collection. For most things eventually they will be replaced during gameplay, but we want the old instance completely gone quickly. - - - - - This class represents a type of dust that is added by a mod. Only one instance of this class will ever exist for each type of dust you add. - - - - Allows you to choose a type of dust for this type of dust to copy the behavior of. Defaults to -1, which means that no behavior is copied. - - - - The internal name of this type of dust. - - - - - The sprite sheet that this type of dust uses. Normally a sprite sheet will consist of a vertical alignment of three 10 x 10 pixel squares, each one containing a possible look for the dust. - - - - - The mod that added this type of dust. - - - - - The ID of this type of dust. - - - - - Gets the ModDust instance with the given type. Returns null if no ModDust with the given type exists. - - - - - Allows you to automatically add a type of dust without having to use Mod.AddDust. By default returns the mod's Autoload property. Return true to automatically add the dust. Name will be initialized to the dust's class name, and Texture will be initialized to the dust's namespace and overriding class name with periods replaced with slashes. The name parameter determines the internal name and the texture parameter determines the texture path. - - - - - Allows you to set this ModDust's updateType field and modify the Terraria.GameContent.ChildSafety.SafeDust array. - - - - - Allows you to modify a dust's fields when it is created. - - - - - Allows you to customize how you want this type of dust to behave. Return true to allow for vanilla dust updating to also take place; will return true by default. Normally you will want this to return false. - - - - - Allows you to add behavior to this dust on top of the default dust behavior. Return true if you're applying your own behavior; return false to make the dust slow down by itself. Normally you will want this to return true. - - - - - Allows you to override the color this dust will draw in. Return null to draw it in the normal light color; returns null by default. Note that the dust.noLight field makes the dust ignore lighting and draw in full brightness, and can be set in OnSpawn instead of having to return Color.White here. - - - - - This class allows you to customize the behavior of a custom gore. Create a new instance of this and pass it as a parameter to Mod.AddGore to customize the gore you are adding. If you are autoloading gore, then give it the same name as the gore texture. - - - - Allows you to copy the Update behavior of a different type of gore. This defaults to 0, which means no behavior is copied. - - - - Gets the type of the custom gore corresponding to the given texture. Returns 0 if the texture does not represent a gore. - - - - - Allows you to modify a gore's fields when it is created. - - - - - Allows you to customize how you want this type of gore to behave. Return true to allow for vanilla gore updating to also take place; returns true by default. - - - - - Allows you to override the color this gore will draw in. Return null to draw it in the normal light color; returns null by default. - - - - - - Allows you to determine whether or not this gore will draw behind tiles, etc. Returns false by default. - - - - - Represents a loaded hotkey. It is suggested to access the hotkey status only in ModPlayer.ProcessTriggers. - - - - - Gets the currently assigned keybindings. Useful for prompts, tooltips, informing users. - - The InputMode. Choose between InputMode.Keyboard and InputMode.XBoxGamepad - - - - - Returns true if this hotkey is pressed currently. Useful for createing a behavior that relies on the hotkey being held down. - - - - - Returns true if this hotkey was just released this update. This is a fire-once-per-press behavior. - - - - - Returns true if this hotkey was just released this update. - - - - - Returns true if this hotkey was pressed the previous update. - - - - - This class serves as a place for you to place all your properties and hooks for each item. Create instances of ModItem (preferably overriding this class) to pass as parameters to Mod.AddItem. - - - - - The item object that this ModItem controls. - - - The item. - - - - - Gets the mod. - - - The mod that added this ModItem. - - - - - The internal name of this ModItem. - - - - - The translations for the display name of this item. - - - - - The translations for the display name of this tooltip. - - - - - The file name of this item's texture file in the mod loader's file space. - - - - - Allows you to automatically load an item instead of using Mod.AddItem. - Return true to allow autoloading; by default returns the mod's autoload property. - Use this method to force or stop an autoload or change the internal name. - - The name, initialized to the name of this type. - - - - Whether instances of this ModItem are created through Clone or constructor (by default implementations of NewInstance and Clone(Item, Item)). - Defaults to false (using default constructor). - - - - - Returns a clone of this ModItem. - Allows you to decide which fields of your ModItem class are copied over when an item stack is split or something similar happens. - By default this will return a memberwise clone; you will want to override this if your ModItem contains object references. - Only called if CloneNewInstances is set to true. - Since several ModItem class fields are also set by the default implementation of this method, you'll most likely want to call base.Clone() as the first statement of your override. - - var clone = (ExampleHookItem)base.Clone(); - clone.targets = (int[])this.targets.Clone(); // Or whatever deep copy operations are relevant. - return clone; - - - - Create a copy of this instanced ModItem. Called when an item is cloned. - Defaults to NewInstance(item) - - The item being cloned - The new item - - - - Create a new instance of this ModItem for an Item instance. - Called at the end of Item.SetDefaults. - If CloneNewInstances is true, just calls Clone() - Otherwise calls the default constructor and copies fields - - - - - This is where you set all your item's properties, such as width, damage, shootSpeed, defense, etc. - For those that are familiar with tAPI, this has the same function as .json files. - - - - - Automatically sets certain defaults. Override this if you do not want the properties to be set for you. - - - - - This is where you set all your item's static properties, such as names/translations and the arrays in ItemID.Sets. - This is called after SetDefaults on the initial ModItem - - - - - Automatically sets certain static defaults. Override this if you do not want the properties to be set for you. - - - - - Allows you to manually choose what prefix an item will get. - - The ID of the prefix to give the item, -1 to use default vanilla behavior - - - - To prevent putting the item in the tinkerer slot, return false when pre is -3. - To prevent rolling of a prefix on spawn, return false when pre is -1. - To force rolling of a prefix on spawn, return true when pre is -1. - - To reduce the probability of a prefix on spawn (pre == -1) to X%, return false 100-4X % of the time. - To increase the probability of a prefix on spawn (pre == -1) to X%, return true (4X-100)/3 % of the time. - - To delete a prefix from an item when the item is loaded, return false when pre is the prefix you want to delete. - Use AllowPrefix to prevent rolling of a certain prefix. - - The prefix being applied to the item, or the roll mode. -1 is when the item is naturally generated in a chest, crafted, purchased from an NPC, looted from a grab bag (excluding presents), or dropped by a slain enemy (if it's spawned with prefixGiven: -1). -2 is when the item is rolled in the tinkerer. -3 determines if the item can be placed in the tinkerer slot. - - - - - Force a re-roll of a prefix by returning false. - - - - - Returns whether or not this item can be used. By default returns true. - - The player using the item. - - - - Allows you to modify the location and rotation of this item in its use animation. - - The player. - - - - Allows you to modify the location and rotation of this item when the player is holding it. - - The player. - - - - Allows you to make things happen when the player is holding this item (for example, torches make light and water candles increase spawn rate). - - The player. - - - - Allows you to change the effective useTime of this item. - - - The multiplier on the usage speed. 1f by default. Values greater than 1 increase the item speed. - - - - Allows you to change the effective useAnimation of this item. - - - The multiplier on the animation speed. 1f by default. Values greater than 1 increase the item speed. - - - - Allows you to temporarily modify the amount of life a life healing item will heal for, based on player buffs, accessories, etc. This is only called for items with a healLife value. - - The player using the item. - Whether the item is being used through quick heal or not. - The amount of life being healed. - - - - Allows you to temporarily modify the amount of mana a mana healing item will heal for, based on player buffs, accessories, etc. This is only called for items with a healMana value. - - The player using the item. - Whether the item is being used through quick heal or not. - The amount of mana being healed. - - - - Allows you to temporarily modify the amount of mana this item will consume on use, based on player buffs, accessories, etc. This is only called for items with a mana value. - - The player using the item. - Used for decreasingly stacking buffs (most common). Only ever use -= on this field. - Use to directly multiply the item's effective mana cost. Good for debuffs, or things which should stack separately (eg meteor armor set bonus). - - - - Allows you to make stuff happen when a player doesn't have enough mana for the item they are trying to use. - If the player has high enough mana after this hook runs, mana consumption will happen normally. - Only runs once per item use. - - The player using the item. - The mana needed to use the item. - - - - Allows you to make stuff happen when a player consumes mana on use of this item. - - The player using the item. - The mana consumed from the player. - - - - Allows you to temporarily modify this weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - Note that tModLoader follows vanilla principle of only allowing one effective damage class at a time. - This means that if you want your own custom damage class, all vanilla damage classes must be set to false. - Vanilla checks classes in this order: melee, ranged, magic, thrown, summon - So if you set both melee class and another class to true, only the melee damage will actually be used. - - The player using the item - The damage. - - - - Allows you to temporarily modify this weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - - The player using the item - Used for additively stacking buffs (most common). Only ever use += on this field. - Use to directly multiply the player's effective damage. Good for debuffs, or things which should stack separately (eg ammo type buffs) - - - - Allows you to temporarily modify this weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - - The player using the item - Used for additively stacking buffs (most common). Only ever use += on this field. Things with effects like "5% increased MyDamageClass damage" would use this: `add += 0.05` - Use to directly multiply the player's effective damage. Good for debuffs, or things which should stack separately (eg ammo type buffs) - This is a flat damage bonus that will be added after add and mult are applied. It facilitates effects like "4 more damage from weapons" - - - - Allows you to temporarily modify this weapon's knockback based on player buffs, etc. This allows you to customize knockback beyond the Player class's limited fields. - Note that tModLoader follows vanilla principle of only allowing one effective damage class at a time. - This means that if you want your own custom damage class, all vanilla damage classes must be set to false. - Vanilla checks classes in this order: melee, ranged, magic, thrown, summon - So if you set both melee class and another class to true, only the melee knockback will actually be used. - - The player using the item - The knockback - - - - Allows you to temporarily modify this weapon's crit chance based on player buffs, etc. - Note that tModLoader follows vanilla principle of only allowing one effective damage class at a time. - This means that if you want your own custom damage class, all vanilla damage classes must be set to false. - If you use a custom damage class, the crit value will equal item.crit - Vanilla checks classes in this order: melee, ranged, magic, thrown, and summon cannot crit. - So if you set both melee class and another class to true, only the melee crit will actually be used. - - The player using this item - The critical strike chance, at 0 it will never trigger a crit and at 100 or above it will always trigger a crit - - - - Allows you to modify the projectile created by a weapon based on the ammo it is using. This hook is called on the ammo. - - The item that is using this ammo - The player using the item - The ID of the projectile shot - The speed of the projectile shot - The damage of the projectile shot - The speed of the projectile shot - - - - Whether or not ammo will be consumed upon usage. Called both by the gun and by the ammo; if at least one returns false then the ammo will not be used. By default returns true. - If false is returned, the OnConsumeAmmo hook is never called. - - The player. - - - - - Allows you to makes things happen when ammo is consumed. Called both by the gun and by the ammo. - Called before the ammo stack is reduced. - - The player. - - - - This is called before the weapon creates a projectile. You can use it to create special effects, such as changing the speed, changing the initial position, and/or firing multiple projectiles. Return false to stop the game from shooting the default projectile (do this if you manually spawn your own projectile). Returns true by default. - - The player. - The shoot spawn position. - The speed x calculated from shootSpeed and mouse position. - The speed y calculated from shootSpeed and mouse position. - The projectile type choosen by ammo and weapon. - The projectile damage. - The projectile knock back. - - - - - Changes the hitbox of this melee weapon when it is used. - - The player. - The hitbox. - if set to true [no hitbox]. - - - - Allows you to give this melee weapon special effects, such as creating light or dust. - - The player. - The hitbox. - - - - Allows you to determine whether this melee weapon can hit the given NPC when swung. Return true to allow hitting the target, return false to block this weapon from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. - - The player. - The target. - - - - - Allows you to modify the damage, knockback, etc., that this melee weapon does to an NPC. - - The player. - The target. - The damage. - The knock back. - if set to true [crit]. - - - - Allows you to create special effects when this melee weapon hits an NPC (for example how the Pumpkin Sword creates pumpkin heads). - - The player. - The target. - The damage. - The knock back. - if set to true [crit]. - - - - Allows you to determine whether this melee weapon can hit the given opponent player when swung. Return false to block this weapon from hitting the target. Returns true by default. - - The player. - The target. - - true if this instance [can hit PVP] the specified player; otherwise, false. - - - - - Allows you to modify the damage, etc., that this melee weapon does to a player. - - The player. - The target. - The damage. - if set to true [crit]. - - - - Allows you to create special effects when this melee weapon hits a player. - - The player. - The target. - The damage. - if set to true [crit]. - - - - Allows you to make things happen when this item is used. Return true if using this item actually does stuff. Returns false by default. - Runs on all clients and server. Use if (player.whoAmI == Main.myPlayer) and if (Main.netMode == NetmodeID.??) if appropriate. - - The player. - - - - - If this item is consumable and this returns true, then this item will be consumed upon usage. Returns true by default. - If false is returned, the OnConsumeItem hook is never called. - - The player. - - - - - Allows you to make things happen when this item is consumed. - Called before the item stack is reduced. - - The player. - - - - Allows you to modify the player's animation when this item is being used. Return true if you modify the player's animation. Returns false by default. - - The player. - - - - - Allows you to modify the player's animation when the player is holding this item. Return true if you modify the player's animation. Returns false by default. - - The player. - - - - - Allows you to make this item usable by right-clicking. Returns false by default. When this item is used by right-clicking, player.altFunctionUse will be set to 2. - - The player. - - - - - Allows you to make things happen when this item is in the player's inventory (for example, how the cell phone makes information display). - - The player. - - - - Allows you to give effects to this armor or accessory, such as increased damage. - - The player. - - - - Allows you to give effects to this accessory. The hideVisual parameter is whether the player has marked the accessory slot to be hidden from being drawn on the player. - - The player. - if set to true the accessory is hidden. - - - - Allows you to create special effects (such as dust) when this item's equipment texture of the given equipment type is displayed on the player. Note that this hook is only ever called through this item's associated equipment texture. - - The player. - The type. - - - - Returns whether or not the head armor, body armor, and leg armor make up a set. If this returns true, then this item's UpdateArmorSet method will be called. Returns false by default. - - The head. - The body. - The legs. - - - - Allows you to give set bonuses to the armor set that this armor is in. Set player.setBonus to a string for the bonus description. - - The player. - - - - Returns whether or not the head armor, body armor, and leg armor textures make up a set. This hook is used for the PreUpdateVanitySet, UpdateVanitySet, and ArmorSetShadow hooks. By default, this will return the same value as the IsArmorSet hook (passing the equipment textures' associated items as parameters), so you will not have to use this hook unless you want vanity effects to be entirely separate from armor sets. Note that this hook is only ever called through this item's associated equipment texture. - - The head. - The body. - The legs. - - - - Allows you to create special effects (such as the necro armor's hurt noise) when the player wears this item's vanity set. This hook is called regardless of whether the player is frozen in any way. Note that this hook is only ever called through this item's associated equipment texture. - - The player. - - - - Allows you to create special effects (such as dust) when the player wears this item's vanity set. This hook will only be called if the player is not frozen in any way. Note that this hook is only ever called through this item's associated equipment texture. - - The player. - - - - Allows you to determine special visual effects this vanity set has on the player without having to code them yourself. Note that this hook is only ever called through this item's associated equipment texture. Use the player.armorEffectDraw bools to activate the desired effects. - - player.armorEffectDrawShadow = true; - The player. - - - - Allows you to modify the equipment that the player appears to be wearing. This hook will only be called for body armor and leg armor. Note that equipSlot is not the same as the item type of the armor the player will appear to be wearing. Worn equipment has a separate set of IDs. You can find the vanilla equipment IDs by looking at the headSlot, bodySlot, and legSlot fields for items, and modded equipment IDs by looking at EquipLoader. - If this hook is called on body armor, equipSlot allows you to modify the leg armor the player appears to be wearing. If you modify it, make sure to set robes to true. If this hook is called on leg armor, equipSlot allows you to modify the leg armor the player appears to be wearing, and the robes parameter is useless. - Note that this hook is only ever called through this item's associated equipment texture. - - if set to true [male]. - The equip slot. - if set to true [robes]. - - - - Returns whether or not this item does something when it is right-clicked in the inventory. Returns false by default. - - - - - Allows you to make things happen when this item is right-clicked in the inventory. Useful for goodie bags. - - The player. - - - - Allows you to give items to the given player when this item is right-clicked in the inventory if the bossBagNPC field has been set to a positive number. This ignores the CanRightClick and RightClick hooks. - - The player. - - - - Returns if the normal reforge pricing is applied. - If true or false is returned and the price is altered, the price will equal the altered price. - The passed reforge price equals the item.value. Vanilla pricing will apply 20% discount if applicable and then price the reforge at a third of that value. - - - - - This hook gets called when the player clicks on the reforge button and can afford the reforge. - Returns whether the reforge will take place. If false is returned, the PostReforge hook is never called. - Reforging preserves modded data on the item. - - - - - This hook gets called immediately after an item gets reforged by the Goblin Tinkerer. - Useful for modifying modded data based on the reforge result. - - - - - Allows you to determine whether the skin/shirt on the player's arms and hands are drawn when this body armor is worn. By default both flags will be false. Note that if drawHands is false, the arms will not be drawn either. Also note that this hook is only ever called through this item's associated equipment texture. - - if set to true [draw hands]. - if set to true [draw arms]. - - - - Allows you to determine whether the player's hair or alt (hat) hair draws when this head armor is worn. By default both flags will be false. Note that this hook is only ever called through this item's associated equipment texture. - - if set to true [draw hair]. - if set to true [draw alt hair]. - - - - Return false to hide the player's head when this head armor is worn. Returns true by default. Note that this hook is only ever called through this item's associated equipment texture. - - - - - - Return false to hide the player's body when this body armor is worn. Returns true by default. Note that this hook is only ever called through this item's associated equipment texture. - - - - - - Return false to hide the player's legs when this leg armor or shoe accessory is worn. Returns true by default. Note that this hook is only ever called through this item's associated equipment texture. - - - - - - Allows you to modify the colors in which this armor and surrounding accessories are drawn, in addition to which glow mask and in what color is drawn. Note that this hook is only ever called through this item's associated equipment texture. - - The draw player. - The shadow. - The color. - The glow mask. - Color of the glow mask. - - - - Allows you to modify which glow mask and in what color is drawn on the player's arms. Note that this is only called for body armor. Also note that this hook is only ever called through this item's associated equipment texture. - - The draw player. - The shadow. - The glow mask. - The color. - - - - Allows you to modify the speeds at which you rise and fall when these wings are equipped. - - The player. - The ascent when falling. - The ascent when rising. - The maximum can ascend multiplier. - The maximum ascent multiplier. - The constant ascend. - - - - Allows you to modify these wing's horizontal flight speed and acceleration. - - The player. - The speed. - The acceleration. - - - - Allows for Wings to do various things while in use. "inUse" is whether or not the jump button is currently pressed. Called when these wings visually appear on the player. Use to animate wings, create dusts, invoke sounds, and create lights. Note that this hook is only ever called through this item's associated equipment texture. False will keep everything the same. True, you need to handle all animations in your own code. - - The player. - if set to true [in use]. - - - - - Allows you to customize this item's movement when lying in the world. Note that this will not be called if this item is currently being grabbed by a player. - - The gravity. - The maximum fall speed. - - - - Returns whether or not this item burns when it is thrown into lava despite item.rare not being 0. Returns false by default. - - - - - Allows you to make things happen when this item is lying in the world. This will always be called, even when it is being grabbed by a player. This hook should be used for adding light, or for increasing the age of less valuable items. - - - - - Allows you to modify how close this item must be to the player in order to move towards the player. - - The player. - The grab range. - - - - Allows you to modify the way this item moves towards the player. Return true if you override this hook; returning false will allow the vanilla grab style to take place. Returns false by default. - - The player. - - - - - Allows you to determine whether or not the item can be picked up - - The player. - - - - Allows you to make special things happen when the player picks up this item. Return false to stop the item from being added to the player's inventory; returns true by default. - - The player. - - - - - Return true to specify that the item can be picked up despite not having enough room in inventory. Useful for something like hearts or experience items. Use in conjunction with OnPickup to actually consume the item and handle it. - - The player. - - - - - Allows you to determine the color and transparency in which this item is drawn. Return null to use the default color (normally light color). Returns null by default. - - Color of the light. - - - - - Allows you to draw things behind this item, or to modify the way this item is drawn in the world. Return false to stop the game from drawing the item (useful if you're manually drawing the item). Returns true by default. - - The sprite batch. - Color of the light. - Color of the alpha. - The rotation. - The scale. - The who am i. - - - - - Allows you to draw things in front of this item. This method is called even if PreDrawInWorld returns false. - - The sprite batch. - Color of the light. - Color of the alpha. - The rotation. - The scale. - The who am i. - - - - Allows you to draw things behind this item in the inventory. Return false to stop the game from drawing the item (useful if you're manually drawing the item). Returns true by default. - - The sprite batch. - The position. - The frame. - Color of the draw. - Color of the item. - The origin. - The scale. - - - - - Allows you to draw things in front of this item in the inventory. This method is called even if PreDrawInInventory returns false. - - The sprite batch. - The position. - The frame. - Color of the draw. - Color of the item. - The origin. - The scale. - - - - Allows you to determine the offset of this item's sprite when used by the player. This is only used for items with a useStyle of 5 that aren't staves. Return null to use the vanilla holdout offset; returns null by default. - - - - - - Allows you to determine the point on this item's sprite that the player holds onto when using this item. The origin is from the bottom left corner of the sprite. This is only used for staves with a useStyle of 5. Return null to use the vanilla holdout origin (zero); returns null by default. - - - - - - Allows you to disallow the player from equipping this accessory. Return false to disallow equipping this accessory. Returns true by default. - - The player. - The inventory slot that the item is attempting to occupy. - - - - Allows you to modify what item, and in what quantity, is obtained when this item is fed into the Extractinator. By default the parameters will be set to the output of feeding Silt/Slush into the Extractinator. - - Type of the result. - The result stack. - - - - Allows you to tell the game whether this item is a torch that cannot be placed in liquid, a torch that can be placed in liquid, or a glowstick. This information is used for when the player is holding down the auto-select hotkey. - - if set to true [dry torch]. - if set to true [wet torch]. - if set to true [glowstick]. - - - - Allows you to determine how many of this item a player obtains when the player fishes this item. - - The stack. - - - - Whether or not the Angler can ever randomly request this type of item for his daily quest. Returns false by default. - - - - - Whether or not specific conditions have been satisfied for the Angler to be able to request this item. (For example, Hardmode.) Returns true by default. - - - - - Allows you to set what the Angler says when he requests for this item. The description parameter is his dialogue, and catchLocation should be set to "\n(Caught at [location])". - - The description. - The catch location. - - - - Setting this to true makes it so that this weapon can shoot projectiles only at the beginning of its animation. Set this to true if you want a sword and its projectile creation to be in sync (for example, the Terra Blade). Defaults to false. - - - - - The type of NPC that drops this boss bag. Used to determine how many coins this boss bag contains. Defaults to 0, which means this isn't a boss bag. - - - - - Set this to true to prevent this weapon or ammo item from being adjusted by damage modifiers. - - - - - Allows you to save custom data for this item. Returns null by default. - - - - - - Allows you to load custom data that you have saved for this item. - - The tag. - - - - Allows you to load pre-v0.9 custom data that you have saved for this item. - - The reader. - - - - Allows you to send custom data for this item between client and server. - - The writer. - - - - Receives the custom data sent in the NetSend hook. - - The reader. - - - - This is essentially the same as Mod.AddRecipes. Do note that this will be called for every instance of the overriding ModItem class that is added to the game. This allows you to avoid clutter in your overriding Mod class by adding recipes for which this item is the result. - - - - - Allows you to make anything happen when the player crafts this item using the given recipe. - - The recipe that was used to craft this item. - - - - Allows you to do things before this item's tooltip is drawn. - - The tooltip lines for this item - The top X position for this tooltip. It is where the first line starts drawing - The top Y position for this tooltip. It is where the first line starts drawing - Whether or not to draw this tooltip - - - - Allows you to do things after this item's tooltip is drawn. The lines contain draw information as this is ran after drawing the tooltip. - - The tooltip lines for this item - - - - Allows you to do things before a tooltip line of this item is drawn. The line contains draw info. - - The line that would be drawn - The Y offset added for next tooltip lines - Whether or not to draw this tooltip line - - - - Allows you to do things after a tooltip line of this item is drawn. The line contains draw info. - - The line that was drawn - - - - Allows you to modify all the tooltips that display for this item. See here for information about TooltipLine. - - The tooltips. - - - - This serves as the central class which loads mods. It contains many static fields and methods related to mods and their contents. - - - - - Gets the instance of the Mod with the specified name. - - - - A cached list of enabled mods (not necessarily currently loaded or even installed), mirroring the enabled.json file. - - - - Allows type inference on T and F - - - - - This class serves as a place for you to place all your properties and hooks for each mount. Create instances of ModMoundData (preferably overriding this class) to pass as parameters to Mod.AddMount. - Only one instance of ModMountData will exist for each mount, so storing player specific data on the ModMountData is not good. - Modders can use player.mount._mountSpecificData or a ModPlayer class to store player specific data relating to a mount. Use SetMount to assign these fields. - - - - - The vanilla MountData object that is controlled by this ModMountData. - - - - - The mod which has added this ModMountData. - - - - - The index of this ModMountData in the Mount.mounts array. - - - - - The name of this type of mount. - - - - - Constructor - - - - - Allows you to automatically load a mount instead of using Mod.AddMount. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name, texture is initialized to the namespace and overriding class name with periods replaced with slashes, and extraTextures is initialized to a dictionary containing all MountTextureTypes as keys, with texture + "_" + the texture type name as values. Use this method to either force or stop an autoload, change the default display name and texture path, and to modify the extra mount textures. - - - - - - - - - Allows you to set the properties of this type of mount. - - - - - Allows you to modify the mount's jump height based on its state. - - - - - - - - Allows you to modify the mount's jump speed based on its state. - - - - - - - - Allows you to make things happen when mount is used (creating dust etc.) Can also be used for mount special abilities. - - - - - - Allows for manual updating of mount frame. Return false to stop the default frame behavior. Returns true by default. - - - - - - - - - Allows you to make things happen while the mouse is pressed while the mount is active. Called each tick the mouse is pressed. - - - - Does nothing yet - - - - Allows you to make things happen when the mount ability is aiming (while charging). - - - - - - - Allows you to make things happen when this mount is spawned in. Useful for player-specific initialization, utilizing player.mount._mountSpecificData or a ModPlayer class since ModMountData is shared between all players. - Custom dust spawning logic is also possible via the skipDust parameter. - - - Set to true to skip the vanilla dust spawning logic - - - - Allows you to make things happen when this mount is de-spawned. Useful for player-specific cleanup, see SetMount. - Custom dust spawning logic is also possible via the skipDust parameter. - - - Set to true to skip the vanilla dust spawning logic - - - - Allows for complete customization of mount drawing. This method will be called once for each supported mount texture layer that exists. Use drawType to conditionally apply changes. - drawType corresponds to the following: 0: backTexture, 1: backTextureExtra, 2: frontTexture. 3: frontTextureExtra - Corresponding glow textures, such as backTextureGlow, are paired with their corresponding texture and passed into this method as well. - Return false if you are manually adding DrawData to playerDrawData to replace the vanilla draw behavior, otherwise tweak ref variables to customize the drawing and add additional DrawData to playerDrawData. - - - Corresponds to the following: 0: backTexture, 1: backTextureExtra, 2: frontTexture. 3: frontTextureExtra - - - The corresponding glow texture, if present - - - - - - - - - - - - - - This class serves as a place for you to place all your properties and hooks for each NPC. Create instances of ModNPC (preferably overriding this class) to pass as parameters to Mod.AddNPC. - - - - - The NPC object that this ModNPC controls. - - - - - The mod that added this ModNPC. - - - - - The internal name of this NPC. - - - - - The translations for the display name of this NPC. - - - - - The file name of this NPC's texture file in the mod loader's file space. - - - - - The file names of this NPC's alternate texture files, if any. This will be used in the given AutoStaticDefaults. - - - - - The file name of this NPC's head texture file, to be used in autoloading. - - - - - This file name of this NPC's boss head texture file, to be used in autoloading. - - - - - Determines which type of vanilla NPC this ModNPC will copy the behavior (AI) of. Leave as 0 to not copy any behavior. Defaults to 0. - - - - - Determines which type of vanilla NPC this ModNPC will copy the animation (FindFrame) of. Leave as 0 to not copy any animation. Defaults to 0. - - - - - The item type of the boss bag that is dropped when DropBossBags is called for this NPC. - - - - - The ID of the music that plays when this NPC is on or near the screen. Defaults to -1, which means music plays normally. - - - - - The priority of the music that plays when this NPC is on or near the screen. - - - - - The vertical offset used for drawing this NPC. Defaults to 0. - - - - - The type of NPC that this NPC will be considered as when determining banner drops and banner bonuses. By default this will be 0, which means this NPC is not associated with any banner. To give your NPC its own banner, set this field to the NPC's type. - - - - - The type of the item this NPC drops for every 50 times it is defeated. For any ModNPC whose banner field is set to the type of this NPC, that ModNPC will drop this banner. - - - - - ModNPC constructor. - - - - - Allows you to automatically load an NPC instead of using Mod.AddNPC. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name, texture is initialized to the namespace and overriding class name with periods replaced with slashes, and altTextures is initialized to null. Use this method to either force or stop an autoload, or to change the default display name. - - - - - - - Whether instances of this ModNPC are created through a memberwise clone or its constructor. Defaults to false. - - - - - Returns a clone of this ModNPC. - Allows you to decide which fields of your ModNPC class are copied over when a new NPC is created. - By default this will return a memberwise clone; you will want to override this if your ModNPC contains object references. - Only called if CloneNewInstances is set to true. - - - - - Create a new instance of this ModNPC for an NPC instance. - Called at the end of NPC.SetDefaults. - If CloneNewInstances is true, just calls Clone() - Otherwise calls the default constructor and copies fields - - - - - Allows you to set all your NPC's properties, such as width, damage, aiStyle, lifeMax, etc. - - - - - Allows you to set all your NPC's static properties, such as names/translations and the arrays in NPCID.Sets. - - - - - Automatically sets certain static defaults. Override this if you do not want the properties to be set for you. - - - - - Allows you to customize this NPC's stats in expert mode. This is useful because expert mode's doubling of damage and life might be too much sometimes (for example, with bosses). Also useful for scaling life with the number of players in the world. - - - - - - - This is where you reset any fields you add to your subclass to their default states. This is necessary in order to reset your fields if they are conditionally set by a tick update but the condition is no longer satisfied. (Note: This hook is only really useful for GlobalNPC, but is included in ModNPC for completion.) - - - - - Allows you to determine how this NPC behaves. Return false to stop the vanilla AI and the AI hook from being run. Returns true by default. - - - - - - Allows you to determine how this NPC behaves. This will only be called if PreAI returns true. - - - - - If you are storing AI information outside of the npc.ai array, use this to send that AI information between clients and servers. - - - - - - Use this to receive information that was sent in SendExtraAI. - - - - - - Allows you to modify the frame from this NPC's texture that is drawn, which is necessary in order to animate NPCs. - - - - - - - Allows you to make the NPC either regenerate health or take damage over time by setting npc.lifeRegen. Regeneration or damage will occur at a rate of half of npc.lifeRegen per second. The damage parameter is the number that appears above the NPC's head if it takes damage over time. - - - - - - Whether or not to run the code for checking whether this NPC will remain active. Return false to stop this NPC from being despawned and to stop this NPC from counting towards the limit for how many NPCs can exist near a player. Returns true by default. - - - - - - Whether or not this NPC should be killed when it reaches 0 health. You may program extra effects in this hook (for example, how Golem's head lifts up for the second phase of its fight). Return false to stop this NPC from being killed. Returns true by default. - - - - - - Allows you to call NPCLoot on your own when the NPC dies, rather then letting vanilla call it on its own. Useful for things like dropping loot from the nearest segment of a worm boss. Returns false by default. - - Return true to stop vanilla from calling NPCLoot on its own. Do this if you call NPCLoot yourself. - - - - Allows you to determine whether or not this NPC will drop anything at all. Return false to stop the NPC from dropping anything. Returns true by default. - - - - - - Allows you to make things happen when this NPC dies (for example, dropping items and setting ModWorld fields). This hook runs on the server/single player. For client-side effects, such as dust, gore, and sounds, see HitEffect - - - - - Allows you to make things happen when this NPC is caught. Ran Serverside - - The player catching this NPC - The item that will be spawned - - - - Allows you to customize what happens when this boss dies, such as which name is displayed in the defeat message and what type of potion it drops. - - - - - - - Allows you to determine whether this NPC can hit the given player. Return false to block this NPC from hitting the target. Returns true by default. CooldownSlot determines which of the player's cooldown counters to use (-1, 0, or 1), and defaults to -1. - - - - - - - - Allows you to modify the damage, etc., that this NPC does to a player. - - - - - - - - Allows you to create special effects when this NPC hits a player (for example, inflicting debuffs). - - - - - - - - Allows you to determine whether this NPC can hit the given friendly NPC. Return true to allow hitting the target, return false to block this NPC from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. - - - - - - - Allows you to modify the damage, knockback, etc., that this NPC does to a friendly NPC. - - - - - - - - - Allows you to create special effects when this NPC hits a friendly NPC. - - - - - - - - - Allows you to determine whether this NPC can be hit by the given melee weapon when swung. Return true to allow hitting the NPC, return false to block hitting the NPC, and return null to use the vanilla code for whether the NPC can be hit. Returns null by default. - - - - - - - - Allows you to modify the damage, knockback, etc., that this NPC takes from a melee weapon. - - - - - - - - - - Allows you to create special effects when this NPC is hit by a melee weapon. - - - - - - - - - - Allows you to determine whether this NPC can be hit by the given projectile. Return true to allow hitting the NPC, return false to block hitting the NPC, and return null to use the vanilla code for whether the NPC can be hit. Returns null by default. - - - - - - - Allows you to modify the damage, knockback, etc., that this NPC takes from a projectile. This method is only called for the owner of the projectile, meaning that in multi-player, projectiles owned by a player call this method on that client, and projectiles owned by the server such as enemy projectiles call this method on the server. - - - - - - - - - - Allows you to create special effects when this NPC is hit by a projectile. - - - - - - - - - Allows you to use a custom damage formula for when this NPC takes damage from any source. For example, you can change the way defense works or use a different crit multiplier. Return false to stop the game from running the vanilla damage formula; returns true by default. - - - - - - - - - - - Allows you to customize the boss head texture used by this NPC based on its state. - - - - - - Allows you to customize the rotation of this NPC's boss head icon on the map. - - - - - - Allows you to flip this NPC's boss head icon on the map. - - - - - - Allows you to determine the color and transparency in which this NPC is drawn. Return null to use the default color (normally light and buff color). Returns null by default. - - - - - - - Allows you to add special visual effects to this NPC (such as creating dust), and modify the color in which the NPC is drawn. - - - - - - Allows you to draw things behind this NPC, or to modify the way this NPC is drawn. Return false to stop the game from drawing the NPC (useful if you're manually drawing the NPC). Returns true by default. - - - - - - - - Allows you to draw things in front of this NPC. This method is called even if PreDraw returns false. - - - - - - - Allows you to control how the health bar for this NPC is drawn. The hbPosition parameter is the same as Main.hbPosition; it determines whether the health bar gets drawn above or below the NPC by default. The scale parameter is the health bar's size. By default, it will be the normal 1f; most bosses set this to 1.5f. Return null to let the normal vanilla health-bar-drawing code to run. Return false to stop the health bar from being drawn. Return true to draw the health bar in the position specified by the position parameter (note that this is the world position, not screen position). - - - - - - - - - Whether or not this NPC can spawn with the given spawning conditions. Return the weight for the chance of this NPC to spawn compared to vanilla mobs. All vanilla mobs combined have a total weight of 1. Returns 0 by default, which disables natural spawning. Remember to always use spawnInfo.player and not Main.LocalPlayer when checking Player or ModPlayer fields, otherwise your mod won't work in Multiplayer. - - - - - - - Allows you to customize how this NPC is created when it naturally spawns (for example, its position or ai array). Return the return value of NPC.NewNPC. By default this method spawns this NPC on top of the tile at the given coordinates. - - - - - - - - Whether or not the conditions have been met for this town NPC to be able to move into town. For example, the Demolitionist requires that any player has an explosive. - - - - - - - - Allows you to define special conditions required for this town NPC's house. For example, Truffle requires the house to be in an aboveground mushroom biome. - - - - - - - - - - Allows you to give this town NPC any name when it spawns. By default returns something embarrassing. - - - - - - Allows you to determine whether this town NPC wears a party hat during a party. Returns true by default. - - - - - - Allows you to determine whether this NPC can talk with the player. By default, returns if the NPC is a town NPC. - - - - - - Allows you to give this NPC a chat message when a player talks to it. By default returns something embarrassing. - - - - - - Allows you to set the text for the buttons that appear on this NPC's chat window. A parameter left as an empty string will not be included as a button on the chat window. - - - - - - - Allows you to make something happen whenever a button is clicked on this NPC's chat window. The firstButton parameter tells whether the first button or second button (button and button2 from SetChatButtons) was clicked. Set the shop parameter to true to open this NPC's shop. - - - - - - - Allows you to add items to this NPC's shop. Add an item by setting the defaults of shop.item[nextSlot] then incrementing nextSlot. In the end, nextSlot must have a value of 1 greater than the highest index in shop.item that contains an item. - - - - - - - Whether this NPC can be telported to a King or Queen statue. Returns false by default. - - Whether the NPC is being teleported to a King or Queen statue. - - - - Allows you to make things happen when this NPC teleports to a King or Queen statue. - This method is only called server side. - - Whether the NPC was teleported to a King or Queen statue. - - - - Allows you to determine the damage and knockback of this town NPC's attack before the damage is scaled. (More information on scaling in GlobalNPC.BuffTownNPCs.) - - - - - - - Allows you to determine the cooldown between each of this town NPC's attack. The cooldown will be a number greater than or equal to the first parameter, and less then the sum of the two parameters. - - - - - - - Allows you to determine the projectile type of this town NPC's attack, and how long it takes for the projectile to actually appear. This hook is only used when the town NPC has an attack type of 0 (throwing), 1 (shooting), or 2 (magic). - - - - - - - Allows you to determine the speed at which this town NPC throws a projectile when it attacks. Multiplier is the speed of the projectile, gravityCorrection is how much extra the projectile gets thrown upwards, and randomOffset allows you to randomize the projectile's velocity in a square centered around the original velocity. This hook is only used when the town NPC has an attack type of 0 (throwing), 1 (shooting), or 2 (magic). - - - - - - - - Allows you to tell the game that this town NPC has already created a projectile and will still create more projectiles as part of a single attack so that the game can animate the NPC's attack properly. Only used when the town NPC has an attack type of 1 (shooting). - - - - - - Allows you to control the brightness of the light emitted by this town NPC's aura when it performs a magic attack. Only used when the town NPC has an attack type of 2 (magic) - - - - - - Allows you to determine the width and height of the item this town NPC swings when it attacks, which controls the range of this NPC's swung weapon. Only used when the town NPC has an attack type of 3 (swinging). - - - - - - - Allows you to customize how this town NPC's weapon is drawn when this NPC is shooting (this NPC must have an attack type of 1). Scale is a multiplier for the item's drawing size, item is the ID of the item to be drawn, and closeness is how close the item should be drawn to the NPC. - - - - - - - - Allows you to customize how this town NPC's weapon is drawn when this NPC is swinging it (this NPC must have an attack type of 3). Item is the Texture2D instance of the item to be drawn (use Main.itemTexture[id of item]), itemSize is the width and height of the item's hitbox (the same values for TownNPCAttackSwing), scale is the multiplier for the item's drawing size, and offset is the offset from which to draw the item from its normal position. - - - - - - - - - This class inherits from BinaryWriter. This means that you can use all of its writing functions to send information between client and server. This class also comes with a Send method that's used to actually send everything you've written between client and server. - - ModPacket has all the same methods as BinaryWriter, and some additional ones. - - - - - - Sends all the information you've written between client and server. If the toClient parameter is non-negative, this packet will only be sent to the specified client. If the ignoreClient parameter is non-negative, this packet will not be sent to the specified client. - - - - - A ModPlayer instance represents an extension of a Player instance. You can store fields in the ModPlayer classes, much like how the Player class abuses field usage, to keep track of mod-specific information on the player that a ModPlayer instance represents. It also contains hooks to insert your code into the Player class. - - - - - The mod that added this type of ModPlayer. - - - - - The name of this ModPlayer. Used for distinguishing between multiple ModPlayers added by a single Mod, in addition to the argument passed to Player.GetModPlayer. - - - - - The Player instance that this ModPlayer instance is attached to. - - - - - Whether each player gets a ModPlayer by cloning the ModPlayer added to the Mod or by creating a new ModPlayer object with the same type as the ModPlayer added to the Mod. The accessor returns true by default. Return false if you want to assign fields through the constructor. - - - - - Allows you to automatically add a ModPlayer instead of using Mod.AddPlayer. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this to either force or stop an autoload, or change the name that identifies this type of ModPlayer. - - - - - - - Called whenever the player is loaded (on the player selection screen). This can be used to initialize data structures, etc. - - - - - This is where you reset any fields you add to your ModPlayer subclass to their default states. This is necessary in order to reset your fields if they are conditionally set by a tick update but the condition is no longer satisfied. - - - - - Similar to UpdateDead, except this is only called when the player is dead. If this is called, then ResetEffects will not be called. - - - - - Currently never gets called, so this is useless. - - - - - Allows you to save custom data for this player. Returns null by default. - - - - - - Allows you to load custom data you have saved for this player. - - - - - - Allows you to load pre-v0.9 custom data you have saved for this player. - - - - - - Allows you to modify the inventory newly created players or killed mediumcore players will start with. To add items to the player's inventory, create a new Item, call its SetDefaults method for whatever ID you want, call its Prefix method with a parameter of -1 if you want to give it a random prefix, then add it to the items list parameter. - - - If true, the inventory is being setup for a character that dies in mediumcore rather than a newly created player. - - - - PreSavePlayer and PostSavePlayer wrap the vanilla player saving code (both are before the ModPlayer.Save). Useful for advanced situations where a save might be corrupted or rendered unusable by the values that normally would save. - - - - - PreSavePlayer and PostSavePlayer wrap the vanilla player saving code (both are before the ModPlayer.Save). Useful for advanced situations where a save might be corrupted or rendered unusable by the values that normally would save. - - - - - Allows you to set biome variables in your ModPlayer class based on tile counts. - - - - - Whether or not this player and the other player parameter have the same custom biome variables. This hook is used to help with client/server syncing. Returns true by default. - - - - - - - In this hook, you should copy the custom biome variables from this player to the other player parameter. This hook is used to help with client/server syncing. - - - - - - Allows you to send custom biome information between client and server. - - - - - - Allows you to do things with the custom biome information you send between client and server. - - - - - - Allows you to create special visual effects in the area around the player. For example, the blood moon's red filter on the screen or the slime rain's falling slime in the background. You must create classes that override Terraria.Graphics.Shaders.ScreenShaderData or Terraria.Graphics.Effects.CustomSky, add them in your mod's Load hook, then call Player.ManageSpecialBiomeVisuals. See the ExampleMod if you do not have access to the source code. - - - - - Allows you to copy information about this player to the clientClone parameter. You should copy information that you intend to sync between server and client. This hook is called in the Player.clientClone method. See SendClientChanges for more info. - - - - - - Allows you to sync information about this player between server and client. The toWho and fromWho parameters correspond to the remoteClient/toClient and ignoreClient arguments, respectively, of NetMessage.SendData/ModPacket.Send. The newPlayer parameter is whether or not the player is joining the server (it is true on the joining client). - - - - - - - - Allows you to sync any information that has changed between the server and client. Here, you should check the information you have copied in the clientClone parameter; if they differ between this player and the clientPlayer parameter, then you should send that information using NetMessage.SendData or ModPacket.Send. - - - - - - Allows you to change the background that displays when viewing the map. Return null if you do not want to change the background. Returns null by default. - - - - - - Allows you to give the player a negative life regeneration based on its state (for example, the "On Fire!" debuff makes the player take damage-over-time). This is typically done by setting player.lifeRegen to 0 if it is positive, setting player.lifeRegenTime to 0, and subtracting a number from player.lifeRegen. The player will take damage at a rate of half the number you subtract per second. - - - - - Allows you to increase the player's life regeneration based on its state. This can be done by incrementing player.lifeRegen by a certain number. The player will recover life at a rate of half the number you add per second. You can also increment player.lifeRegenTime to increase the speed at which the player reaches its maximum natural life regeneration. - - - - - Allows you to modify the power of the player's natural life regeneration. This can be done by multiplying the regen parameter by any number. For example, campfires multiply it by 1.1, while walking multiplies it by 0.5. - - - - - - Allows you to modify the player's stats while the game is paused due to the autopause setting being on. - This is called in single player only, some time before the player's tick update would happen when the game isn't paused. - - - - - This is called at the beginning of every tick update for this player, after checking whether the player exists. - - - - - Use this to check on hotkeys you have registered. While SetControls is set even while in text entry mode, this hook is only called during gameplay. - - - - - - Use this to modify the control inputs that the player receives. For example, the Confused debuff swaps the values of player.controlLeft and player.controlRight. This is called sometime after PreUpdate is called. - - - - - This is called sometime after SetControls is called, and right before all the buffs update on this player. This hook can be used to add buffs to the player based on the player's state (for example, the Campfire buff is added if the player is near a Campfire). - - - - - This is called right after all of this player's buffs update on the player. This can be used to modify the effects that the buff updates had on this player, and can also be used for general update tasks. - - - - - Called after Update Accessories. - - - - - - - - This is called right after all of this player's equipment and armor sets update on the player, which is sometime after PostUpdateBuffs is called. This can be used to modify the effects that the equipment had on this player, and can also be used for general update tasks. - - - - - This is called after miscellaneous update code is called in Player.Update, which is sometime after PostUpdateEquips is called. This can be used for general update tasks. - - - - - This is called after the player's horizontal speeds are modified, which is sometime after PostUpdateMiscEffects is called, and right before the player's horizontal position is updated. Use this to modify maxRunSpeed, accRunSpeed, runAcceleration, and similar variables before the player moves forwards/backwards. - - - - - This is called right before modifying the player's position based on velocity. Use this to make direct changes to the velocity. - - - - - This is called at the very end of the Player.Update method. Final general update tasks can be placed here. - - - - - This is called after VanillaUpdateVanityAccessory() in player.UpdateEquips() - - - - - Allows you to modify the armor and accessories that visually appear on the player. In addition, you can create special effects around this character, such as creating dust. - - - - - This hook is called before every time the player takes damage. The pvp parameter is whether the damage was from another player. The quiet parameter determines whether the damage will be communicated to the server. The damage, hitDirection, and crit parameters can be modified. Set the customDamage parameter to true if you want to use your own damage formula (this parameter will disable automatically subtracting the player's defense from the damage). Set the playSound parameter to false to disable the player's hurt sound, and the genGore parameter to false to disable the dust particles that spawn. (These are useful for creating your own sound or gore.) The deathText parameter can be modified to change the player's death message if the player dies. Return false to stop the player from taking damage. Returns true by default. - - - - - - - - - - - - - - - Allows you to make anything happen right before damage is subtracted from the player's health. - - - - - - - - - - Allows you to make anything happen when the player takes damage. - - - - - - - - - - This hook is called whenever the player is about to be killed after reaching 0 health. Set the playSound parameter to false to stop the death sound from playing. Set the genGore parameter to false to stop the gore and dust from being created. (These are useful for creating your own sound or gore.) Return false to stop the player from being killed. Only return false if you know what you are doing! Returns true by default. - - - - - - - - - - - - Allows you to make anything happen when the player dies. - - - - - - - - - Allows you to do anything before the update code for the player's held item is run. Return false to stop the held item update code from being run (for example, if the player is frozen). Returns true by default. - - - - - - Allows you to do anything after the update code for the player's held item is run. Hooks for the middle of the held item update code have more specific names in ModItem and ModPlayer. - - - - - Allows you to multiply an item's regular use time. Returns 1f by default. Values greater than 1 increase the item speed. - - The item. - The amount you wish to multiply with. - - - - Allows you to multiply an item's regular melee speed. Returns 1f by default. Values greater than 1 increase the item speed. - - The item. - The amount you wish to multiply with. - - - - Allows you to temporarily modify the amount of life a life healing item will heal for, based on player buffs, accessories, etc. This is only called for items with a healLife value. - - The item. - Whether the item is being used through quick heal or not. - The amount of life being healed. - - - - Allows you to temporarily modify the amount of mana a mana healing item will heal for, based on player buffs, accessories, etc. This is only called for items with a healMana value. - - The item. - Whether the item is being used through quick heal or not. - The amount of mana being healed. - - - - Allows you to temporarily modify the amount of mana an item will consume on use, based on player buffs, accessories, etc. This is only called for items with a mana value. - - The item being used. - Used for decreasingly stacking buffs (most common). Only ever use -= on this field. - Use to directly multiply the item's effective mana cost. Good for debuffs, or things which should stack separately (eg meteor armor set bonus). - - - - Allows you to make stuff happen when a player doesn't have enough mana for the item they are trying to use. - If the player has high enough mana after this hook runs, mana consumption will happen normally. - Only runs once per item use. - - The item being used. - The mana needed to use the item. - - - - Allows you to make stuff happen when a player consumes mana on use of an item. - - The item being used. - The mana consumed from the player. - - - - Allows you to temporarily modify a weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - - - - - - - Allows you to temporarily modify this weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - - The item being used - Used for additively stacking buffs (most common). Only ever use += on this field. - Use to directly multiply the player's effective damage. Good for debuffs, or things which should stack separately (eg ammo type buffs) - - - - Allows you to temporarily modify this weapon's damage based on player buffs, etc. This is useful for creating new classes of damage, or for making subclasses of damage (for example, Shroomite armor set boosts). - - The item being used - Used for additively stacking buffs (most common). Only ever use += on this field. Things with effects like "5% increased MyDamageClass damage" would use this: `add += 0.05` - Use to directly multiply the player's effective damage. Good for debuffs, or things which should stack separately (eg ammo type buffs) - This is a flat damage bonus that will be added after add and mult are applied. It facilitates effects like "4 more damage from weapons" - - - - Allows you to temporarily modify a weapon's knockback based on player buffs, etc. This allows you to customize knockback beyond the Player class's limited fields. - - - - - - - Allows you to temporarily modify a weapon's crit chance based on player buffs, etc. - - The item - The crit chance, ranging from 0 to 100 - - - - Whether or not ammo will be consumed upon usage. Return false to stop the ammo from being depleted. Returns true by default. - If false is returned, the OnConsumeAmmo hook is never called. - - - - - - - - Allows you to make things happen when ammo is consumed. - Called before the ammo stack is reduced. - - - - - - - - This is called before this player's weapon creates a projectile. You can use it to create special effects, such as changing the speed, changing the initial position, and/or firing multiple projectiles. Return false to stop the game from shooting the default projectile (do this if you manually spawn your own projectile). Returns true by default. - - - - - - - - - - - - - Allows you to give this player's melee weapon special effects, such as creating light or dust. - - - - - - - This hook is called when a player damages anything, whether it be an NPC or another player, using anything, whether it be a melee weapon or a projectile. The x and y parameters are the coordinates of the victim parameter's center. - - - - - - - - Allows you to determine whether a player can hit the given NPC by swinging a melee weapon. Return true to allow hitting the target, return false to block this player from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. - - - - - - - - Allows you to modify the damage, knockback, etc., that this player does to an NPC by swinging a melee weapon. - - - - - - - - - - Allows you to create special effects when this player hits an NPC by swinging a melee weapon (for example how the Pumpkin Sword creates pumpkin heads). - - - - - - - - - - Allows you to determine whether a projectile created by this player can hit the given NPC. Return true to allow hitting the target, return false to block this projectile from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. - - - - - - - - Allows you to modify the damage, knockback, etc., that a projectile created by this player does to an NPC. - - - - - - - - - - - Allows you to create special effects when a projectile created by this player hits an NPC (for example, inflicting debuffs). - - - - - - - - - - Allows you to determine whether a melee weapon swung by this player can hit the given opponent player. Return false to block this weapon from hitting the target. Returns true by default. - - - - - - - - Allows you to modify the damage, etc., that a melee weapon swung by this player does to an opponent player. - - - - - - - - - Allows you to create special effects when this player's melee weapon hits an opponent player. - - - - - - - - - Allows you to determine whether a projectile created by this player can hit the given opponent player. Return false to block the projectile from hitting the target. Returns true by default. - - - - - - - - Allows you to modify the damage, etc., that a projectile created by this player does to an opponent player. - - - - - - - - - Allows you to create special effects when a projectile created by this player hits an opponent player. - - - - - - - - - Allows you to determine whether the given NPC can hit this player. Return false to block this player from being hit by the NPC. Returns true by default. CooldownSlot determines which of the player's cooldown counters to use (-1, 0, or 1), and defaults to -1. - - - - - - - - Allows you to modify the damage, etc., that an NPC does to this player. - - - - - - - - Allows you to create special effects when an NPC hits this player (for example, inflicting debuffs). - - - - - - - - Allows you to determine whether the given hostile projectile can hit this player. Return false to block this player from being hit. Returns true by default. - - - - - - - Allows you to modify the damage, etc., that a hostile projectile does to this player. - - - - - - - - Allows you to create special effects when a hostile projectile hits this player. - - - - - - - - Allows you to change the item the player gains from catching a fish. The fishingRod and bait parameters refer to the said items in the player's inventory. The liquidType parameter is 0 if the player is fishing in water, 1 for lava, and 2 for honey. The poolSize parameter is the tile size of the pool the player is fishing in. The worldLayer parameter is 0 if the player is in the sky, 1 if the player is on the surface, 2 if the player is underground, 3 if the player is in the caverns, and 4 if the player is in the underworld. The questFish parameter is the item ID for the day's Angler quest. Modify the caughtType parameter to change the item the player catches. The junk parameter is whether the player catches junk; you can set this to true if you make the player catch a junk item, and is mostly used to pass information (has no effect on the game). - - - - - - - - - - - - - - Allows you to modify the player's fishing power. As an example of the type of stuff that should go here, the phase of the moon can influence fishing power. - - - - - - - - Allows you to add to, change, or remove from the items the player earns when finishing an Angler quest. The rareMultiplier is a number between 0.15 and 1 inclusively; the lower it is the higher chance there should be for the player to earn rare items. - - - - - - - Allows you to modify what items are possible for the player to earn when giving a Strange Plant to the Dye Trader. - - - - - - Allows you to create special effects when this player is drawn, such as creating dust, modifying the color the player is drawn in, etc. The fullBright parameter makes it so that the drawn player ignores the modified color and lighting. Note that the fullBright parameter only works if r, g, b, and/or a is not equal to 1. Make sure to add the indexes of any dusts you create to Main.playerDrawDust, and the indexes of any gore you create to Main.playerDrawGore. - - - - - - - - - - - Allows you to modify the drawing parameters of the player before drawing begins. - - - - - - Allows you to modify the drawing of the player. This is done by removing from, adding to, or rearranging the list, by setting some of the layers' visible field to false, etc. - - - - - - Allows you to modify the drawing of the player head on the minimap. This is done by removing from, adding to, or rearranging the list, by setting some of the layers' visible field to false, etc. - - - - - - Use this hook to modify Main.screenPosition after weapon zoom and camera lerp have taken place. - - - - - Use this to modify the zoom factor for the player. The zoom correlates to the percentage of half the screen size the zoom can reach. A value of -1 passed in means no vanilla scope is in effect. A value of 1.0 means the scope can zoom half a screen width/height away, putting the player on the edge of the game screen. Vanilla values include .8, .6666, and .5. - - - - - - Called on clients when a player connects. - - The player that connected. - - - - Called when a player disconnects. - - The player that disconnected. - - - - Called on the LocalPlayer when that player enters the world. SP and Client. Only called on the player who is entering. A possible use is ensuring that UI elements are reset to the configuration specified in data saved to the ModPlayer. Can also be used for informational messages. - - The player that entered the world. - - - - Called when a player respawns in the world. - - The player that respawns - - - - Called whenever the player shift-clicks an item slot. This can be used to override default clicking behavior (ie. selling or trashing items). - - The array of items the slot is part of. - The Terraria.UI.ItemSlot.Context of the inventory. - The index in the inventory of the clicked slot. - Whether or not to block the default code (sell and trash) from running. Returns false by default. - - - - Called whenever the player sells an item to an NPC. - - The NPC vendor. - The current inventory of the NPC shop. - The item the player just sold. - - - - Return false to prevent a transaction. Called before the transaction. - - The NPC vendor. - The current inventory of the NPC shop. - The item the player is attempting to sell. - - - - - Called whenever the player buys an item from an NPC. - - The NPC vendor. - The current inventory of the NPC shop. - The item the player just purchased. - - - - Return false to prevent a transaction. Called before the transaction. - - The NPC vendor. - The current inventory of the NPC shop. - The item the player is attempting to buy. - - - - - Called on the Client while the nurse chat is displayed. Return false to prevent the player from healing. If you return false, you need to set chatText so the user knows why they can't heal. - - The Nurse NPC instance. - How much health the player gains. - If set to false, debuffs will not be healed. - Set this to the Nurse chat text that will display if healing is prevented. - True by default. False to prevent nurse services. - - - - Called on the Client while the nurse chat is displayed and after ModifyNurseHeal. Allows custom pricing for Nurse services. See https://terraria.gamepedia.com/Nurse for the default pricing. - - The Nurse NPC instance. - How much health the player gains. - Whether or not debuffs will be healed. - - - - - Called on the Client after the player heals themselves with the Nurse NPC. - - The Nurse npc providing the heal. - How much health the player gained. - /// Whether or not debuffs were healed. - The price the player paid in copper coins. - - - - Returns the ModPrefix associated with specified type - If not a ModPrefix, returns null. - - - - - - - Returns a list of all modded prefixes of a certain category. - - - - - - - Performs a mod prefix roll. If the vanillaWeight wins the roll, then prefix is unchanged. - - - - - The roll chance of your prefix relative to a vanilla prefix, 1f by default. - - - - - - - Returns if your ModPrefix can roll on the given item - By default returns RollChance(item) > 0 - - - - - - - The category your prefix belongs to, PrefixCategory.Custom by default - - - - - Allows you to set the prefix's name/translations and to set its category. - - - - - Sets the stat changes for this prefix. If data is not already pre-stored, it is best to store custom data changes to some static variables. - - - - - Validates whether this prefix with the custom data stats set from SetStats is allowed on the given item. - It is not allowed if one of the stat changes do not cause any change (eg. percentage being too small to make a difference). - - - - - Applies the custom data stats set in SetStats to the given item. - - - - - - Allows you to modify the sell price of the item based on the prefix or changes in custom data stats. This also influences the item's rarity. - - - - - Can modify the size of the weapon - - - - - Can modify the shoot speed of the weapon - - - - - Can modify the mana usage of the weapon - - - - - Will not appear by default. Useful as prefixes for your own damage type. - - - - - This class serves as a place for you to place all your properties and hooks for each projectile. Create instances of ModProjectile (preferably overriding this class) to pass as parameters to Mod.AddProjectile. - - - - - The projectile object that this ModProjectile controls. - - - The projectile. - - - - - The mod object that this ModProjectile originates from. - - - The mod. - - - - - The internal name of this ModProjectile. - - - The name. - - - - - The translations for the display name of this projectile. - - - - - The file name of this projectile's texture file in the mod loader's file space. - - - - - The file name of this projectile's glow texture file in the mod loader's file space. If it does not exist it is ignored. - - - - - Determines which type of vanilla projectile this ModProjectile will copy the behavior (AI) of. Leave as 0 to not copy any behavior. Defaults to 0. - - - - - Determines which of the player's cooldown counters to use (-1, 0, or 1) when this projectile damages it. Defaults to -1. - - - - - How far to the right of its position this projectile should be drawn. Defaults to 0. - - - - - The vertical origin offset from the projectile's center when it is drawn. The origin is essentially the point of rotation. This field will also determine the vertical drawing offset of the projectile. - - - - - The horizontal origin offset from the projectile's center when it is drawn. - - - - - If this projectile is held by the player, determines whether it is drawn in front of or behind the player's arms. Defaults to false. - - - - - Allows you to automatically load a projectile instead of using Mod.AddProjectile. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload, or to change the default internal name. - - The internal name. - Whether or not to autoload. - - - - Whether instances of this ModProjectile are created through a memberwise clone or its constructor. Defaults to false. - - - - - Returns a clone of this ModProjectile. - Allows you to decide which fields of your ModProjectile class are copied over when a new Projectile is created. - By default this will return a memberwise clone; you will want to override this if your ModProjectile contains object references. - Only called if CloneNewInstances is set to true. - - - - - Create a new instance of this ModProjectile for a Projectile instance. - Called at the end of Projectile.SetDefaults. - If CloneNewInstances is true, just calls Clone() - Otherwise calls the default constructor and copies fields - - - - - Allows you to set all your projectile's properties, such as width, damage, aiStyle, penetrate, etc. - - - - - Allows you to set all your projectile's static properties, such as names/translations and the arrays in ProjectileID.Sets. - - - - - Automatically sets certain static defaults. Override this if you do not want the properties to be set for you. - - - - - Allows you to determine how this projectile behaves. Return false to stop the vanilla AI and the AI hook from being run. Returns true by default. - - Whether or not to stop other AI. - - - - Allows you to determine how this projectile behaves. This will only be called if PreAI returns true. - - - - - Allows you to determine how this projectile behaves. This will be called regardless of what PreAI returns. - - - - - If you are storing AI information outside of the projectile.ai array, use this to send that AI information between clients and servers. - - - - - Use this to receive information that was sent in SendExtraAI. - - - - - Whether or not this projectile should update its position based on factors such as its velocity, whether it is in liquid, etc. Return false to make its velocity have no effect on its position. Returns true by default. - - - - - Allows you to determine how this projectile interacts with tiles. Width and height determine the projectile's hitbox for tile collision, and default to -1. Leave them as -1 to use the projectile's real size. Fallthrough determines whether the projectile can fall through platforms, etc., and defaults to true. - - Width of the hitbox. - Height of the hitbox. - If the projectile can fall through platforms etc. - - - - Allows you to determine what happens when this projectile collides with a tile. OldVelocity is the velocity before tile collision. The velocity that takes tile collision into account can be found with projectile.velocity. Return true to allow the vanilla tile collision code to take place (which normally kills the projectile). Returns true by default. - - The velocity of the projectile upon collision. - - - - Return true or false to specify if the projectile can cut tiles, like vines. Return null for vanilla decision. - - - - - Code ran when the projectile cuts tiles. Only runs if CanCutTiles() returns true. Useful when programming lasers and such. - - - - - Allows you to determine whether the vanilla code for Kill and the Kill hook will be called. Return false to stop them from being called. Returns true by default. Note that this does not stop the projectile from dying. - - - - - Allows you to control what happens when this projectile is killed (for example, creating dust or making sounds). Also useful for creating retrievable ammo. Called on all clients and the server in multiplayer, so be sure to use `if (projectile.owner == Main.myPlayer)` if you are spawning retrievable ammo. (As seen in ExampleJavelinProjectile) - - - - - Whether or not this projectile is capable of killing tiles (such as grass) and damaging NPCs/players. Return false to prevent it from doing any sort of damage. Returns true by default. - - - - - Whether or not this minion can damage NPCs by touching them. Returns false by default. Note that this will only be used if this projectile is considered a pet. - - - - - Allows you to change the hitbox used by this projectile for damaging players and NPCs. - - - - - - Allows you to determine whether this projectile can hit the given NPC. Return true to allow hitting the target, return false to block this projectile from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. - - The target. - - - - Allows you to modify the damage, knockback, etc., that this projectile does to an NPC. This method is only called for the owner of the projectile, meaning that in multi-player, projectiles owned by a player call this method on that client, and projectiles owned by the server such as enemy projectiles call this method on the server. - - The target. - The modifiable damage. - The modifiable knockback. - The modifiable crit. - The modifiable hit direction. - - - - Allows you to create special effects when this projectile hits an NPC (for example, inflicting debuffs). This method is only called for the owner of the projectile, meaning that in multi-player, projectiles owned by a player call this method on that client, and projectiles owned by the server such as enemy projectiles call this method on the server. - - The target. - The damage. - The knockback. - The critical hit. - - - - Allows you to determine whether this projectile can hit the given opponent player. Return false to block this projectile from hitting the target. Returns true by default. - - The target - - - - Allows you to modify the damage, etc., that this projectile does to an opponent player. - - The target. - The modifiable damage. - The modifiable crit. - - - - Allows you to create special effects when this projectile hits an opponent player. - - The target. - The damage. - The critical hit. - - - - Allows you to determine whether this hostile projectile can hit the given player. Return false to block this projectile from hitting the target. Returns true by default. - - The target. - - - - Allows you to modify the damage, etc., that this hostile projectile does to a player. - - The target. - The modifiable damage. - The modifiable crit. - - - - Allows you to create special effects when this hostile projectile hits a player. - - The target. - The damage. - The critical hit. - - - - Allows you to use custom collision detection between this projectile and a player or NPC that this projectile can damage. Useful for things like diagonal lasers, projectiles that leave a trail behind them, etc. - - The hitbox of the projectile. - The hitbox of the target. - Whether they collide or not. - - - - Allows you to determine the color and transparency in which this projectile is drawn. Return null to use the default color (normally light and buff color). Returns null by default. - - - - - Allows you to draw things behind this projectile. Returns false to stop the game from drawing extras textures related to the projectile (for example, the chains for grappling hooks), useful if you're manually drawing the extras. Returns true by default. - - - - - Allows you to draw things behind this projectile, or to modify the way this projectile is drawn. Return false to stop the game from drawing the projectile (useful if you're manually drawing the projectile). Returns true by default. - - - - - Allows you to draw things in front of a projectile. This method is called even if PreDraw returns false. - - - - - This code is called whenever the player uses a grappling hook that shoots this type of projectile. Use it to change what kind of hook is fired (for example, the Dual Hook does this), to kill old hook projectiles, etc. - - - - - Whether or not a grappling hook can only have one hook per player in the world at a time. Return null to use the vanilla code. Returns null by default. - - - - - This code is called whenever the player uses a grappling hook that shoots this type of projectile. Use it to change what kind of hook is fired (for example, the Dual Hook does this), to kill old hook projectiles, etc. - - - - - How far away this grappling hook can travel away from its player before it retracts. - - - - - How many of this type of grappling hook the given player can latch onto blocks before the hooks start disappearing. Change the numHooks parameter to determine this; by default it will be 3. - - - - - The speed at which the grapple retreats back to the player after not hitting anything. Defaults to 11, but vanilla hooks go up to 24. - - - - - The speed at which the grapple pulls the player after hitting something. Defaults to 11, but the Bat Hook uses 16. - - - - - When used in conjunction with "projectile.hide = true", allows you to specify that this projectile should be drawn behind certain elements. Add the index to one and only one of the lists. For example, the Nebula Arcanum projectile draws behind NPCs and tiles. - - - - - This is a struct that stores the properties of a mod. Without setting it in your Mod constructor, all properties default to true. - - - - - Whether or not this mod will autoload content by default. Autoloading content means you do not need to manually add content through methods. - - - - - Whether or not this mod will automatically add images in the Gores folder as gores to the game, along with any ModGore classes that share names with the images. This means you do not need to manually call Mod.AddGore. - - - - - Whether or not this mod will automatically add sounds in the Sounds folder to the game. Place sounds in Sounds/Item to autoload them as item sounds, Sounds/NPCHit to add them as npcHit sounds, Sounds/NPCKilled to add them as npcKilled sounds, and Sounds/Music to add them as music tracks. Sounds placed anywhere else in the Sounds folder will be added as custom sounds. Any ModSound classes that share the same name as the sound files will be bound to them. Setting this field to true means that you do not need to manually call AddSound. - - - - - Whether or not this mod will automatically add images in the Backgrounds folder as background textures to the game. This means you do not need to manually call Mod.AddBackgroundTexture. - - - - - Automatically return a ModProperties object which has all AutoLoad values set to true. - - - - - This class extends Terraria.Recipe, meaning you can use it in a similar manner to vanilla recipes. However, it provides methods that simplify recipe creation. Recipes are added by creating new instances of ModRecipe, then calling the AddRecipe method. - - - - - The index of the recipe in the Main.recipe array. - - - - - Constructor - - The mod the recipe originates from. - - - - Sets the result of this recipe with the given item type and stack size. - - The item identifier. - The stack. - - - - Sets the result of this recipe with the given item name from the given mod, and with the given stack stack. If the mod parameter is null, then it will automatically use an item from the mod creating this recipe. - - The mod the item originates from. - Name of the item. - The stack. - The item " + itemName + " does not exist in mod " + mod.Name + ". If you are trying to use a vanilla item, try removing the first argument. - - - - Sets the result of this recipe to the given type of item and stack size. Useful in ModItem.AddRecipes. - - The item. - The stack. - - - - Adds an ingredient to this recipe with the given item type and stack size. Ex: recipe.AddIngredient(ItemID.IronAxe) - - The item identifier. - The stack. - - - - Adds an ingredient to this recipe with the given item name from the given mod, and with the given stack stack. If the mod parameter is null, then it will automatically use an item from the mod creating this recipe. - - The mod. - Name of the item. - The stack. - The item " + itemName + " does not exist in mod " + mod.Name + ". If you are trying to use a vanilla item, try removing the first argument. - - - - Adds an ingredient to this recipe of the given type of item and stack size. - - The item. - The stack. - - - - Adds a recipe group ingredient to this recipe with the given RecipeGroup name and stack size. Vanilla recipe groups consist of "Wood", "IronBar", "PresurePlate", "Sand", and "Fragment". - - The name. - The stack. - A recipe group with the name " + name + " does not exist. - - - - Adds a required crafting station with the given tile type to this recipe. Ex: recipe.AddTile(TileID.WorkBenches) - - The tile identifier. - No tile has ID " + tileID - - - - Adds a required crafting station to this recipe with the given tile name from the given mod. If the mod parameter is null, then it will automatically use a tile from the mod creating this recipe. - - The mod. - Name of the tile. - The tile " + tileName + " does not exist in mod " + mod.Name + ". If you are trying to use a vanilla tile, try using ModRecipe.AddTile(tileID). - - - - Adds a required crafting station to this recipe of the given type of tile. - - The tile. - - - - Whether or not the conditions are met for this recipe to be available for the player to use. This hook can be used for conditions unrelated to items or tiles (for example, biome or time). - - Whether or not the conditions are met for this recipe to be available for the player to use. - - - - Allows you to make anything happen when the player uses this recipe. The parameter is the item the player has just crafted. - - The item. - - - - Allows you to determine how many of a certain ingredient is consumed when this recipe is used. Return the number of ingredients that will actually be consumed. By default returns numRequired. - - The type. - The number required. - - - - - Adds this recipe to the game. Call this after you have finished setting the result, ingredients, etc. - - A recipe without any result has been added. - - - - This class allows you to customize how a sound you add is played. To use this, pass an instance to Mod.AddSound, or if you are autoloading sounds, give an overriding class the same name as the file with the sound you are adding. - - - - - The SoundEffect instance of the sound that this ModSound controls. This is here so you can call CreateInstance on it. - - - - - Override this hook to customize how this sound is played. If this sound is already currently playing, you have the option to call soundInstance.Stop(). You must eventually assign the result of sound.CreateInstance() to soundInstace. Afterwards, you can modify soundInstance.Volume, soundInstance.Pan, and soundInstance.Pitch to your liking. The default volume and pan have been passed as parameters. Volume measures loudness, pan measures how far to the left or right the sound is, and pitch measures the octave. Finally, call Main.PlaySoundInstance(soundInstance). - - - - A ModSide enum defines how mods are synced between clients and servers. You can set your mod's ModSide from its build.txt file. - - - The default value for ModSide. This means that the mod has effects both client-side and server-side. When a client connects to a server, this mod will be disabled if the server does not have it. If a client without this mod connects to a server with this mod, the server will send this mod to the client and enable it. In general all mods that add game content should use this. - - - This means that the mod only has effects client-side. This mod will not be disabled client-side if the server does not have it. This is useful for mods that only add controls (for example, hotkeys), change textures/musics, etc. - - - This means that the mod only has effects server-side. The server will not send this mod to every client that connects. - - - This means that the mod could have effects client-side and could have effects server-side. The client will not download this mod if it connects to a server with this mod, and the client will not disable this mod if it connects to a server without this mod. If a client connects to a server and both have this mod, then IDs will still be synchronized. This is useful if you want optional extra features when both the client and server have this mod. - - - - This class represents a type of tile that can be added by a mod. Only one instance of this class will ever exist for each type of tile that is added. Any hooks that are called will be called by the instance corresponding to the tile type. This is to prevent the game from using a massive amount of memory storing tile instances. - - - - - The mod which has added this type of ModTile. - - - - - The name of this type of tile. - - - - - The internal ID of this type of tile. - - - - - The highlight texture used when this tile is selected by smart interact. Defaults to adding "_Highlight" onto the main texture. - - - - - The default type of sound made when this tile is hit. Defaults to 0. - - - - - The default style of sound made when this tile is hit. Defaults to 1. - - - - - The default type of dust made when this tile is hit. Defaults to 0. - - - - - The default type of item dropped when this tile is killed. Defaults to 0, which means no item. - - - - - The height of a group of animation frames for this tile. Defaults to 0, which disables animations. - - - - - A multiplier describing how much this block resists harvesting. Higher values will make it take longer to harvest. Defaults to 1f. - - - - - The minimum pickaxe power required for pickaxes to mine this block. Defaults to 0. - - - - - Whether or not the smart cursor function is disabled when the cursor hovers above this tile. Defaults to false. - - - - - Whether or not the smart tile interaction function is disabled when the cursor hovers above this tile. Defaults to false. - - - - - An array of the IDs of tiles that this tile can be considered as when looking for crafting stations. - - - - - The ID of the tile that this door transforms into when it is closed. Defaults to -1, which means this tile isn't a door. - - - - - The ID of the tile that this door transforms into when it is opened. Defaults to -1, which means this tile isn't a door. - - - - - The default name of this chest that is displayed when this 2x2 chest is open. Defaults to the empty string, which means that this tile isn't a chest. Setting this field will make the tile behave like a chest (meteors will avoid it, tiles underneath cannot be mined, etc.), but you will have to manually give it storage capabilities yourself. (See the ExampleMod for something you can copy/paste.) - - - - - The ID of the item that drops when this chest is destroyed. Defaults to 0. Honestly, this is only really used when the chest limit is reached on a server. - - - - - Same as chest, except use this if your block is a dresser (has a size of 3x2 instead of 2x2). - - - - - The ID of the item that drops when this dresser is destroyed. Defaults to 0. Honestly, this is only really used when the chest limit is reached on a server. - - - - - Whether or not this tile is a valid spawn point. Defaults to false. If you set this to true, you will still have to manually set the spawn yourself in the RightClick hook. - - - - - Whether or not this tile behaves like a torch. If you are making a torch tile, then setting this to true is necessary in order for tile placement, tile framing, and the item's smart selection to work properly. - - - - - Whether or not this tile is a sapling, which can grow into a modded tree or palm tree. - - - - - A convenient method for adding this tile's Type to the given array. This can be used with the arrays in TileID.Sets.RoomNeeds. - - - - - Adds an entry to the minimap for this tile with the given color and display name. This should be called in SetDefaults. - - - - - Creates a ModTranslation object that you can use in AddMapEntry. - - The key for the ModTranslation. The full key will be MapObject.ModName.key - - - - - Adds an entry to the minimap for this tile with the given color and display name. This should be called in SetDefaults. - - - - - Adds an entry to the minimap for this tile with the given color, default display name, and display name function. The parameters for the function are the default display name, x-coordinate, and y-coordinate. This should be called in SetDefaults. - - - - - Adds an entry to the minimap for this tile with the given color, default display name, and display name function. The parameters for the function are the default display name, x-coordinate, and y-coordinate. This should be called in SetDefaults. - - - - - Allows this tile to grow the given modded tree. - - The ModTree. - - - - Allows this tile to grow the given modded palm tree. - - The ModPalmTree - - - - Allows this tile to grow the given modded cactus. - - The ModCactus - - - - Allows you to modify the name and texture path of this tile when it is autoloaded. Return true to autoload this tile. When a tile is autoloaded, that means you do not need to manually call Mod.AddTile. By default returns the mod's autoload property. - - The internal name. - The texture path. - Whether or not to autoload this tile. - - - - Allows you to set the properties of this tile. Many properties are stored as arrays throughout Terraria's code. - - - - - Allows you to override some default properties of this tile, such as Main.tileNoSunLight and Main.tileObsidianKill. - - - - - Whether or not the smart interact function can select this tile. Useful for things like chests. Defaults to false. - - - - - - Allows you to customize which sound you want to play when the tile at the given coordinates is hit. Return false to stop the game from playing its default sound for the tile. Returns true by default. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to change how many dust particles are created when the tile at the given coordinates is hit. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to modify the default type of dust created when the tile at the given coordinates is hit. Return false to stop the default dust (the type parameter) from being created. Returns true by default. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to modify the chance the tile at the given coordinates has of spawning a certain critter when the tile is killed. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to customize which items the tile at the given coordinates drops. Remember that the x, y (i, j) coordinates are in tile coordinates, you will need to multiply them by 16 if you want to drop an item using them. Return false to stop the game from dropping the tile's default item. Returns true by default. Please note that this hook currently only works for 1x1 tiles. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to determine whether or not the tile at the given coordinates can be hit by anything. Returns true by default. blockDamaged currently has no use. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to determine what happens when the tile at the given coordinates is killed or hit with a pickaxe. Fail determines whether the tile is mined, effectOnly makes it so that only dust is created, and noItem stops items from dropping. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - This hook is called exactly once whenever a block encompassing multiple tiles is destroyed. You can use it to make your multi-tile block drop a single item, for example. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Whether or not the tile at the given coordinates can be killed by an explosion (ie. bombs). Returns true by default; return false to stop an explosion from destroying it. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to make things happen when this tile is within a certain range of the player (around the same range water fountains and music boxes work). The closer parameter is whether or not the tile is within the range at which things like campfires and banners work. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to determine how much light this block emits. Make sure you set Main.tileLighted[Type] to true in SetDefaults for this to work. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to determine whether this block glows red when the given player has the Dangersense buff. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to determine whether or not the tile will draw itself flipped in the world. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to customize the position in which this tile is drawn. Width refers to the width of one frame of the tile, offsetY refers to how many pixels below its actual position the tile should be drawn, and height refers to the height of one frame of the tile. By default the values will be set to the values you give this tile's TileObjectData. If this tile has no TileObjectData then they will default to 16, 0, and 16, respectively. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to animate your tile. Use frameCounter to keep track of how long the current frame has been active, and use frame to change the current frame. This is called once an update. Use AnimateIndividualTile to animate specific tile instances directly. - - if (++frameCounter > 8) - { - frameCounter = 0; - if (++frame > 5) - { - frame = 0; - } - } - or, to mimic another tile, simply: - frame = Main.tileFrame[TileID.FireflyinaBottle]; - - - - Animates an individual tile. i and j are the coordinates of the Tile in question. frameXOffset and frameYOffset should be used to specify an offset from the tiles frameX and frameY. "frameYOffset = modTile.animationFrameHeight * Main.tileFrame[type];" will already be set before this hook is called, taking into account the TileID-wide animation set via AnimateTile. - Use this hook for off-sync animations (lightning bug in a bottle), temporary animations (trap chests), or TileEntities to achieve unique animation behaviors without having to manually draw the tile via PreDraw. - - The tile type. - The x position in tile coordinates. - The y position in tile coordinates. - The offset to frameX. - The offset to frameY. - - - - Allows you to draw things behind the tile at the given coordinates. Return false to stop the game from drawing the tile normally. Returns true by default. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to make stuff happen whenever the tile at the given coordinates is drawn. For example, creating dust or changing the color the tile is drawn in. - - The x position in tile coordinates. - The y position in tile coordinates. - The special draw count. Use with Main.specX and Main.specY and then increment to draw special things after the main tile drawing loop is complete via DrawSpecial. - - - - Allows you to draw things in front of the tile at the given coordinates. This can also be used to do things such as creating dust. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Special Draw. Only called if coordinates are placed in Main.specX/Y during DrawEffects. Useful for drawing things that would otherwise be impossible to draw due to draw order, such as items in item frames. - - The i. - The j. - - - - Allows you to choose which minimap entry the tile at the given coordinates will use. 0 is the first entry added by AddMapEntry, 1 is the second entry, etc. Returns 0 by default. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Called whenever the world randomly decides to update this tile in a given tick. Useful for things such as growing or spreading. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Called whenever this tile updates due to being placed or being next to a tile that is changed. Return false to stop the game from carrying out its default TileFrame operations. Returns true by default. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to stop this tile from being placed at the given coordinates. Return false to block the tile from being placed. Returns true by default. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to make something happen when this tile is right-clicked by the player. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to make something happen when this tile is right-clicked by the player. Return true to indicate that a tile interaction has occurred, preventing other right click actions like minion targetting from happening. Returns false by default. - - The x position in tile coordinates. - The y position in tile coordinates. - Return true to indicate that a tile interaction has occurred, preventing other right click actions like minion targetting from happening. Returns false by default. - - - - Allows you to make something happen when the mouse hovers over this tile. Useful for showing item icons or text on the mouse. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to make something happen when the mouse hovers over this tile, even when the player is far away. Useful for showing what's written on signs, etc. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to determine whether the given item can become selected when the cursor is hovering over this tile and the auto selection hotkey is pressed. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to make something happen when a wire current passes through this tile. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to control how hammers slope this tile. Return true to allow it to slope normally. Returns true by default. Called on the local Client and Single Player. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - Allows you to make something happen when a player stands on this type of tile. For example, you can make the player slide as if on ice. - - - - - - Whether or not this tile creates dust when the player walks on it. Returns false by default. - - - - - Allows you to modify the dust created when the player walks on this tile. The makeDust parameter is whether or not to make dust; you can randomly set this to false to reduce the amount of dust produced. - - - - - - - - Allows you to change the style of waterfall that passes through or over this type of tile. - - - - - - Allows this tile to support a sapling that can eventually grow into a tree. The type of the sapling should be returned here. Returns -1 by default. The style parameter will determine which sapling is chosen if multiple sapling types share the same ID; even if you only have a single sapling in an ID, you must still set this to 0. - - - - - - - Allows you to do something when this tile is placed. Called on the local Client and Single Player. - - The x position in tile coordinates. Equal to Player.tileTargetX - The y position in tile coordinates. Equal to Player.tileTargetY - The item used to place this tile. - - - - Return true if this Tile corresponds to a chest that is locked. Prevents Quick Stacking items into the chest. - - The x position in tile coordinates. - The y position in tile coordinates. - - - - - Allows customization of how a chest unlock is accomplished. By default, frameXAdjustment will be -36, shifting the frameX over to the left - by 1 chest style. If your chests are in a different order, adjust frameXAdjustment accordingly. - This hook is called on the client, and if successful will be called on the server and other clients as the action is synced. - Make sure that the logic is consistent and not dependent on local player data. - - The x position in tile coordinates. - The y position in tile coordinates. - The adjustment made to each Tile.frameX, defaults to -36 - The dust spawned, defaults to 11 - Set this to true to bypass the code playing the unlock sound, adjusting the tile frame, and spawning dust. Network syncing will still happen. - Return true if this tile truly is a locked chest and the chest can be unlocked - - - - Tile Entities are Entities tightly coupled with tiles, allowing the possibility of tiles to exhibit cool behavior. TileEntity.Update is called in SP and on Server, not on Clients. - - - - - - The mod that added this ModTileEntity. - - - - - The internal name of this ModTileEntity. - - - - - The numeric type used to identify this kind of tile entity. - - - - - Gets the base ModTileEntity object with the given type. - - - - - Returns the number of modded tile entities that exist in the world currently being played. - - - - - You should never use this. It is only included here for completion's sake. - - - - - You should never use this. It is only included here for completion's sake. - - - - - Returns a new ModTileEntity with the same class, mod, name, and type as the ModTileEntity with the given type. It is very rare that you should have to use this. - - - - - Returns a new ModTileEntity with the same class, mod, name, and type as the parameter. It is very rare that you should have to use this. - - - - - A helper method that places this kind of tile entity in the given coordinates for you. - - - - - A helper method that removes this kind of tile entity from the given coordinates for you. - - - - - Returns the entity ID of this kind of tile entity at the given coordinates for you. - - - - - Don't use this. It is included only for completion's sake. - - - - - Don't use this. It is included only for completion's sake. - - - - - Allows you to automatically load a tile entity instead of using Mod.AddTileEntity. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this method to either force or stop an autoload, or change the default display name. - - - - - Allows you to save custom data for this tile entity. - - - - - - Allows you to load the custom data you have saved for this tile entity. - - - - - Allows you to send custom data for this tile entity between client and server. This is called on the server while sending tile data (!lightSend) and when a MessageID.TileEntitySharing message is sent (lightSend) - - The writer. - If true, send only data that can change. Otherwise, send the full information. - - - - Receives the data sent in the NetSend hook. Called on MP Client when receiving tile data (!lightReceive) and when a MessageID.TileEntitySharing message is sent (lightReceive) - - The reader. - If true, read only data that can change. Otherwise, read the full information. - - - - Whether or not this tile entity is allowed to survive at the given coordinates. You should check whether the tile is active, as well as the tile's type and frame. - - - - - This method does not get called by tModLoader, and is only included for you convenience so you do not have to cast the result of Mod.GetTileEntity. - - - - - Code that should be run when this tile entity is placed by means of server-syncing. Called on Server only. - - - - - Code that should be run before all tile entities in the world update. - - - - - Code that should be run after all tile entities in the world update. - - - - - This method only gets called in the Kill method. If you plan to use that, you can put code here to make things happen when it is called. - - - - - This class represents a type of wall that can be added by a mod. Only one instance of this class will ever exist for each type of wall that is added. Any hooks that are called will be called by the instance corresponding to the wall type. - - - - - The mod which has added this type of ModWall. - - - - - The name of this type of wall. - - - - - The internal ID of this type of wall. - - - - - The default type of sound made when this wall is hit. Defaults to 0. - - - - - The default style of sound made when this wall is hit. Defaults to 1. - - - - - The default type of dust made when this wall is hit. Defaults to 0. - - - - - The default type of item dropped when this wall is killed. Defaults to 0, which means no item. - - - - - Adds an entry to the minimap for this wall with the given color and display name. This should be called in SetDefaults. - - - - - Creates a ModTranslation object that you can use in AddMapEntry. - - The key for the ModTranslation. The full key will be MapObject.ModName.key - - - - - Adds an entry to the minimap for this wall with the given color and display name. This should be called in SetDefaults. - - - - - Adds an entry to the minimap for this wall with the given color, default display name, and display name function. The parameters for the function are the default display name, x-coordinate, and y-coordinate. This should be called in SetDefaults. - - - - - Adds an entry to the minimap for this wall with the given color, default display name, and display name function. The parameters for the function are the default display name, x-coordinate, and y-coordinate. This should be called in SetDefaults. - - - - - Allows you to modify the name and texture path of this wall when it is autoloaded. Return true to autoload this wall. When a wall is autoloaded, that means you do not need to manually call Mod.AddWall. By default returns the mod's autoload property. - - - - - Allows you to set the properties of this wall. Many properties are stored as arrays throughout Terraria's code. - - - - - Allows you to customize which sound you want to play when the wall at the given coordinates is hit. Return false to stop the game from playing its default sound for the wall. Returns true by default. - - - - - Allows you to change how many dust particles are created when the wall at the given coordinates is hit. - - - - - Allows you to modify the default type of dust created when the wall at the given coordinates is hit. Return false to stop the default dust (the type parameter) from being created. Returns true by default. - - - - - Allows you to customize which items the wall at the given coordinates drops. Return false to stop the game from dropping the tile's default item (the type parameter). Returns true by default. - - - - - Allows you to determine what happens when the tile at the given coordinates is killed or hit with a hammer. Fail determines whether the tile is mined (whether it is killed). - - - - - Whether or not the wall at the given coordinates can be killed by an explosion (ie. bombs). Returns true by default; return false to stop an explosion from destroying it. - - - - - Allows you to choose which minimap entry the wall at the given coordinates will use. 0 is the first entry added by AddMapEntry, 1 is the second entry, etc. Returns 0 by default. - - - - - Allows you to determine how much light this wall emits. This can also let you light up the block in front of this wall. - - - - - Called whenever the world randomly decides to update the tile containing this wall in a given tick. Useful for things such as growing or spreading. - - - - - Allows you to animate your wall. Use frameCounter to keep track of how long the current frame has been active, and use frame to change the current frame. - - - - - Allows you to draw things behind the wall at the given coordinates. Return false to stop the game from drawing the wall normally. Returns true by default. - - - - - Allows you to draw things in front of the wall at the given coordinates. - - - - - Called after this wall is placed in the world by way of the item provided. - - - - - Represents a style of water that gets drawn, based on factors such as the background. This is used to determine the color of the water, as well as other things as determined by the hooks below. - - - - - The mod that added this style of water. - - - - - The internal name of this water style. - - - - - The ID of the water style. - - - - - Allows you to automatically add a ModWaterStyle instead of using Mod.AddWaterStyle. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name, and texture is initialized to the namespace and overriding class name with periods replaced with slashes. BlockTexture is initialized to texture with "_Block" added at the end. Use this to either force or stop an autoload, change the name that identifies this type of ModWaterStyle, and/or change the texture paths used by this ModWaterStyle. - - - - - Whether the conditions have been met for this water style to be used. Typically Main.bgStyle is checked to determine whether a water style should be used. Returns false by default. - - - - - The ID of the waterfall style the game should use when this water style is in use. - - - - - The ID of the dust that is created when anything splashes in water. - - - - - The ID of the gore that represents droplets of water falling down from a block. - - - - - Allows you to modify the light levels of the tiles behind the water. The light color components will be multiplied by the parameters. - - - - - Allows you to change the hair color resulting from the biome hair dye when this water style is in use. - - - - - Represents a style of waterfalls that gets drawn. This is mostly used to determine the color of the waterfall. - - - - - The mod that added this style of waterfall. - - - - - The internal name of this waterfall style. - - - - - The ID of this waterfall style. - - - - - Allows you to automatically add a ModWaterfallStyle instead of using Mod.AddWaterfallStyle. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name, and texture is initialized to the namespace and overriding class name with periods replaced with slashes. Use this to either force or stop an autoload, change the name that identifies this type of ModWaterStyle, or change the texture path used by this ModWaterfallStyle. - - - - - Allows you to create light at a tile occupied by a waterfall of this style. - - - - - Allows you to determine the color multiplier acting on waterfalls of this style. Useful for waterfalls whose colors change over time. - - - - - A ModWorld instance represents an extension of a World. You can store fields in the ModWorld classes to keep track of mod-specific information on the world. It also contains hooks to insert your code into the world generation process. - - - - - The mod that added this type of ModWorld. - - - - - The name of this ModWorld. Used for distinguishing between multiple ModWorlds added by a single Mod. - - - - - Allows you to automatically add a ModWorld instead of using Mod.AddModWorld. Return true to allow autoloading; by default returns the mod's autoload property. Name is initialized to the overriding class name. Use this to either force or stop an autoload, or change the name that identifies this type of ModWorld. - - - - - Called whenever the world is loaded. This can be used to initialize data structures, etc. - - - - - Allows you to save custom data for this world. Useful for things like saving world specific flags. For example, if your mod adds a boss and you want certain NPC to only spawn once it has been defeated, this is where you would store the information that that boss has been defeated in this world. Returns null by default. - - - - - Allows you to load custom data you have saved for this world. - - - - - Allows you to load pre-v0.9 custom data you have saved for this world. - - - - - Allows you to send custom data between clients and server. This is useful for syncing information such as bosses that have been defeated. - - - - - Allows you to do things with custom data that is received between clients and server. - - - - - Allows a mod to run code before a world is generated. - - - - - A more advanced option to PostWorldGen, this method allows you modify the list of Generation Passes before a new world begins to be generated. For example, removing the "Planting Trees" pass will cause a world to generate without trees. Placing a new Generation Pass before the "Dungeon" pass will prevent the the mod's pass from cutting into the dungeon. - - - - - Use this method to place tiles in the world after world generation is complete. - - - - - Use this to reset any fields you set in any of your ModTile.NearbyEffects hooks back to their default values. - - - - - Use this method to have things happen in the world. In vanilla Terraria, a good example of code suitable for this hook is how Falling Stars fall to the ground during the night. This hook is called every frame. - - - - - Use this method to have things happen in the world. In vanilla Terraria, a good example of code suitable for this hook is how Falling Stars fall to the ground during the night. This hook is called every frame. - - - - - Allows you to store information about how many of each tile is nearby the player. This is useful for counting how many tiles of a certain custom biome there are. The tileCounts parameter stores the tile count indexed by tile type. - - - - - Allows you to change the water style (determines water color) that is currently being used. - - - - - Similar to ModifyWorldGenTasks, but occurs in-game when Hardmode starts. Can be used to modify which tasks should be done and/or add custom tasks. By default the list will only contain 4 items, the vanilla hardmode tasks called "Hardmode Good", "Hardmode Evil", "Hardmode Walls", and "Hardmode Announcment" - - - - - Called after drawing Tiles. Can be used for drawing a tile overlay akin to wires. Note that spritebatch should be begun and ended within this method. - - - - - This enum dictates from low to high which music selections take priority. - Setting appropriate MusicPriority values in Mod.UpdateMusic is important so that your mod works well with other mods and vanilla music selections. - - - - Represents no priority - - - Hallow, Ocean, Desert, Overworld, Night - - - Dungeon, Meteor, Jungle, Snow - - - Temple, Mushrooms, Corruption, Crimson, - - - Sandstorm, Hell, Above surface during Eclipse, Space - - - Pirate Invasion, Goblin Invasion, Old Ones Army - - - All other bosses and default modded boss priority - - - Martian Madness, Celestial Towers, Plantera - - - Moon Lord - - - - This server as a central class to help modders spawn their npcs. It's basically the vanilla spawn code if-else chains condensed into objects. See ExampleMod for usages. - - - - - This class allows you to make any changes you want to a recipe, whether it be adding/removing ingredients, changing the result, or removing the recipe entirely. - - - - - Creates a recipe editor that acts on the given recipe. - - The recipe this RecipeEditor should focus on. - - - - Adds an ingredient with the given item ID and stack size to the recipe. If the recipe already contains the ingredient, it will increase the stack requirement instead. Can also throw a RecipeException. - - The required item (ingredient) ID - The required item (ingredient) stack - - - - Sets the stack requirement of the ingredient with the given item ID in the recipe. Returns true if the operation was successful. Returns false if the recipe does not contain the ingredient. Can also throw a RecipeException. - - The item ID of the ingredient to set the stack on. - The new stack amount. - Whether the operation was successful. - - - - Deletes the ingredient requirement with the given ID from the recipe. Returns true if the operation was successful. Returns false if the recipe did not contain the ingredient in the first place. Can also throw a RecipeException. - - The item ID of the ingredient to delete. - Whether the operation was successful. - - - - Adds the recipe group with the given name to the recipe. Note that, unlike ModRecipe and RecipeFinder, this won't actually add an ingredient; it will only allow existing ingredients to be interchangeable with other items. Returns true if the operation was successful. Returns false if the recipe already accepts the given recipe group. Can also throw a RecipeException. - - The recipegroup name to accept. - Whether adding the recipegroup was successful. - - - - Removes the recipe group with the given name from the recipe. This is the opposite of AcceptRecipeGroup; while it won't remove ingredients, it will make existing ingredients no longer be interchangeable with other items. Returns true if the operation was successful. Returns false if the recipe did not contain the recipe group in the first place. Can also throw a RecipeException. - - The recipegroup name to reject. - Whether removing the recipegroup was successful. - - - - A convenience method for setting the result of the recipe. Similar to calling recipe.createItem.SetDefaults(itemID), followed by recipe.createItem.stack = stack. Can also throw a RecipeException. - - The ID of the item to set as result. - The stack of the item to set as result. - - - - Adds the crafting station with the given tile ID to the recipe. Returns true if the operation was successful. Returns false if the recipe already requires the given tile. Can also throw a RecipeException. - - The tile ID to add. - Whether the operation was successful - - - - Removes the crafting station with the given tile ID as a requirement from the recipe. Returns true if the operation was successful. Returns false if the recipe did not require the tile in the first place. Can also throw a RecipeException. - - The tile ID to remove. - Whether the operation was successful or not. - - - - A convenience method for setting recipe.needWater. - - Whether the recipe needs water. - - - - A convenience method for setting recipe.needLava. - - Whether the recipe needs lava. - - - - A convenience method for setting recipe.needHoney. - - Whether the recipe needs honey. - - - - Completely removes the recipe from the game, making it unusable. Returns true if the operation was successful. Returns false if the recipe was already not in the game. - - - - - - This class will search through all existing recipes for you based on criteria that you give it. It's useful for finding a particular vanilla recipe that you wish to remove or edit. Use this by creating new instances with the empty constructor for each search you perform. - - - - - Adds the requirement of being nearby water to the search criteria. Defaults to false. - - - - - Adds the requirement of being nearby lava to the search criteria. Defaults to false. - - - - - Adds the requirement of being nearby honey to the search criteria. Defaults to false. - - - - - Adds an ingredient with the given item type and stack size to the search criteria. - - The item ID of the ingredient to add. - The stack of the ingredient to add. - - - - Adds a recipe group ingredient with the given RecipeGroup name and stack size to the search criteria. - - The name of the recipegroup to accept. - The stack of the recipegroup to accept. - - - - Sets the search criteria's result to the given item type and stack size. - - The item ID of the item to set as result. - The stack of the item to set as result. - - - - Adds a required crafting station with the given tile type to the search criteria. - - The tile ID of the tile to add. - - - - Searches for a recipe that matches the search criteria exactly, then returns it. That means the recipe will have exactly the same ingredients, tiles, liquid requirements, recipe groups, and result; even the stack sizes will match. If no recipe with an exact match is found, this will return null. - - The recipe found matching the finder's criteria. - - - - Searches for all recipes that include the search criteria, then returns them in a list. In terms of ingredients, it will search for recipes that include all the search criteria ingredients, with stack sizes greater than or equal to the search criteria. It will also make sure the recipes include all search criteria recipe groups and tiles. If the search criteria includes a result, the recipes will also have the same result with a stack size greater than or equal to the search criteria. Finally, if needWater, needLava, or needHoney are set to true, the found recipes will also have them set to true. - - A list containing found recipes matching the finder's criteria. - - - - This is where all ModRecipe and GlobalRecipe hooks are gathered and called. - - - - - Returns whether or not the conditions are met for this recipe to be available for the player to use. - - The recipe to check. - Whether or not the conditions are met for this recipe. - - - - Allows you to make anything happen when a player uses this recipe. - - The item crafted. - The recipe used to craft the item. - - - - This class serves as a way to store information about a line that will be drawn of tooltip for an item. You will create and manipulate objects of this class if you use the draw hooks for tooltips in ModItem and GlobalItem. For examples, see ExampleSword - - - - - The text of this tooltip. - - - - - The index of the tooltip in the array - - - - - Whether or not this tooltip gives prefix information. This will make it so that the tooltip is colored either green or red. - - - - - If isModifier is true, this determines whether the tooltip is colored green or red. - - - - - The X position where the tooltip would be drawn that is not adjusted by mods. - - - - - The Y position where the tooltip would be drawn that is not adjusted by mods. - - - - - The X position where the tooltip would be drawn. - - - - - The Y position where the tooltip would be drawn. - - - - - The color the tooltip would be drawn in - - - - - If the tooltip line's color was overridden this will hold that color, it will be null otherwise - - - - - Whether the tooltip is a One Drop logo or not. If it is, the tooltip text will be empty. - - - - - The font this tooltip would be drawn with - - - - - The rotation this tooltip would be drawn in - - - - - The origin of this tooltip - - - - - The baseScale of this tooltip. When drawing the One Drop logo the scale is calculated by (baseScale.X + baseScale.Y) / 2 - - - - - Creates a new DrawableTooltipLine object - - The TooltipLine to make this DrawableTooltipLine from - The index of the line in the array - The X position where the tooltip would be drawn. - The Y position where the tooltip would be drawn. - The color the tooltip would be drawn in - - - - This class serves as a way to store information about a line of tooltip for an item. You will create and manipulate objects of this class if you use the ModifyTooltips hook. - - - - - The name of the mod adding this tooltip line. This will be "Terraria" for all vanilla tooltip lines. - - - - - The name of the tooltip, used to help you identify its function. - - - - - The actual text that this tooltip displays. - - - - - Whether or not this tooltip gives prefix information. This will make it so that the tooltip is colored either green or red. - - - - - If isModifier is true, this determines whether the tooltip is colored green or red. - - - - - This completely overrides the color the tooltip is drawn in. If it is set to null (the default value) then the tooltip's color will not be overridden. - - - - - Creates a tooltip line object with the given mod, identifier name, and text. - These are the names of the vanilla tooltip lines, in the order in which they appear, along with their functions. All of them will have a mod name of "Terraria". Remember that most of these tooltip lines will not exist depending on the item. - - "ItemName" - The name of the item. - "Favorite" - Tells if the item is favorited. - "FavoriteDesc" - Tells what it means when an item is favorited. - "Social" - Tells if the item is in a social slot. - "SocialDesc" - Tells what it means for an item to be in a social slot. - "Damage" - The damage value and type of the weapon. - "CritChance" - The critical strike chance of the weapon. - "Speed" - The use speed of the weapon. - "Knockback" - The knockback of the weapon. - "FishingPower" - Tells the fishing power of the fishing pole. - "NeedsBait" - Tells that a fishing pole requires bait. - "BaitPower" - The bait power of the bait. - "Equipable" - Tells that an item is equipable. - "WandConsumes" - Tells what item a tile wand consumes. - "Quest" - Tells that this is a quest item. - "Vanity" - Tells that this is a vanity item. - "Defense" - Tells how much defense the item gives when equipped. - "PickPower" - The item's pickaxe power. - "AxePower" - The item's axe power. - "HammerPower" - The item's hammer power. - "TileBoost" - How much farther the item can reach than normal items. - "HealLife" - How much health the item recovers when used. - "HealMana" - How much mana the item recovers when used. - "UseMana" - Tells how much mana the item consumes upon usage. - "Placeable" - Tells if the item is placeable. - "Ammo" - Tells if the item is ammo. - "Consumable" - Tells if the item is consumable. - "Material" - Tells if the item can be used to craft something. - "Tooltip#" - A tooltip line of the item. # will be 0 for the first line, 1 for the second, etc. - "EtherianManaWarning" - Warning about how the item can't be used without Etherian Mana until the Eternia Crystal has been defeated. - "WellFedExpert" - In expert mode, tells that food increases life renegeration. - "BuffTime" - Tells how long the item's buff lasts. - "OneDropLogo" - The One Drop logo for yoyos.This is a specially-marked tooltip line that has no text. - "PrefixDamage" - The damage modifier of the prefix. - "PrefixSpeed" - The usage speed modifier of the prefix. - "PrefixCritChance" - The critical strike chance modifier of the prefix. - "PrefixUseMana" - The mana consumption modifier of the prefix. - "PrefixSize" - The melee size modifier of the prefix. - "PrefixShootSpeed" - The shootSpeed modifier of the prefix. - "PrefixKnockback" - The knockback modifier of the prefix. - "PrefixAccDefense" - The defense modifier of the accessory prefix. - "PrefixAccMaxMana" - The maximum mana modifier of the accessory prefix. - "PrefixAccCritChance" - The critical strike chance modifier of the accessory prefix. - "PrefixAccDamage" - The damage modifier of the accessory prefix. - "PrefixAccMoveSpeed" - The movement speed modifier of the accessory prefix. - "PrefixAccMeleeSpeed" - The melee speed modifier of the accessory prefix. - "SetBonus" - The set bonus description of the armor set. - "Expert" - Tells whether the item is from expert-mode. - "SpecialPrice" - Tells the alternate currency price of an item. - "Price" - Tells the price of an item. - - - The mod instance - The name of the tooltip - The content of the tooltip - - - - This serves as the central class from which WaterStyle functions are supported and carried out. - - - - - The maximum amount of liquids in vanilla. - - - - - The number of water styles that exist in the game, both vanilla and modded. - - - - - Returns the ModWaterStyle with the given ID. - - - - - Returns the ModWaterfallStyle with the given ID. - - - - - This is where all ModWorld hooks are gathered and called. - - - - - This serves as the central place from which mounts are stored and mount-related functions are carried out. - - - - - Gets the ModMountData instance corresponding to the given type. Returns null if no ModMountData has the given type. - - The type of the mount. - Null if not found, otherwise the ModMountData associated with the mount. - - - - Allows you to make things happen while the mouse is pressed while the mount is active. Called each tick the mouse is pressed. - - - - Does nothing yet - - - - Allows you to make things happen when the mount ability is aiming (while charging). - - - - - - - - Allows you to make things happen when this mount is spawned in. Useful for player-specific initialization, utilizing player.mount._mountSpecificData or a ModPlayer class since ModMountData is shared between all players. - Custom dust spawning logic is also possible via the skipDust parameter. - - - - Set to true to skip the vanilla dust spawning logic - - - - Allows you to make things happen when this mount is de-spawned. Useful for player-specific cleanup, see SetMount. - Custom dust spawning logic is also possible via the skipDust parameter. - - - - Set to true to skip the vanilla dust spawning logic - - - - See - - - - - This is an enum of all possible types of extra mount textures for custom mounts. Use these as keys in the extraTextures dictionary passed to Mod.AddMount to give your mount front and back textures. - - - - - This class serves as a central place from which NPC head slots are stored and NPC head textures are assigned. This can be used to obtain the corresponding slots to head textures. - - - - - The number of vanilla town NPC head textures that exist. - - - - - The number of vanilla boss head textures that exist. - - - - - Gets the index of the head texture corresponding to the given texture path. - - Relative texture path - The index of the texture in the heads array, -1 if not found. - - - - Gets the index of the boss head texture corresponding to the given texture path. - - - - - - - This serves as the central class from which NPC-related functions are carried out. It also stores a list of mod NPCs by ID. - - - - - Allows you to stop an NPC from dropping loot by adding item IDs to this list. This list will be cleared whenever NPCLoot ends. Useful for either removing an item or change the drop rate of an item in the NPC's loot table. To change the drop rate of an item, use the PreNPCLoot hook, spawn the item yourself, then add the item's ID to this list. - - - - - Gets the ModNPC instance corresponding to the specified type. - - The type of the npc - The ModNPC instance in the npcs array, null if not found. - - - - A struct that stores information regarding where an NPC is naturally spawning and the player it is spawning around. This serves to reduce the parameter count for ModNPC.CanSpawn and GlobalNPC.EditSpawnPool. - - - - - The x-coordinate of the tile the NPC will spawn above. - - - - - The y-coordinate of the tile the NPC will spawn above. - - - - - The player that this NPC is spawning around. - For convenience, here are the player zones, which are also useful for determining NPC spawn: - - ZoneDungeon - ZoneCorrupt - ZoneHoly - ZoneMeteor - ZoneJungle - ZoneSnow - ZoneCrimson - ZoneWaterCandle - ZonePeaceCandle - ZoneTowerSolar - ZoneTowerVortex - ZoneTowerNebula - ZoneTowerStardust - ZoneDesert - ZoneGlowshroom - ZoneUndergroundDesert - ZoneSkyHeight - ZoneOverworldHeight - ZoneDirtLayerHeight - ZoneRockLayerHeight - ZoneUnderworldHeight - ZoneBeach - ZoneRain - ZoneSandstorm - - - - - - The x-coordinate of the tile the player is standing on. - - - - - The y-coordinate of the tile the player is standing on. - - - - - Whether or not the player is in the sky biome, where harpies and wyverns spawn. - - - - - Whether or not the player is inside the jungle temple, where Lihzahrds spawn. - - - - - Whether or not the player is in front of a player-placed wall or in a large town. If this is true, enemies that can attack through walls should not spawn (unless an invasion is in progress). - - - - - Whether or not there is an invasion going on and the player is near it. - - - - - Whether or not the tile the NPC will spawn in contains water. - - - - - Whether or not the NPC will spawn on a granite block or the player is near a granite biome. - - - - - Whether or not the NPC will spawn on a marble block or the player is near a marble biome. - - - - - Whether or not the player is in a spider cave or the NPC will spawn near one. - - - - - Whether or not the player is in a town. This is used for spawning critters instead of monsters. - - - - - Whether or not the player is in front of a desert wall or the NPC will spawn near one. - - - - - Whether Plantera is defeated and the world is in hardmode. This isn't needed (it's easy to find by yourself), but it's a local flag in NPC.SpawnNPC, so it is included for completeness. - - - - - Whether or not the NPC is horizontally within the range near the player in which NPCs cannot spawn. If this is true, it also means that it is vertically outside of the range near the player in which NPCs cannot spawn. - - - - - This class represents a layer of the drawing of an object, using a certain type of InfoType to help with its drawing. - - - - - - The name of the mod to which this DrawLayer belongs. - - - - - The name which identifies this DrawLayer. - - - - - The parent of this DrawLayer. If the parent is not drawn, this layer will not be drawn either. Defaults to null, which skips the parent check. - - - - - The delegate of this method, which can either do the actual drawing or add draw data, depending on what kind of layer this is. - - - - - Whether or not this DrawLayer should be drawn. For vanilla layers, this will be set to true before all drawing-related hooks are called. For modded layers, you must set this to true or false yourself. - - - - - Creates a DrawLayer with the given mod name, identifier name, and drawing action. - - - - - - - - Creates a DrawLayer with the given mod name, identifier name, parent layer, and drawing action. - - - - - - - - - - Invokes this DrawLayer's layer action. - - - - - - This class represents a DrawLayer for the player, and uses PlayerDrawInfo as its InfoType. Drawing should be done by adding Terraria.DataStructures.DrawData objects to Main.playerDrawData. - - - - - Draws the player's hair. To be honest this layer seems kind of useless. - - - - - Draws the back textures of the player's mount. Also draws the player's magic carpet. - - - - - Draws miscellaneous effects behind the player. - - - - - Draws the player's back accessory and held item's backpack. - - - - - Draws the layer's wings. - - - - - Draws the player's balloon accessory. - - - - - Draws the player's body and leg skin. - - - - - Draws the player's leg armor or pants and shoes. - - - - - Draws the player's shoe accessory. - - - - - Draws the player's body armor or shirts. - - - - - Draws the player's hand off accessory. - - - - - Draws the player's waist accessory. - - - - - Draws the player's neck accessory. - - - - - Draws the player's face and eyes. - - - - - Draws the player's hair. - - - - - Draws the player's head armor. - - - - - Draws the player's face accessory. - - - - - Draws the front textures of the player's mount. Also draws the pulley if the player is hanging on a rope. - - - - - Draws the player's shield accessory. - - - - - Draws the player's solar shield if the player has one. - - - - - Draws the player's held projectile if it should be drawn behind the held item and arms. - - - - - Draws the player's held item. - - - - - Draws the player's arms (including the armor's arms if applicable). - - - - - Draws the player's hand on accessory. Also draws the player's held item if the player is in the middle of using a claw item. - - - - - Draws the player's held projectile if it should be drawn in front of the held item and arms. - - - - - Draws the player's front accessory. - - - - - Draws miscellaneous effects in front of the player. - - - - - Creates a PlayerLayer with the given mod name, identifier name, and drawing action. - - - - - - - - Creates a PlayerLayer with the given mod name, identifier name, parent layer, and drawing action. - - - - - - - - - This class represents a DrawLayer for the player's map icon, and uses PlayerDrawHeadInfo as its InfoType. Drawing should be done directly through drawInfo.spriteBatch. - - - - - Draws the player's face and eyes. - - - - - Draws the player's hair. - - - - - Draws the player's alternate (hat) hair. - - - - - Draws the player's head armor. - - - - - Draws the player's face accessory. - - - - - Creates a PlayerHeadLayer with the given mod name, identifier name, and drawing action. - - - - - - - - Creates a PlayerHeadLayer with the given mod name, identifier name, parent layer, and drawing action. - - - - - - - - - This serves as the central class from which projectile-related functions are carried out. It also stores a list of mod projectiles by ID. - - - - - Gets the ModProjectile instance corresponding to the specified type. - - The type of the projectile - The ModProjectile instance in the projectiles array, null if not found. - - - - This class is used to keep track of and support the existence of custom sounds that have been added to the game. - - - - - This value should be passed as the first parameter to Main.PlaySound whenever you want to play a custom sound that is not an item, npcHit, or npcKilled sound. - - - - - Returns the style (last parameter passed to Main.PlaySound) of the sound corresponding to the given SoundType and the given sound file path. Returns 0 if there is no corresponding style. - - - - - Returns a LegacySoundStyle object which encapsulates both a sound type and a sound style (This is the new way to do sounds in 1.3.4) Returns null if there is no corresponding style. - - - - - This is an enum of the types of sound you can add to the game. This is used for determining whether a sound is a music or a sound effect. If it's a sound effect, it's also used for determining the "type" passed to Main.PlaySound (first parameter) that is required in order for a sound to play; 2 for item sounds, 3 for npcHit sounds, 4 for npcKilled sounds, and SoundLoader.customSoundType for anything else. - - - - - This serves as the central class from which tile-related functions are supported and carried out. - - - - - Gets the ModTile instance with the given type. If no ModTile with the given type exists, returns null. - - The type of the ModTile - The ModTile instance in the tiles array, null if not found. - - - - Sets the animation frame. Sets frameYOffset = modTile.animationFrameHeight * Main.tileFrame[type]; and then calls ModTile.AnimateIndividualTile - - The tile type. - The x position in tile coordinates. - The y position in tile coordinates. - The offset to frameX. - The offset to frameY. - - - - Special Draw calls ModTile and GlobalTile SpecialDraw methods. Special Draw is called from DrawTiles after the draw loop, allowing for basically another layer above tiles. Main.specX and Main.specY are used to specify tiles to call SpecialDraw on. Use DrawEffects hook to queue for SpecialDraw. - - - - - This serves as the central class from which wall-related functions are supported and carried out. - - - - - Gets the ModWall instance with the given type. If no ModWall with the given type exists, returns null. - - - - - This is where all ModPlayer hooks are gathered and called. - - - - - Calls ModItem.HookModifyWeaponDamage, then all GlobalItem.HookModifyWeaponDamage hooks. - - - - Gets the global item. Use this overload when you dynamically add GlobalItems manually. - - - Gets the global item. Use this overload when you know only 1 instance will ever be added by this particular mod. - - - Gets the global item. Use this overload when you know only 1 instance will ever be added among all mods. 99% of mods should use this. - - - Gets the global NPC. Use this overload when you dynamically add GlobalNPC manually. - - - Gets the global NPC. Use this overload when you know only 1 instance will ever be added by this particular mod. - - - Gets the global NPC. Use this overload when you know only 1 instance will ever be added among all mods. 99% of mods should use this. - - - - Will spawn an item like QuickSpawnItem, but clones it (handy when you need to retain item infos) - - The item you want to be cloned - The stack to give the item. Note that this will override maxStack if it's higher. - - - Gets the global projectile. Use this overload when you dynamically add GlobalProjectile manually. - - - Gets the global projectile. Use this overload when you know only 1 instance will ever be added by this particular mod. - - - Gets the global projectile. Use this overload when you know only 1 instance will ever be added among all mods. 99% of mods should use this. - - - diff --git a/TombstoneDeathMod2/bin/Release/net45/TerrariaHooks.dll b/TombstoneDeathMod2/bin/Release/net45/TerrariaHooks.dll deleted file mode 100755 index 6d985fb..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/TerrariaHooks.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/TombstoneDeathMod.dll b/TombstoneDeathMod2/bin/Release/net45/TombstoneDeathMod.dll deleted file mode 100755 index 68e61c6..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/TombstoneDeathMod.dll and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/TombstoneDeathMod.pdb b/TombstoneDeathMod2/bin/Release/net45/TombstoneDeathMod.pdb deleted file mode 100755 index a6c3cd5..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/TombstoneDeathMod.pdb and /dev/null differ diff --git a/TombstoneDeathMod2/bin/Release/net45/log4net.dll b/TombstoneDeathMod2/bin/Release/net45/log4net.dll deleted file mode 100755 index 8deb7dd..0000000 Binary files a/TombstoneDeathMod2/bin/Release/net45/log4net.dll and /dev/null differ diff --git a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod.dll b/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod.dll deleted file mode 100755 index 68e61c6..0000000 Binary files a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod.dll and /dev/null differ diff --git a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod.pdb b/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod.pdb deleted file mode 100755 index a6c3cd5..0000000 Binary files a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod.pdb and /dev/null differ diff --git a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod2.AssemblyInfo.cs b/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod2.AssemblyInfo.cs deleted file mode 100755 index 83bcf70..0000000 --- a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod2.AssemblyInfo.cs +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("TombstoneDeathMod")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] -[assembly: System.Reflection.AssemblyProductAttribute("TombstoneDeathMod")] -[assembly: System.Reflection.AssemblyTitleAttribute("TombstoneDeathMod")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod2.csproj.CopyComplete b/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod2.csproj.CopyComplete new file mode 100755 index 0000000..e69de29 diff --git a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod2.csproj.CoreCompileInputs.cache b/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod2.csproj.CoreCompileInputs.cache deleted file mode 100755 index b31ed78..0000000 --- a/TombstoneDeathMod2/obj/Release/net45/TombstoneDeathMod2.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -c2238df599a0cb137bb05eba778b11b1c3f5dfe4 diff --git a/TombstoneDeathMod2/obj/TombstoneDeathMod2.csproj.nuget.g.props b/TombstoneDeathMod2/obj/TombstoneDeathMod2.csproj.nuget.g.props new file mode 100755 index 0000000..15fec75 --- /dev/null +++ b/TombstoneDeathMod2/obj/TombstoneDeathMod2.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + C:\Users\exuvo\Documents\My Games\Terraria\ModLoader\Mod Sources\TombstoneDeathMod2\obj\project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\exuvo\.nuget\packages\ + PackageReference + 4.5.0 + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + \ No newline at end of file diff --git a/TombstoneDeathMod2/obj/TombstoneDeathMod2.csproj.nuget.g.targets b/TombstoneDeathMod2/obj/TombstoneDeathMod2.csproj.nuget.g.targets new file mode 100755 index 0000000..53cfaa1 --- /dev/null +++ b/TombstoneDeathMod2/obj/TombstoneDeathMod2.csproj.nuget.g.targets @@ -0,0 +1,6 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + \ No newline at end of file diff --git a/TombstoneDeathMod2/obj/project.assets.json b/TombstoneDeathMod2/obj/project.assets.json index 63db233..a823961 100755 --- a/TombstoneDeathMod2/obj/project.assets.json +++ b/TombstoneDeathMod2/obj/project.assets.json @@ -16,11 +16,11 @@ "hideWarningsAndErrors": true }, "restore": { - "projectUniqueName": "C:\\Users\\exuvo\\Documents\\My Games\\Terraria\\ModLoader\\Mod Sources\\TombstoneDeathMod\\TombstoneDeathMod.csproj", - "projectName": "TombstoneDeathMod", - "projectPath": "C:\\Users\\exuvo\\Documents\\My Games\\Terraria\\ModLoader\\Mod Sources\\TombstoneDeathMod\\TombstoneDeathMod.csproj", + "projectUniqueName": "C:\\Users\\exuvo\\Documents\\My Games\\Terraria\\ModLoader\\Mod Sources\\TombstoneDeathMod2\\TombstoneDeathMod2.csproj", + "projectName": "TombstoneDeathMod2", + "projectPath": "C:\\Users\\exuvo\\Documents\\My Games\\Terraria\\ModLoader\\Mod Sources\\TombstoneDeathMod2\\TombstoneDeathMod2.csproj", "packagesPath": "C:\\Users\\exuvo\\.nuget\\packages\\", - "outputPath": "C:\\Users\\exuvo\\Documents\\My Games\\Terraria\\ModLoader\\Mod Sources\\TombstoneDeathMod\\obj\\", + "outputPath": "C:\\Users\\exuvo\\Documents\\My Games\\Terraria\\ModLoader\\Mod Sources\\TombstoneDeathMod2\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\exuvo\\AppData\\Roaming\\NuGet\\NuGet.Config",