diff --git a/Libs/Assembly-CSharp_publicized.dll b/Libs/Assembly-CSharp_publicized.dll new file mode 100644 index 0000000..8486c97 Binary files /dev/null and b/Libs/Assembly-CSharp_publicized.dll differ diff --git a/Libs/SRML.Editor.dll b/Libs/SRML.Editor.dll new file mode 100644 index 0000000..ceca19f Binary files /dev/null and b/Libs/SRML.Editor.dll differ diff --git a/Libs/SRML.dll b/Libs/SRML.dll new file mode 100644 index 0000000..7efefd3 Binary files /dev/null and b/Libs/SRML.dll differ diff --git a/Libs/SRML.xml b/Libs/SRML.xml new file mode 100644 index 0000000..6382d6c --- /dev/null +++ b/Libs/SRML.xml @@ -0,0 +1,3810 @@ + + + + SRML + + + + + A command to add a user defined button to the command menu + + + + + A command to clear the console + + + + + A command that dumps stuff to dump files + + + + + A command to edit a user defined button + + + + + A command to display all commands + + + + + A command to display all mods + + + + + A command to reload the mods + + + + + A command to remove a user defined button from the command menu + + + + + Controls the in-game console + + + + + The event that triggers when the Reload Command is called + + + + + Initializes the console + + + + + Registers a new command into the console + + Command to register + True if registered succesfully, false otherwise + + + + Registers a new console button + + The id of the button + Button to register + True if registered succesfully, false otherwise + + + + Registers a new dump action for the dump command + + The id to use for the dump command argument + The dump action to run + True if registered succesfully, false otherwise + + + + Registers a command catcher which allows commands to be processed and their execution controlled by outside methods + + The method to catch the commands + + + + Logs a info message + + Message to log + Should log to file? + + + + Logs a success message + + Message to log + Should log to file? + + + + Logs a warning message + + Message to log + Should log to file? + + + + Logs an error message + + Message to log + Should log to file? + + + + Binds user commands to the console command menu + + + + + Reads all bindings + + + + + Registers a new bind + + The id of the button + The text to show on the button + The command to execute + + + + Removes a bind + + The id of the bind to remove + True if the bind got removed, false otherwise + + + + Removes all binds + + + + + Gets all the binds registered + + + + + A button for the console menu + + + + + Text to display on the button + + + + + Command to execute when the button is pressed + + + + + Creates a new console button button + + Text to display on the button + Command to execute when the button is pressed + + + + Base class for all console commands + + + + + The ID of this command (Always lowercase) + + + + + The usage info of this command + + + + + The description of this command + + + + + The extended description of this command, with a description of each argument to + display when you use help command on this command (Multiline is supported) + + + + + Executes the command + + The arguments passed in the console (null if no arguments are provided) + True if it executed, false otherwise + + + + Gets the auto complete list (word filter is done by the system) + + The index of the argument in the command string + The text of the argument + The list of auto complete options + + + + Gets the auto complete list (word filter is done by the system) + + The index of the argument in the command string + A list of inputted arguments + The list of auto complete options + + + + The arguments are out of bounds (either too many or too little) + + Amount of arguments + Minimun amount + Maximun amount + True if arguments are out of bounds, false otherwise + + + + Draws the window for the in-game console + + + + + Attachs the window to a scene + + + + + The logger for the log file + + + + + Initializes the file logger (run this before Console.Init) + + + + + Logs a info message + + Message to log + + + + Logs a warning message + + Message to log + + + + Logs an error message + + Message to log + + + + Allows adding values to any Enum + + + + + Add a new enum value to the given with the first free value + + Type of enum to add the value to + Name of the new enum value + The new enum value + + + + Add a new enum value to the given with the first free value + + Type of enum to add the value to + Name of the new enum value + The new enum value + + + + Add a new value to the given + + Enum to add the new value to + Value to add to the enum + The name of the new value + + + + Add a new value to the given + + Enum to add the new value to + Value to add to the enum + The name of the new value + + + + Get first undefined value in an enum + + + The first undefined enum value + + + + Get first undefined value in an enum + + + The first undefined enum value + + + + Serializable table that maps enum values from placeholder numerical values to their string counterparts + Used to assure that enum values map properly between game loads, even if registration order changes + Mapped values are always negative + + + + + Get the next free value for the given enumType + + The enum type + The next free value + + + + Generate a translation table for a list of enumValues + + List of enum values to translate + + + + Replace missing enum values with default values, or remove them all together + + + + + Translate an enum value + + Original enum value + Translated integer + + + + Register an EnumFixer that allows for objects of type to have their enum values processed by an enumtranslator + + + + + + + Fix enum values in an object using the registered EnumFixer + + the to use for translating + Whether to translate TO or FROM the translated form + Object to fix + + + + Class used to generate an error message + + + + + Checks if a path exists and creates it if it doesn't + + Path to be checked + returns the original path argument + + + + When called from a mod, gets the base path of that mod + + The base path of the current executing mod + + + + Gets a mods config path + + The mod whose config path is needed + The config path + + + + Gets the current mods config path + + The config path + + + + Utility class to help manage the main SRML harmony instance + + + + + Utilities for communication between mods + + + + + Called before GameContext.Awake() + + + + + Called before GameContext.Start() + + + + + Called after Load + + + + + Called before
+ Used to register things such as enum values, and to do Harmony patching +
+
+ + + Called before
+ Used to register things that require a loaded GameContext +
+
+ + + Called after every mod's Load has finished (not a registry step)
+ Used for editing existing assets in the game +
+
+ + + Register a modded achievement into the registry. + + The id of the achievement to register. + The tracker to track achievement progress. + The tier the achievement goes into. + + + + Register an achievement tier into the registry. + + The id of the tier. + The icon to be displayed in the achievement UI. + + + + Check if an achievement is modded. + + The id of the achievement to check. + True if achievement id belongs to a modded achievement, otherwise false. + + + + Tiers for an achievement to be put into. + + + + + Register an ammo prefab to allow it to be put in a player's ammos (use ) + + to register the prefab to + + + + + Allow an to be put into a players inventory + + Which inventory to allow the into + The to allow + + + + Allow an Identifiable.Id to be put into a inventory + + + + + + + Allow an Identifiable to be put into the Refinery + + + + + + Creates a and registers it into the enum + + + + + + + + + Creates a and registers it into the enum + + + + + + + + + Registers a + + + + + + See if a is modded + + + True if given is from a mod + + + + See if a is modded + + + True if given is from a mod + + + + Registers an offset for a fashion. + + The of the fashion to offset. + How far the fashion gets offset. + The condition that the fashion gets offset in. + + + + Registers a slot for a fashion to be placed in. + + The that belongs to the slot. + The hierarchal path to the bone. + The that the slot attaches to. + + + + Adds an to a . + + The to add to. + The to be added. + + + + Registers a range of s into a . + + The to add to. + The s to be added. + + + + Registers a range of s into a . + + The to add to. + The s to be added. + + + + Registers a range of s into a . + + The s to be added. + + + + Registers a range of s into a . + + The s to be added. + + + + Removes an from a . + + The to be removed from. + The to be removed. + + + + Removes an from a . + + The to be removed. + The to be removed from. + + + + Adds an to a . + + The to be added. + The to add to. + + + + Automatically adds an to a . + + The to be added. + + + + Registers a rule for what to register a into. + + The condition that the is registered into the + The to register an into. + + + + Adds a rank into the 7Zee Rewards catalogue. If the rank already exists, then combine with the pre-existing one. + + The level of the rank. + How much it costs to purchase the rank. + The rewards for the rank. + The banner to show behind the rank name. If null, then it will set to the highest rank's banner. + + + + Adds a reward to a rank. + + The rank to add a reward to. + The to add. + + + + A special way to register rewards with a unique translation key. + + + + + Registers a region into the . + + The of the region. + The bounds and values of the region. + + + + Adds a zone into a region. + + The to be added. + The of the region to add to. + + + + Class for handling string ID's for the save system + + + + + Class allowing for the addition of arbitrary data to Actors, similar to Minecraft's NBT system + + + + + Instantiate an an Actor with the given data + + + + + + + + + + + A participant of the data system + + + + + A participant of the data system. When on a slime, if the slime transforms, it will copy to the resulting object. + + + + + Register a serializable + + The actor model to register + The mod specific integer ID that the save system will use to refer to this + + + + Register a serializable + + Gadget model to register + The mod specific integer ID that the save system will use to refer to this + + + + Register a serializable + + LandPlot model to register + The mod specific integer ID that the save system will use to refer to this + + + + Register a that will take part in the extended data system + + Type of the participant to register + + + + Allows an to go onto a gordo snare. + + The to register. + + + if secret styles is installed, otherwise . + + + + Register a secret style in a + + Slime definition to register the secret style for + Secret style to register + + + + Registers a targeter. + + The condition in which the targeter is used. + A function getting the name of the targeted object, with the first bundle being the UI bundle, and the second being the pedia bundle. + A function getting the description of the targeted object, with the first bundle being the UI bundle, and the second being the pedia bundle. + + + + Combines two keys' resulting translations. + + The bundle containing the keys. + The key to be added to. + The key to be added. + The composed description. + + + + Composes a type description translation. + + The bundle containing the type key. + The key belonging to the type's translation. + + + + + Composes a diet description translation. + + The bundle containing the diet key. + The key belonging to the diet's translation. + + + + Create a new instance of an IdHandler + + + + + + + + Register an as a drone target. + + + + + + Registers a rancher. + + + + + + Registers a rancher's id + + + + + + Registers an offer id + + + + + + Registers a category for exchange requests/rewards + + The category to register + The ids in the category + + + + Registers an item to be unlocked in a category + + The to be unlocked. + The progress required to unlock it + The value used in the offer generator for count + + + + Registers an item that's automatically unlocked in a category + + The to be unlocked. + The value used in the offer generator for count + + + + Checks if a rancher or offer ID is modded. + + The ID to check. + True if the ID belongs to a mod, otherwise false. + + + + Checks if a rancher is modded. + + The rancher to check. + True if the rancher belongs to a mod, otherwise false. + + + + Checks if a category is modded. + + The category to check. + True if the category belongs to a mod, otherwise false. + + + + Creates a . + + What value is assigned to the . + The name of the . + The created . + Throws if ran outside of PreLoad + + + + Check if a belongs to a modded gadget. + + The to check. + True if belongs to a modded gadget, otherwise false. + + + + Associates an with a + + The to associate. + The to associate + + + + Registers a locker for a blueprint. + + The of the blueprint. + The locker for the blueprint. + + + + Register a blueprint. + + The of the blueprint. + + + + Register a blueprint that's automatically available. + + The of the blueprint. + + + + Manually set the of the + + + + + + + Remove all instances of an from every class in + + + + + + Puts a into one of the vanilla categories based on its name prefix (see )
+ WARNING: Will not categorize decorations properly! +
+ +
+ + + Put an into one of the vanilla categories + + + + + + + Creates an . + + What value is assigned to the . + The name of the . + The created . + Throws if ran outside of PreLoad + + + + Creates an . + + What value is assigned to the . + The name of the . + If the should automatically be categorized into 's classes. + The created . + Throws if ran outside of PreLoad + + + + Manually set the of the + + + + + + + Remove all instances of an from every class in + + + + + + + Check if an was registered by a mod + + + True if the was registered by a mod, otherwise false. + + + + Gets every registered by a mod. + + The ID of the mod to check. + All s reigstered by a mod. + + + + Registers a rule for an id prefix to link to + + The prefix for the id to check for. + The rule that the specified prefix links to. + + + + Registers a rule for an id suffix to link to + + The suffix for the id to check for. + The rule that the specified prefix links to. + + + + Puts an into one of the vanilla categories based on its name (see ) + + + + + + Put an into one of the vanilla categories + + + + + + + Register a keybind into the options UI. + + The action associated with the keybind. + + + + Creates and registers a . + + The name of the action. + The created action + + + + Creates and registers a , then registers it into the options UI. + + The name of the action. + The created action + + + + Creates and registers a , adds it into the options UI, and adds a translation. + + The name of the action. + The translated name of the action. + The created action + + + + Check if an action is modded. + + The action to check. + True if action belongs to a mod, otherwise false. + + + + Register all 's in a Type + + Type holding the 's + + + + Creates a . + + What value is assigned to the . + The name of the . + The created . + Throws if ran outside of PreLoad + + + + Check if an was registered by a mod + + + True if the was registered by a mod, otherwise false. + + + + Registers a land plot. + + The land plot to register. + + + + Creates a . + + What value is assigned to the . + The name of the . + The created . + Throws if ran outside of PreLoad + + + + Registers an land plot upgrade. + + The type of land plot to register it to. + The upgrade to register. + + + + Registers a to a land plot. + + The to register. + The to register the to + Throws if the is already registered. + + + + Sets the callback of the . + + The callback + + + + + Sets the from translation. + + The translated text. + + + + + Sets the body translation. + + The translated text. + + + + Sets the subject translation. + + The translated text. + + + + Registers a . + + The to register. + The registered + + + + Registers a . + + The key of the to register. + The registered + + + + Gets the default renderer for a Slimepedia entry. + + The setting to get the renderer from. + The default renderer for the specified setting. + + + + Creates a . + + What value is assigned to the . + The name of the . + The created . + Throws if ran outside of PreLoad + + + + Registers a tab for the Slimepedia. + + The tab to register + + + + Registers a into the Slimepedia. + + The to register. + + + + Creates and registers a . + + The belonging to the entry. + The icon belonging to the entry. + + + + Registers an entry renderer for the Slimepedia. + + The assigned to the entry. + The renderer the Slimepedia entry should use. + + + + Registers an entry to already be unlocked in a new game + + The that belongs to the entry. + + + + Creates a link between an and a . + + The entry mapping both values. + + + + Creates a link between an and a . + + The to link. + The to link. + + + + Sorts a Slimepedia category based on a rule. + + The Slimepedia category to sort. + The rules to sort it. + + + + Assigns a to a Slimepedia category. + + The to assign. + The Slimepedia category to assign the to. + + + + Registers an event to be run when a awakes. + + The event to be ran. + + + + Registers a link between a plant plot and an . + + The entry of the link. + + + + Registers a link between a plant plot and an , which only is used if a condition is met. + + The condition that the link is established. + The entry of the link. + + + + Predicate for choosing purchasable ui's + + The type of the Purchasable UI + The UI instance + + + + + Creates purchasables on demand + + The that the will be added to + + + + + Creates a purchasable on demand + + + The UI that the will be added to + + + + + Delegate for arbitarily manipulating a list of purchasables + + + + + + + + Delegate for arbitarily manipulating a list of purchasables + + + + + Register a to all UI's pointed to by the + + The prediate for filtering the Purchasable UI + The creator of the new purchasable + + + + Register a compararer to sort a list of purchasables + + Filter for PurchasableUI's + Comparer to use when sorting + + + + Register a compararer to sort a list of purchasables + + The type of the UI + Comparer used for sorting + + + + Registers a plort entry into the Plort Market. + + The plort's market entry. + + + + Creates and registers a plort entry into the Plort Market. + + The belonging to the plort. + The progress required to show the plort as unlocked. + + + + Creates and registers a plort entry into the Plort Market that is automatically unlocked. + + The belonging to the plort. + + + + Registers an economy entry into the Plort Market. + + The entry to register. + + + + Creates and registers an economy entry into the Plort Market. + + The belonging to the plort. + The base value of the plort. + How many plorts needed to saturate the market (cut the price in half). + + + + Creates and registers an economy entry into the Plort Market. + + The belonging to the plort. + The base value of the plort. + How many plorts needed to saturate the market (cut the price in half). + Throws if ran in PreLoad. + + + + Creates and registers a plort entry, as well as an economy entry into the Plort Market. + + The belonging to the plort. + The base value of the plort. + How many plorts needed to saturate the market (cut the price in half). + + + + Register an Identifiable Prefab into the + + The prefab to register. + + + + Register an Identifiable Prefab into the + + The belonging to the prefab to register. + + + + Register into the + + + + + + Register a landplot prefab into the + + The prefab to register + + + + Register a gadget entry to the + + + + + + Register a vacuumable item into the + + Id of the vacuumable item + Color of the background of the inventory slot + Icon that will be used for the item in inventory + + + + Register into the + + Upgrade Entry to register + + + + Create and register an upgrade entry + + Upgrade ID + Icon that will show up in the upgrade shop + The cost of the upgrade + + + + Register a into the + + + + + + Register a gordo prefab into the + + + + + + Register into the + + Liquid to register + + + + Register into the + + Entry to register + + + + Register a toy (note: does not register the identifiable itself, only the toy, do that separately) + + of the toy + Icon for the toy in the toy store + How much the toy costs in the toy store + + + + + Register a slime definition in the database + + Slime definition to register + + + + Register a slime definition in the database + + Slime definition to register + Whether or not to refresh the EatMaps of the slime and its bases. + + + + Registers a . + + The that the is assigned to. + The to be registered. + + + + Combines two s into a largo . + + The base . + The addon . + The to register the into. + The properties controlling the way the s are combined. + The stripe shader to be used, if any. + The created . + + + + Creates a largo from two base s. + + The belonging to the resulting largo. + The belonging to the base slime. + The belonging to the addon slime. + The properties controlling the way the s are combined. + The created . + + + + Combines the s of the bases of a into one . + + The largo's . + The created . + + + + Combines two slimes into a largo. + + The belonging to the resulting largo. + The belonging to the base slime. + The belonging to the addon slime. + The properties controlling the way the slimes are combined. + The properties controlling the base Secret Style and the addon normal s are combined. + The properties controlling the base normal and the addon Secret Style s are combined. + The properties controlling the base Secret Style and the addon Secret Style s are combined. + + + + Combines two slimes into a largo. + + The belonging to the resulting largo. + The belonging to the base slime. + The belonging to the addon slime. + The properties controlling the way the slimes are combined. + The properties controlling the base Secret Style and the addon normal s are combined. + The properties controlling the base normal and the addon Secret Style s are combined. + The properties controlling the base Secret Style and the addon Secret Style s are combined. + The of the created largo. + The of the created largo. + The of the created largo. + + + + Takes an and formats it into a largo name. + + The belonging to the largo. + The resulting name. + + + + Creates a . + + What value is assigned to the . + The name of the . + The created . + Throws if ran outside of PreLoad + + + + Represents a template game object, used to contain templates to turn into + Runtime Prefabs + + + + + A template to create new animals + + + + + Template to create new animals + + The name of the object (prefixes are recommended, but not needed) + The Identifiable ID for this animal + The model's mesh for this animal + The materials that compose this animal's model + The animator used by the animal + Is this animal a child? + + + + Sets the reproduction objects (not needed for childs or males) + + The male mate of this female + The resulting child + + + + Sets the elder version of this (not needed for childs) + + The elder version + + + + Sets the movement component to a new one (Default is the Chicken Movement) + + New component to use + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the reproduction infos (not needed for childs or males) + + Min. Reproduction hours + Max. Reproduction hours + + + + Sets the bones and skinned mesh of this animal (default are the ones from the Chicken/Hen) + The skinned mesh would be an object like mesh_body1 of the Hen's Prefab + The bones would be an object like root of the Hen's Prefab + + The new skinned mesh to use for the animal + The new bones to use for the animal + + + + Sets the child info (only needed for childs) + + The number of hours before becoming an adult + The number of hours before hatching the egg + The egg object + + + + Sets the translation for this animal's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new Craft Resources + + + + + Template to create new Craft Resources + + The name of the object (prefixes are recommend, but not needed) + The Identifiable ID for this resource + The pedia ID for this resource + The model's mesh for this resource + The materials that compose this resource's model + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the transform values for the model + + New values to set + + + + Sets the collider radius for this craft resource (Use this to ajust the collider to the model) + + The radius of the collider + + + + Sets the scale for the Delaunch Trigger (do not change if you don't know what you are doing) + + The new scale to set + + + + Sets the translation for this resource's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new crates + + + + + Template to create new crates + + The name of the object (prefixes are recommended, but not needed) + The Identifiable ID for this crate + The materials that compose this crate's model + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the spawn options for the crate + + List of options + + + + Sets the info for spawning items + + The min amount of things to spawn + The max amount of things to spawn + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new fashion attachments (the part that gets attached to the object) + + + + + Template to create new fashion attachments + + The name of the object (prefixes are recommend, but not needed) + The Identifiable ID for this fashion attachment + The model's mesh for this fashion attachment + The materials that compose this fashion attachment's model + + + + Sets the transform values for the model + + New values to set + + + + Adds a new layer + + The mesh to add to the layer + The materials to add to the layer + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new fashions (the actual fashion not the pod) + + + + + Template to create new fashions + + The name of the object (prefixes are recommended, but not needed) + The Identifiable ID for this fashion + The prefab to attach to the target + The icon for this fashion + The slot it occupied when attached + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the translation for this fashion's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create floating decorations like ornaments or echos + + + + + Template to create floating decorations + + The name of the object (prefixes are recommended, but not needed) + The Identifiable ID for this decoration + The type of decoration + The model's mesh for this decoration + The materials that compose this decoration's model + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the clip (For the type ECHO_NOTE) + + The number of clip to set + + + + Sets the transform values + + New values to set + + + + Sets the color for the material (For the type ECHO or ECHO_NOTE) (only if you want to use the default material for echos and change the color) + + New color to set + + + + Sets the translation for this deco's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new foods + + + + + Template to create new foods + + The name of the object (prefixes are recommended, but not needed) + The Identifiable ID for this food + The pedia ID for this resource + The type of food + The model's mesh for this food + The materials that compose this food's model + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the info of the resource cycle + + The number of game hours before the food is ready to collect + The number of game hours the food stays in place to be riped + The number of game hours the food can be eaten + The number of game hours the food takes to rot + + + + Sets the rotten material + + The rotten material + + + + Sets the Audio Cues for the food (Only needed for type CUSTOM) + + The cue triggered when the food is released from a farmable zone + The cue triggered when the food hits something + + + + Sets the scale for the Delaunch Trigger (do not change if you don't know what you are doing) + + The new scale to set + + + + Sets the scale for the model, only needed if the default doesn't work + + The new scale to set + + + + Sets the option to eject the food when mature (only needed if the food is farmable) + + The new state to set + + + + Sets the translation for this slime's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new gordos + + + + + Template to create new gordos + + The name of the object (prefixes are recommend, but not needed) + The identifiable ID for this gordo + The definition of the slime this gordo is based on + The materials to use on the model of this gordo + + + + Adds a new behaviour to the slime + + The component containing the new behaviour + + + + Adds a new behaviour to the slime + + The component containing the new behaviour + A list of components containing the new behaviour + + + + Sets a new bone structure for the slime (Starting at the Vibrating part) + + The new bone structure as a game object (to add to the prefab) + + + + Sets the translation for this gordo's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new liquids + + + + + Template to create new liquids + + The name of the object (prefixes are recommended, but not needed) + The Identifiable ID for this liquid + The materials that compose this liquid's model + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the color for the material (only if you want to use the default material for water and change the color) + DO NOT USE THIS IF YOU SET A CUSTOM MATERIAL, THIS WILL OVERRIDE THAT MATERIAL + + New color to set + + + + Sets the translation for this slime's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new plorts + + + + + Template to create new plorts + + The name of the object (prefixes are recommended, but not needed) + The Identifiable ID for this plort + The materials that compose this plort's model + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the translation for this plort's name + + The translated name + + + + Sets the scale for the plort + + The scale to set + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new slimes + + + + + Template to create new slimes + + The name of the object (prefixes are recommend, but not needed) + The definition for this slime + + + + Sets the vacuumable size + + The vac size to set + + + + Sets the eat info + + The min. drive required for the slime to eat + How much the drive is reduced once fed + How much the agitation is reduced once fed + How much the agitation is reduced once fed it's favorite + + + + Sets the max. health of this slime + + The max. health to set + + + + Sets the possibility of having a feral state + + Can the slime be afected by a feral state + + + + Sets the possibility of turning into a glitch if spawned in the Slimeulation + + Can the slime be turned into a glitch inside the Slimeulation + + + + Sets the fear profile + + The fear profile to set + + + + Sets the starting emotions of this slime + + The initial state for Hunger + The initial state for Agitation + The initial state for Fear + + + + Sets the scale for the Delaunch Trigger (do not change if you don't know what you are doing) + + The new scale to set + + + + Adds a new behaviour to the slime + + The component containing the new behaviour + + + + Adds a new behaviour to the slime + + The component containing the new behaviour + A list of components containing the new behaviour + + + + Sets a new bone structure for the slime (Starting at the Appearance part) + + The new bone structure as a game object (to add to the prefab) + + + + Sets the translation for this slime's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + Generates the largos for this slime (use this if you want the slime to be largoable) + + Can the largos from the slime become tarr? + Use this to add extra behaviours to the largos + A list of all IDs made for the largos created + + + + Generates a roaming Gordo Slime for this slime (use this if you want the slime to have a Gordo counter part) + Roaming gordos are normal slimes scaled as a gordo and contains almost no behaviours, also it doesnt eat. Use PrefabFunctions to give it + behaviours + + The ID for the gordo + The slime template for the Roaming Gordo (YOU NEED TO CLASS .Create TO FINISH THE PROCESS) + + + + Generates a Gordo Slime for this slime (use this if you want the slime to have a Gordo counter part) + + The ID for the gordo + The gordo template for the static gordo (YOU NEED TO CLASS .Create TO FINISH THE PROCESS) + + + + Builds the module for this slime + + + + + Builds the definition for this slime + + + + + A template to create new toys + + + + + Template to create new toys + + The name of the object (prefixes are recommended, but not needed) + The Identifiable ID for this toy + The model's mesh for this toy + The materials that compose this toy's model + The audio cue when this toy hits something + + + + Sets the vacuumable size + + The vac size to set + + + + Sets what fashion is required to react with this toy + + The ID of said fashion (NONE to remove the required fashion) + + + + Sets the translation for this toy's name + + The translated name + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template ti create new Tech Activators + + + + + Template to create new Tech Activators + + The name of the object (prefixes are recommended, but not needed) + The prefab UI to display + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + Interface used to make lists of Mod Prefabs (as lists can't have different generic constructs) + + + + + Simple prefab like class, used to make the structure for templates + + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + Adds a new start action to the pile + + ID of the action (as registered in TemplateActions) + + + + Adds a new awake action to the pile + + ID of the action (as registered in TemplateActions) + + + + Adds a prefab function (they are executed when ToPrefab is called) + + Action to add to the pile + + + + Adds a prefab function (they are executed when ToPrefab is called) + + Actions to add to the pile + + + + Sets the translation for the prefab, not all templates implement this, so it might do nothing. + + The translated name + + + + Turns this ModPrefab/Template into a runtime prefab + + + + + Returns this prefab as a template + + + + + Returns this prefab as a clone of the template + + + + + A template to create new bush plantables + + + + + Template to create new veggie plantables + + The name of the object (prefixes are recommended, but not needed) + Is this plantable for the deluxe version of the garden? + The ID of the identifiable spawned by this plantable + The spawn resource id for this plantable + The list of things to spawn (null to get it from the ID provided) + + + + Sets the bonus info + + The min. amount selected from the bonus list + The change to select extras + + + + Sets the list of bonus spawns + + The list to set + + + + Adds a new bonus spawn to the list + + The ID for the spawnable + + + + Adds a new bonus spawwn to the list + + The game object of the identifiable to spawn + + + + Sets the list of spawns + + The list to set + + + + Adds a spawn to the list + + The ID for the spawnable + + + + Adds a spawn to the list + + The game object of the identifiable to spawn + + + + Sets the tree to be used + + The tree's mesh + The materials for that tree + The tree's mesh for the collider + + + + Sets the tree to be used based on the SpawnResource ID (only works for those already in the game) + + The ID to get the tree from + + + + Sets the leaves to be used + + The leaves's mesh + The materials for that leaves + The leaves's mesh for the collider + + + + Sets the leaves to be used based on the SpawnResource ID (only works for those already in the game) + + The ID to get the leaves from + + + + Sets the position for the leaves (uses the same for normal and deluxe) + + The new position to set + + + + Sets the position for the leaves (uses different ones for normal and deluxe versions) + + The new position to set for normal + The new position to set for deluxe + + + + Sets the scale for the leaves (uses the same for normal and deluxe) + + The new scale to set + + + + Sets the scale for the leaves (uses different ones for normal and deluxe versions) + + The new scale to set for normal + The new scale to set for deluxe + + + + Sets the scale for the tree (uses the same for normal and deluxe) + + The new scale to set + + + + Sets the scale for the tree (uses different ones for normal and deluxe versions) + + The new scale to set for normal + The new scale to set for deluxe + + + + Sets the spawn info + + Min. number of items to spawn + Max. number of items to spawn + Min. hours to be ready to spawn + Max. hours to be ready to spawn + Min. value of nutrients, related to growth rate + The number of hours the water lasts in the soil + + + + Sets the model of the spawn points (used to display the growth of the items) + + The mesh for the model + The materials for the model + + + + Sets the spawn joints (the list needs to have 20 for non-deluxe and 34 for deluxe) + + New spawn joints to set + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new fruit plantables + + + + + Template to create new veggie plantables + + The name of the object (prefixes are recommended, but not needed) + Is this plantable for the deluxe version of the garden? + The ID of the identifiable spawned by this plantable + The spawn resource id for this plantable + The list of things to spawn (null to get it from the ID provided) + + + + Sets the bonus info + + The min. amount selected from the bonus list + The change to select extras + + + + Sets the list of bonus spawns + + The list to set + + + + Adds a new bonus spawn to the list + + The ID for the spawnable + + + + Adds a new bonus spawwn to the list + + The game object of the identifiable to spawn + + + + Sets the list of spawns + + The list to set + + + + Adds a spawn to the list + + The ID for the spawnable + + + + Adds a spawn to the list + + The game object of the identifiable to spawn + + + + Sets the tree to be used + + The tree's mesh + The materials for that tree + The tree's mesh for the collider + + + + Sets the tree to be used based on the SpawnResource ID (only works for those already in the game) + + The ID to get the tree from + + + + Sets the leaves to be used + + The leaves's mesh + The materials for that leaves + The leaves's mesh for the collider + + + + Sets the leaves to be used based on the SpawnResource ID (only works for those already in the game) + + The ID to get the leaves from + + + + Sets the position for the leaves (uses the same for normal and deluxe) + + The new position to set + + + + Sets the position for the leaves (uses different ones for normal and deluxe versions) + + The new position to set for normal + The new position to set for deluxe + + + + Sets the scale for the leaves (uses the same for normal and deluxe) + + The new scale to set + + + + Sets the scale for the leaves (uses different ones for normal and deluxe versions) + + The new scale to set for normal + The new scale to set for deluxe + + + + Sets the scale for the tree (uses the same for normal and deluxe) + + The new scale to set + + + + Sets the scale for the tree (uses different ones for normal and deluxe versions) + + The new scale to set for normal + The new scale to set for deluxe + + + + Sets the spawn info + + Min. number of items to spawn + Max. number of items to spawn + Min. hours to be ready to spawn + Max. hours to be ready to spawn + Min. value of nutrients, related to growth rate + The number of hours the water lasts in the soil + + + + Sets the model of the spawn points (used to display the growth of the items) + + The mesh for the model + The materials for the model + + + + Sets the spawn joints (the list needs to have 20 for non-deluxe and 34 for deluxe) + + New spawn joints to set + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new veggie plantables + + + + + Template to create new veggie plantables + + The name of the object (prefixes are recommended, but not needed) + Is this plantable for the deluxe version of the garden? + The ID of the identifiable spawned by this plantable + The spawn resource id for this plantable + The list of things to spawn (null to get it from the ID provided) + + + + Sets the bonus info + + The min. amount selected from the bonus list + The change to select extras + + + + Sets the list of bonus spawns + + The list to set + + + + Adds a new bonus spawn to the list + + The ID for the spawnable + + + + Adds a new bonus spawwn to the list + + The game object of the identifiable to spawn + + + + Sets the list of spawns + + The list to set + + + + Adds a spawn to the list + + The ID for the spawnable + + + + Adds a spawn to the list + + The game object of the identifiable to spawn + + + + Sets the sprout to be used (null can also be provided to use the default one) + + The sprout's mesh + The material for that sprout + + + + Sets the sprout to be used based on the SpawnResource ID (only works for those already in the game) + + The ID to get the sprout from + + + + Sets the spawn info + + Min. number of items to spawn + Max. number of items to spawn + Min. hours to be ready to spawn + Max. hours to be ready to spawn + Min. value of nutrients, related to growth rate + The number of hours the water lasts in the soil + + + + Sets the model of the spawn points (used to display the growth of the items) + + The mesh for the model + The materials for the model + + + + Sets the spawn joints (the list needs to have 20 for non-deluxe and 34 for deluxe) + + New spawn joints to set + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create new plots + + + + + Template to create new plots + + The name of the object (prefixes are recommended, but not needed) + The Plot ID for this plot + + + + Sets the Activator Transform values + + The position to set + The rotation to set + The scale to set + + + + Sets the Activator Transform values + + The values to set + + + + Sets the game object for the UI of this plot + + The game object to set + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + A template to create a plot frame (use this if you want to create a custom frame by adding prefab functions to it) + + + + + Template to create a plot frame + + The name of the object + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + Interface used to make lists of PlotUpgradeTemplate (as lists can't have different generic constructs) + + + + + A template to create a plot upgrade + This template is a bit more complex than the others, it's structure is entirely built by you. It only exists for covinience when adding to custom plots. + + + + + Template to create a plot upgrade + + The name of the object + The upgrade for this land plot + The upgrader component to add to the main object + The action to setup the component after creation + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + The action to construct the template + + + + A template to create new activator UIs + + + + + Template to create new activator UIs + + The name of the object (prefixes are recommended, but not needed) + The UI component to add + + + + Creates the object of the template (To get the prefab version use .ToPrefab() after calling this) + + + + + Registers a toy into the first group of toys. + + The belonging to the toy. + + + + Registers a toy into the second group of toys. + + The belonging to the toy. + + + + Localization + + + + + Add a plaintext translation for a localization key + + Key bundle the localization key is located in + The localization key + The plain text translation + + + + Add a plaintext translation for a localization key in the 'pedia' bundle + + The localization key + The plain text translation + + + + Add a plaintext translation for a localization key in the 'actor' bundle + + The localization key + The plain text translation + + + + Add a plaintext translation for a localization key in the 'ui' bundle + + The localization key + The plain text translation + + + + Add a plaintext translation for a localization key in the 'achieve' bundle + + The localization key + The plain text translation + + + + Add a plaintext translation for a localization key in the 'exchange' bundle + + The localization key + The plain text translation + + + + Add a plaintext translation for a localization key in the 'global' bundle + + The localization key + The plain text translation + + + + Add a plaintext translation for a localization key in the 'mail' bundle + + The localization key + The plain text translation + + + + Add a plaintext translation for a localization key in the 'tutorial' bundle + + The localization key + The plain text translation + + + + Add a plaintext translation for localization for SRML error messages + + The language to be translated to + The plain text translation for the text saying it's an error + The plain text translation for the text saying mod-loading is aborting + + + + Creates a . + + What value is assigned to the . + The name of the . + The created . + Throws if ran outside of PreLoad + + + + Check if a belongs to a modded upgrade. + + The to check. + True if belongs to a modded upgrade, otherwise false. + + + + Registers a callback to be called when an upgrade is bought. + + The that calls the callback. + The callback to be called. + + + + Registers an upgrade locker. + + The to be locked. + The locker locking the . + + + + Registers an upgrade that's automatically unlocked. + + The to be unlocked. + + + + An utility class to help with Enums + + + + + Parses an enum in a easier way + + Type of the enum + Value to parse + The parsed enum on success, null on failure. + + + + Parses an enum in a easier way + + Type of the enum + Value to parse + true to ignore case; false to regard case. + The parsed enum on success, null on failure. + + + + Converts int to enum + + Type of the enum + Int to convert to enum + The enum equal to the int + + + + Gets all names in an enum + + Type of the enum + The list of names in the enum + + + + Gets all enum values in an enum + + Type of the enum + The list of all values in the enum + + + + Checks if an enum is defined. + + Type of the enum + Value to check + true if defined, false if not. + + + + Checks all names in an enum to see if what you need exists. + + Type of the enum + Value to find + true if found, false if not. + + + + Parses an enum in a easier way + + Type of the enum + Value to parse + What to return if the parse fails. + The parsed enum on success, on failure. + + + + Parses an enum in a easier way + + Type of the enum + Value to parse + true to ignore case; false to regard case. + What to return if the parse fails. + The parsed enum on success, on failure. + + + + Converts int to enum + + Type of the enum + Int to convert to enum + The enum equal to the int + + + + Gets all names in an enum + + Type of the enum + The list of names in the enum + + + + Gets all enum values in an enum + + Type of the enum + What to return if the parse fails. + The list of all values in the enum + + + + Checks if an enum is defined. + + Type of the enum + Value to check + true if defined, false if not. + + + + Checks all names in an enum to see if what you need exists. + + Type of the enum + Value to find + true if found, false if not. + + + + A basic mod data class that is safe to share between mods (no logic in it) + + + + + Data structure to simplify versioning and the comparing of versions + + + + + Actual internal implementation of a mod + + + + + Mods associated SRModInfo object + + + + + Path of the mod (usually the directory where the core modinfo.json is located) + + + + + Gets the current executing mod as an SRMod instance + + The current executing mod + + + + Forces a certain mod to be returned from + + The mod to be forced + + + + Clears the current mod context + + + + + Searches for valid mods and their assemblies, and decides the load order based on their settings + + + + + Check if corresponds with a valid mod + + Mod ID to check + Whether or not the mod exists + + + + Gets the associated for the associated + + Relevant Mod ID + The associated ModInfo + + + + Get an instance from a Mod ID + + The ModID + The corresponding instance, or null + + + + Utility class to help with the discovery and loading of mod assemblies + + + + + Class that represents a mod before it has been loaded or fully processed + + + + + Create a protomod from json info + + Path of the json file + The parsed + + + + Try to create a protomod from an embedded modinfo json in a DLL + + Path to the DLL file to process + The parsed , or null + Whether the parsing was successful + + + + Make sure fields are in the correct form and not null + + + + + Turn the protomod into a proper instance + + Converted + + + + Reverses the order of the elements in the entire . + + + + + Reverses a array + + + + + Swap two elements in array + + + + + Creates a from a . + + A that contains elements from the input sequence except + + + + + Attempts to get a value from a collection. + + True if an element in the collection matches the specified condition, otherwise false. + + + + Returns new array without element at index + + + + + Returns new array with inserted empty element at index + + + + + Returns random element from collection + + + + + Returns random element from collection + + + + + Returns random element from collection + + + + + Is array null or empty + + + + + Is collection null or empty + + + + + Is enumerable null or empty. IEnumerable is relatively slow. Use Array or Collection implementation if possible + + + + + Get next index for circular array. i.e. -1 will result with last element index, Length + 1 is 0 + + Example (infinite loop first->last->first): + i = myArray.NextIndex(i++); + var nextItem = myArray[i]; + + + + + Returns -1 if none found + + + + + Is Elements in two collections are the same + + + + + Is Keys in MyDictionary is the same as some collection + + + + + Is Values in MyDictionary is the same as some collection + + + + + Gets the value associated with the specified key if it exists, or + return the default value for the value type if it doesn't. + + + + + Gets the value associated with the specified key if it exists, or + generate a value for the new key if it doesn't. + + + + + Performs an action on each element of a collection. + + + + + Performs a function on each element of a collection. + + + + + Find the element of a collection that has the highest selected value. + + + + + Find the element of a collection that has the lowest selected value. + + + + + Returns new Color with Alpha set to a + + + + + Set Alpha of Renderer.Color + + + + + To string of "#b5ff4f" format + + + + + Returns a color lighter than the given color. + + + + + + + Returns a color darker than the given color. + + + + + + + Brightness offset with 1 is brightest and -1 is darkest + + + + + Converts unix timestamp to with high precision. + + Unix timestamp. + DateTime object that represents the same moment in time as provided Unix time. + + + + Converts to unix timestamp with high precision + + DateTime date representation. + unix timestamp that represents the same moment in time as provided DateTime object. + + + + Stop value from going above max or below min values. + + + + + Stop value from going above max or below min values. + + + + + Stop value from going above max or below min values. + + + + + Swap two reference values + + + + + Snap to grid of "round" size + + + + + Snap to grid of "round" size + + + + + Returns the sign 1/-1 evaluated at the given value. + + + + + Value is in [0, 1) range. + + + + + Value is in [closedLeft, openRight) range. + + + + + Value is in [closedLeft, closedRight] range, max-inclusive. + + + + + Clamp value to less than min or more than max + + + + + Clamp value to less than min or more than max + + + + + Return point A or B, closest to num + + + + + Contains extension methods for + + + + + Performs a TRUE null-check. + + An object to check. + Returns if object is null, otherwise. + + + + Performs a TRUE not-null-check. + + An object to check. + Returns if object is null, otherwise. + + + + Invokes a method + + The object you are invoking the method in + The name of the method + parameters + + + + Invokes a method + + Type of return + The object you are invoking the method in + The name of the method + parameters + + + + Sets the value of a field + + The object to set the field value of + The name of the field + The value to set + + + + Sets the value of a field + + The object to set the field value of + The name of the field + The value to set + Type of value + + + + Gets the value of a field + + The object to get the value from + The name of the field + + + + Gets the value of a field + + The object to get the value from + The name of the field + Type of value + + + + Sets the value of a property + + The object to set the property value of + The name of the property + The value to set + Type of value + + + + Sets the value of a property + + The object to set the property value of + The name of the property + The value to set + Type of value + + + + Gets the value of a property + + The object to get the value from + The name of the property + + + + Gets the value of a property + + The object to get the value from + The name of the property + Type of value + + + + Contains extension methods for + + + + + Clones the Scriptable Object + + + + Indicates whether the specified string is or an empty string (""). + if the parameter is or an empty string (""); otherwise, . + + + Indicates whether a specified string is , empty, or consists only of white-space characters. + if the parameter is or , or if consists exclusively of white-space characters. + + + + Returns a String array containing the substrings in this string that are delimited by elements of a specified + String array. A parameter specifies whether to return empty array elements. + + The @this to act on. + A string that delimit the substrings in this string. + + (Optional) Specify RemoveEmptyEntries to omit empty array elements from the array returned, + or None to include empty array elements in the array returned. + + + An array whose elements contain the substrings in this string that are delimited by the separator. + + + + + Reverses the string + + + + + Convert a string value to an Enum value. + + + + + Number presented in Roman numerals + + + + + Get the "message" string with the "surround" string at the both sides + + + + + Get the "message" string with the "start" at the beginning and "end" at the end of the string + + + + + Surround string with "color" tag + + + + + Surround string with "color" tag + + + + + Surround string with "size" tag + + + + + Surround string with "u" tag + + + + + Surround string with "b" tag + + + + + Surround string with "i" tag + + + + + Removes anything after the parameter + + The string to seek + Whether to remove the + + + + Removes anything after the parameter + + The string to seek + Whether to remove the + + + + Retrieves specified symbols amount from the end of the string. + + Source string. + Amount of symbols + Specified symbols amount from the end of the string. + + + + Removes specified symbols amount from the end of the string. + + Source string. + Amount of symbols + Modified string. + + + + Retrieves specified symbols amount from the beginning of the string. + + Source string. + Amount of symbols + Specified symbols amount from the beginning of the string. + + + + Method will return all the indexes for a matched string. + + Source string. + String Value to look for. + Comparison Type. + Indexes for a matched string. + + + + + Removes all the leading occurrences of specified string from the current string. + + Current string. + A string to remove. + The string that remains after all occurrences of trimString parameter are removed from the start of the current string. + + + + Removes all the trailing occurrences of specified string from the current string. + + Current string + A string to remove. + The string that remains after all occurrences of trimString parameter are removed from the end of the current string. + + + + Represents list of supported by Unity Console color names + + + + + Create new sprite out of Texture + + A texture to created sprite from. + New sprite instance. + + + + Change texture size (and scale accordingly) + + + + + Crop texture to desired size. + Somehow cropped image seemed darker, brightness offset may fix this + + + + + Will texture with solid color + + + + + Convert png representation to base64 string. + + Texture to convert. + Converted texture as base64 string + + + + Loads texture content from base64 string. + + Texture to load image content into. + Base64 string image representation. + Updated texture. + + + + Resets `anchorMin`, `anchorMax`, `offsetMin`, `offsetMax` to `Vector2.zero`. + + RectTransform to operate with. + + + + Get's the screen rect of provided RectTransform. + + RectTransform to operate with. + Screen rect. + + + + Method to get Rect related to ScreenSpace, from given RectTransform. + This will give the real position of this Rect on screen. + + Original RectTransform of some object + New Rect instance. + + + + Sets value. + + Transform component. + New lossyScale value. + + + + Reset component position, scale and rotation. + + Transform component. + + + + Removes all transform children. + + Transform component. + Will ignore disabled game-objects when set to true. + + + + + Find or create child with name. + + Transform component. + Child name. + Child component instance. + + + + + + + + + + + + + + Set position to Vector3.zero. + + + + + Set sizeDelta to Vector2.Zero. + + + + + Snap to grid of snapValue + + + + + Snap to grid of snapValue + + + + + Snap to grid of snapValue + + + + + Snap position to grid of snapValue + + + + + Snap to one unit grid + + + + + Snap to one unit grid + + + + + Snap to one unit grid + + + + + Finds the position closest to the given one. + + World position. + Other world positions. + Closest position. + + + + Get vector between source and destination + + + + + Get vector between source and destination + + + + + Get vector between source and destination + + + + + Get vector between source and target + + + + + Get vector between source and target + + + + + Get vector between source and target + + + + + Get vector between source and target + + + + + Calculates a squared distance between current and given vectors. + + The current vector. + The given vector. + Returns squared distance between current and given vectors. + + + + Multiplies each element in Vector3 by the given scalar. + + The current vector. + The given scalar. + Returns new Vector3 containing the multiplied components. + + + + Multiplies each element in Vector3 a by the corresponding element of b. + + The current vector. + The given vector. + Returns new Vector3 containing the multiplied components of the given vectors. + + + + Smoothes a Vector3 that represents euler angles. + + The current Vector3 value. + The target Vector3 value. + A refernce Vector3 used internally. + The time to smooth, in seconds. + The smoothed Vector3 value. + + + + Calculates a squared distance between current and given vectors. + + The current vector. + The given vector. + Returns squared distance between current and given vectors. + + + + Multiplies each element in Vector2 by the given scalar. + + The current vector. + The given scalar. + Returns new Vector2 containing the multiplied components. + + + + Multiplies each element in Vector2 a by the corresponding element of b. + + The current vector. + The given vector. + Returns new Vector2 containing the multiplied components of the given vectors. + + + + Handles identification of Modded ID's + + + + + Adds more methods to to allow for more flexable addition + + +
+
diff --git a/SRMP/Console/Console Commands.txt b/SRMP/Console/Console Commands.txt new file mode 100644 index 0000000..2ea5f3e --- /dev/null +++ b/SRMP/Console/Console Commands.txt @@ -0,0 +1,20 @@ +The following console Commands work in the pop up console + +cheat money [amount] + Add or Remove the given amount from the curret money score + +cheat keys [amount] + Add or Remove the given amount of keys from the current amount + +cheat allgadgets + Unlocks all of the gagets in the game + +cheat spawn [id] ([amount]) + +tp [DestinationPlayer] + Teleports the player that entered in the commant to the player entered +listplayers + Prints the list of current players to the console + +sleep [Hours] + Sleep command followed by the time in in game hours to "sleep"". Fast forwards the game the alotted hours. \ No newline at end of file diff --git a/SRMP/Networking/NetworkGordo.cs b/SRMP/Networking/NetworkGordo.cs index 94685f0..9ddc3db 100644 --- a/SRMP/Networking/NetworkGordo.cs +++ b/SRMP/Networking/NetworkGordo.cs @@ -10,7 +10,7 @@ namespace SRMultiplayer.Networking { public class NetworkGordo : MonoBehaviour { - public string ID { get { return Gordo.id == null ? Gordo.GetComponentInParent(true).id : Gordo.id; } } + public string ID { get { return Gordo.id == null ? Gordo.GetComponentInParent(true).id : Gordo.id; } } public GordoEat Gordo; public NetworkRegion Region; @@ -33,36 +33,51 @@ namespace SRMultiplayer.Networking public void Burst() { + //if object is in active mark the reach target if (gameObject.activeInHierarchy) { StartCoroutine(ReachedTarget()); } else { + //if not just dismiss the gordo completely Gordo.gameObject.SetActive(false); Gordo.SetEatenCount(-1); } } + //process the gordo burst reaction private IEnumerator ReachedTarget() { + //start the burst and begin sounds and animations Gordo.WillStartBurst(); Gordo.GetComponent().SetTrigger("Strain"); SECTR_AudioSystem.Play(Gordo.strainCue, Gordo.transform.position, false); + //wait for amination/sounds to finish yield return new WaitForSeconds(2f); SECTR_AudioSystem.Play(Gordo.burstCue, Gordo.transform.position, false); + + //if the gordo has a destroy effect process it if (Gordo.destroyFX != null) { + //play the spawn behavior for destroy events for the gordo that is bursting GameObject gameObject = SRBehaviour.SpawnAndPlayFX(Gordo.destroyFX, Gordo.transform.position + Vector3.up * 2f, Gordo.transform.rotation); + //get the gordo slime type Identifiable component = Gordo.gameObject.GetComponent(); + //get the color of the current gordo Color[] colors = SlimeUtil.GetColors(Gordo.gameObject, (component != null) ? component.id : Identifiable.Id.NONE, true); + //get the slime children spawned by the gordo RecolorSlimeMaterial[] componentsInChildren = gameObject.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { + //foreach slime in the count spawned by the gordo, set their coloring componentsInChildren[i].SetColors(colors[0], colors[1], colors[2]); } } + //trigger the burst completed event Gordo.DidCompleteBurst(); + + //despawn the bursted gordo from game Gordo.gameObject.SetActive(false); Gordo.SetEatenCount(-1); yield break; diff --git a/SRMP/Networking/NetworkHandlerClient.cs b/SRMP/Networking/NetworkHandlerClient.cs index ae0119f..398c473 100644 --- a/SRMP/Networking/NetworkHandlerClient.cs +++ b/SRMP/Networking/NetworkHandlerClient.cs @@ -274,7 +274,7 @@ namespace SRMultiplayer.Networking private static void OnFireColumnActivate(PacketFireColumnActivate packet) { - if(Globals.FireColumns.TryGetValue(packet.ID, out NetworkFireColumn netColumn)) + if (Globals.FireColumns.TryGetValue(packet.ID, out NetworkFireColumn netColumn)) { netColumn.Column.ActivateFire(); } @@ -321,9 +321,9 @@ namespace SRMultiplayer.Networking private static void OnOasis(PacketOasis packet) { - foreach(var oasisData in packet.Oasis) + foreach (var oasisData in packet.Oasis) { - if(SRSingleton.Instance.GameModel.AllOases().TryGetValue(oasisData.ID, out OasisModel model)) + if (SRSingleton.Instance.GameModel.AllOases().TryGetValue(oasisData.ID, out OasisModel model)) { model.isLive = oasisData.Model.isLive; @@ -337,30 +337,44 @@ namespace SRMultiplayer.Networking #region Exchanges private static void OnExchangeTryAccept(PacketExchangeTryAccept packet) { + //get the exchange type var type = (ExchangeDirector.OfferType)packet.Type; + //check if current scene (view) contains the item in question if (SRSingleton.Instance.ExchangeDirector.worldModel.currOffers.ContainsKey(type)) { + //handle the scene changes for the given offer var offer = SRSingleton.Instance.ExchangeDirector.worldModel.currOffers[type]; + //cycle through requested items foreach (ExchangeDirector.RequestedItemEntry requestedItemEntry in offer.requests) { + //check if the item can be accespted + //is on the board and not already completed if (requestedItemEntry.id == (Identifiable.Id)packet.ID && !requestedItemEntry.IsComplete()) { + //mark submit to log SRMP.Log($"Exchange TryAccept for {(Identifiable.Id)packet.ID} ({(ExchangeDirector.OfferType)packet.Type}", "SERVER"); + //mark progress requestedItemEntry.progress++; + + //if the given item completes the necesary quantity if (offer.IsComplete()) { - foreach(var rewarder in Resources.FindObjectsOfTypeAll()) + foreach (var rewarder in Resources.FindObjectsOfTypeAll()) { rewarder.AwardIfType(type); } SRSingleton.Instance.ExchangeDirector.ClearOffer(type); } + + //trigger offer status changed SRSingleton.Instance.ExchangeDirector.OfferDidChange(); } } } } + + private static void OnExchangePrepareDaily(PacketExchangePrepareDaily packet) { SRSingleton.Instance.ExchangeDirector.worldModel.pendingOfferRancherIds = packet.pendingOfferRancherIds; @@ -414,7 +428,7 @@ namespace SRMultiplayer.Networking private static void OnTreasurePods(PacketTreasurePods packet) { - foreach(var pod in packet.TreasurePods) + foreach (var pod in packet.TreasurePods) { if (SRSingleton.Instance.GameModel.AllPods().TryGetValue(pod.ID, out TreasurePodModel model)) { @@ -446,7 +460,7 @@ namespace SRMultiplayer.Networking if (model.HasAttached()) { var netDrone = model.attached.transform.GetComponentInChildren(true); - if(netDrone != null) + if (netDrone != null) { netDrone.PositionRotationUpdate(packet.Position, packet.Rotation, false); } @@ -675,7 +689,7 @@ namespace SRMultiplayer.Networking extractor.nextProduceTime = packet.nextProduceTime; extractor.queuedToProduce = packet.queuedToProduce; - if(extractor.cyclesRemaining <= 0) + if (extractor.cyclesRemaining <= 0) { var extractorScript = extractor.transform.GetComponent(); if (extractorScript != null && extractorScript.gameObject.activeInHierarchy) @@ -770,7 +784,7 @@ namespace SRMultiplayer.Networking private static void OnGadgets(PacketGadgets packet) { List regions = new List(); - foreach(var gadgetData in packet.Gadgets) + foreach (var gadgetData in packet.Gadgets) { if (SRSingleton.Instance.GameModel.AllGadgetSites().TryGetValue(gadgetData.ID, out GadgetSiteModel model)) { @@ -823,7 +837,7 @@ namespace SRMultiplayer.Networking } } - foreach(var region in regions) + foreach (var region in regions) { if (Globals.Regions.TryGetValue(region, out NetworkRegion netRegion)) { @@ -881,7 +895,7 @@ namespace SRMultiplayer.Networking private static void OnPuzzleSlots(PacketPuzzleSlots packet) { - foreach(var puzzleSlotData in packet.PuzzleSlots) + foreach (var puzzleSlotData in packet.PuzzleSlots) { if (SRSingleton.Instance.GameModel.AllSlots().TryGetValue(puzzleSlotData.ID, out PuzzleSlotModel model)) { @@ -919,7 +933,7 @@ namespace SRMultiplayer.Networking private static void OnGordos(PacketGordos packet) { - foreach(var gordoData in packet.Gordos) + foreach (var gordoData in packet.Gordos) { if (SRSingleton.Instance.GameModel.AllGordos().TryGetValue(gordoData.ID, out GordoModel model)) { @@ -959,7 +973,7 @@ namespace SRMultiplayer.Networking private static void OnAccessDoors(PacketAccessDoors packet) { - foreach(var doorData in packet.Doors) + foreach (var doorData in packet.Doors) { if (SRSingleton.Instance.GameModel.AllDoors().TryGetValue(doorData.ID, out AccessDoorModel model)) { @@ -1216,7 +1230,7 @@ namespace SRMultiplayer.Networking } var phaseSiteDirector = GameObject.FindObjectOfType(); - if(phaseSiteDirector != null) + if (phaseSiteDirector != null) { phaseSiteDirector.ResetAllSites(); foreach (PhaseSite phaseSite in new List(phaseSiteDirector.availablePhaseSites)) @@ -1295,7 +1309,7 @@ namespace SRMultiplayer.Networking private static void OnLandPlotSiloAmmoAdd(PacketLandPlotSiloAmmoAdd packet) { - if(NetworkAmmo.All.TryGetValue(packet.ID, out NetworkAmmo ammo)) + if (NetworkAmmo.All.TryGetValue(packet.ID, out NetworkAmmo ammo)) { ammo.MaybeAddToSpecificSlot((Identifiable.Id)packet.Ident, null, packet.Slot, packet.Count, packet.Overflow); SRMP.Log($"NetworkAmmo add slot {packet.Slot} (Type: {(Identifiable.Id)packet.Ident} - Count: {packet.Count}) for {packet.ID}", "CLIENT"); @@ -1488,7 +1502,7 @@ namespace SRMultiplayer.Networking private static void OnLandPlots(PacketLandplots packet) { - foreach(var plotData in packet.LandPlots) + foreach (var plotData in packet.LandPlots) { if (SRSingleton.Instance.GameModel.AllLandPlots().TryGetValue(plotData.ID, out LandPlotModel model)) { @@ -1538,7 +1552,7 @@ namespace SRMultiplayer.Networking { var type = (PacketActorFX.FXType)packet.Type; var slimeEat = netActor.GetComponentInChildren(); - if(slimeEat != null) + if (slimeEat != null) { if (type == PacketActorFX.FXType.SlimeEatFavoriteFX) { @@ -1748,7 +1762,7 @@ namespace SRMultiplayer.Networking private static void OnActors(PacketActors packet) { - foreach(var actorData in packet.Actors) + foreach (var actorData in packet.Actors) { if (!Globals.Actors.ContainsKey(actorData.ID)) { @@ -1809,7 +1823,7 @@ namespace SRMultiplayer.Networking Globals.Actors.Add(netActor.ID, netActor); } - catch(Exception ex) + catch (Exception ex) { SRMP.Log($"Could not create actor {actorData.ID}: {ex}"); } @@ -1966,7 +1980,7 @@ namespace SRMultiplayer.Networking SRSingleton.Instance.PlayerState.model.ammoDict[state].slots = new Ammo.Slot[slotCount]; for (int j = 0; j < slotCount; j++) { - if(reader.ReadBoolean()) + if (reader.ReadBoolean()) { SRSingleton.Instance.PlayerState.model.ammoDict[state].slots[j] = new Ammo.Slot((Identifiable.Id)reader.ReadUInt16(), reader.ReadInt32()); if (reader.ReadBoolean()) diff --git a/SRMP/Networking/NetworkHandlerServer.cs b/SRMP/Networking/NetworkHandlerServer.cs index ee0c1d0..1b0f83e 100644 --- a/SRMP/Networking/NetworkHandlerServer.cs +++ b/SRMP/Networking/NetworkHandlerServer.cs @@ -19,7 +19,7 @@ namespace SRMultiplayer.Networking if (!Globals.PacketSize.ContainsKey(type)) Globals.PacketSize.Add(type, 0); Globals.PacketSize[type] += im.LengthBytes; - switch(type) + switch (type) { //Player case PacketType.PlayerLoaded: OnPlayerLoaded(new PacketPlayerLoaded(im), player); break; @@ -140,7 +140,7 @@ namespace SRMultiplayer.Networking #region Race private static void OnRaceTrigger(PacketRaceTrigger packet, NetworkPlayer player) { - if(Globals.RaceTriggers.TryGetValue(packet.ID, out NetworkRaceTrigger trigger)) + if (Globals.RaceTriggers.TryGetValue(packet.ID, out NetworkRaceTrigger trigger)) { trigger.Activate(); } @@ -172,7 +172,7 @@ namespace SRMultiplayer.Networking var generator = QuicksilverEnergyGenerator.allGenerators.FirstOrDefault(g => g.id == packet.ID); if (generator) { - if(Globals.LocalPlayer.CurrentGenerator.id == generator.id) + if (Globals.LocalPlayer.CurrentGenerator.id == generator.id) { generator.Activate(); } @@ -242,9 +242,9 @@ namespace SRMultiplayer.Networking oasis.SetLive(!model.gameObj.activeInHierarchy); var oasisTriggers = GameObject.FindObjectsOfType(); - foreach(var trigger in oasisTriggers) + foreach (var trigger in oasisTriggers) { - if(trigger.oasisToScale == oasis && !trigger.hasAlreadyActivated) + if (trigger.oasisToScale == oasis && !trigger.hasAlreadyActivated) { if (trigger.scaleCue != null) { @@ -312,7 +312,7 @@ namespace SRMultiplayer.Networking { SRMP.Log($"Exchange TryAccept for {(Identifiable.Id)packet.ID} ({(ExchangeDirector.OfferType)packet.Type}", "SERVER"); requestedItemEntry.progress++; - if(offer.IsComplete()) + if (offer.IsComplete()) { foreach (var rewarder in Resources.FindObjectsOfTypeAll()) { @@ -482,7 +482,7 @@ namespace SRMultiplayer.Networking { if (SRSingleton.Instance.GameModel.AllGadgetSites().TryGetValue(packet.ID, out GadgetSiteModel model)) { - if(model.HasAttached()) + if (model.HasAttached()) { model.attached.transform.GetComponent().drone.ammo.MaybeAddToSpecificSlot((Identifiable.Id)packet.Ident, null, 0, 1); } @@ -497,7 +497,7 @@ namespace SRMultiplayer.Networking if (Globals.GadgetSites.TryGetValue(packet.ID, out NetworkGadgetSite netSite)) { var echoNet = netSite.Site.GetComponentInChildren(true); - if(echoNet != null) + if (echoNet != null) { echoNet.ResetSpawnTime(echoNet.model); } @@ -510,7 +510,7 @@ namespace SRMultiplayer.Networking if (Globals.GadgetSites.TryGetValue(packet.ID, out NetworkGadgetSite netSite)) { var snare = netSite.Site.GetComponentInChildren(true); - if(snare != null) + if (snare != null) { if (!snare.IsBaited() || snare.HasSnaredGordo()) { @@ -579,7 +579,7 @@ namespace SRMultiplayer.Networking { Globals.GadgetSites.TryGetValue(packet.ID, out NetworkGadgetSite netSite); bool didUnproxy = false; - if(netSite != null) + if (netSite != null) { if (!netSite.Region.Region.root.activeSelf) { @@ -622,7 +622,7 @@ namespace SRMultiplayer.Networking foreach (var data in packet.Amounts) { SRSingleton.Instance.GameModel.GetGadgetsModel().craftMatCounts[(Identifiable.Id)data.Key] -= data.Value; - if(SRSingleton.Instance.GameModel.GetGadgetsModel().craftMatCounts[(Identifiable.Id)data.Key] < 0) + if (SRSingleton.Instance.GameModel.GetGadgetsModel().craftMatCounts[(Identifiable.Id)data.Key] < 0) { SRSingleton.Instance.GameModel.GetGadgetsModel().craftMatCounts[(Identifiable.Id)data.Key] = 0; } @@ -720,7 +720,7 @@ namespace SRMultiplayer.Networking if (attachFashions != null) { var component = SRSingleton.Instance.LookupDirector.GetPrefab((Identifiable.Id)packet.Fashion)?.GetComponent(); - if(component != null) + if (component != null) { attachFashions.Attach(component, !attachFashions.gameObject.activeInHierarchy); } @@ -821,17 +821,17 @@ namespace SRMultiplayer.Networking private static void OnWorldDecorizer(PacketWorldDecorizer packet, NetworkPlayer player) { - foreach(var c in packet.Contents) + foreach (var c in packet.Contents) { - for(int i = 0; i < c.Value; i++) + for (int i = 0; i < c.Value; i++) { SRSingleton.Instance.GameModel.decorizer.contents.Increment(c.Key); } } - foreach(var setting in packet.Settings) + foreach (var setting in packet.Settings) { var storage = SRSingleton.Instance.GameModel.decorizer.participants.FirstOrDefault(c => ((DecorizerStorage)c).id == setting.Key); - if(storage != null) + if (storage != null) { ((DecorizerStorage)storage).selected = (Identifiable.Id)setting.Value; } @@ -952,7 +952,7 @@ namespace SRMultiplayer.Networking if (SRSingleton.Instance.GameModel.AllLandPlots().TryGetValue(packet.ID, out LandPlotModel model)) { var incinerate = model.gameObj.GetComponentInChildren(); - if(incinerate != null) + if (incinerate != null) { SRBehaviour.SpawnAndPlayFX(incinerate.ExplosionFX, packet.Position, packet.Rotation); if (packet.Small) @@ -976,7 +976,7 @@ namespace SRMultiplayer.Networking private static void OnGlobalFX(PacketGlobalFX packet, NetworkPlayer player) { - if(Globals.FXPrefabs.TryGetValue(packet.Name, out GameObject prefabFX)) + if (Globals.FXPrefabs.TryGetValue(packet.Name, out GameObject prefabFX)) { SRBehaviour.SpawnAndPlayFX(prefabFX, packet.Position, Quaternion.identity); } @@ -1080,7 +1080,7 @@ namespace SRMultiplayer.Networking if (SRSingleton.Instance.GameModel.AllLandPlots().TryGetValue(packet.ID, out LandPlotModel model)) { var collector = model.gameObj.GetComponentInChildren(); - if(collector != null) + if (collector != null) { collector.StartCollection(); } @@ -1268,14 +1268,14 @@ namespace SRMultiplayer.Networking private static void OnRegionOwner(PacketRegionOwner packet, NetworkPlayer player) { - if(Globals.Regions.TryGetValue(packet.ID, out NetworkRegion netRegion)) + if (Globals.Regions.TryGetValue(packet.ID, out NetworkRegion netRegion)) { - if(packet.Owner == 0 && netRegion.Owner == player.ID) + if (packet.Owner == 0 && netRegion.Owner == player.ID) { netRegion.SetOwnership(0); packet.SendToAll(); } - else if(packet.Owner != 0 && netRegion.Owner == 0) + else if (packet.Owner != 0 && netRegion.Owner == 0) { netRegion.SetOwnership(packet.Owner); packet.SendToAll(); @@ -1338,7 +1338,7 @@ namespace SRMultiplayer.Networking var slimeFeral = netActor.GetComponentInChildren(true); if (slimeFeral != null) { - if(packet.Feral) + if (packet.Feral) { slimeFeral.MakeFeral(); } @@ -1384,7 +1384,7 @@ namespace SRMultiplayer.Networking if (Globals.Actors.TryGetValue(packet.ID, out NetworkActor netActor)) { var cycle = netActor.GetComponentInChildren(true); - if(cycle != null) + if (cycle != null) { var state = (ResourceCycle.State)packet.State; //SRMP.Log($"Resource state for {netActor.name} ({netActor.ID}): {state}", "SERVER"); @@ -1401,7 +1401,7 @@ namespace SRMultiplayer.Networking } TweenUtil.ScaleTo(cycle.gameObject, cycle.defaultScale, 4f, Ease.InOutQuad); } - else if(state == ResourceCycle.State.EDIBLE) + else if (state == ResourceCycle.State.EDIBLE) { cycle.MakeEdible(); cycle.additionalRipenessDelegate = null; @@ -1427,7 +1427,7 @@ namespace SRMultiplayer.Networking cycle.vacuumable.Pending = false; } } - else if(state == ResourceCycle.State.ROTTEN) + else if (state == ResourceCycle.State.ROTTEN) { cycle.Rot(); cycle.SetRotten(!cycle.gameObject.activeInHierarchy); @@ -1525,7 +1525,7 @@ namespace SRMultiplayer.Networking netActor.KnownPlayers.AddRange(Globals.Players.Values.Where(p => p.HasLoaded)); var resourceCycle = actorObj.GetComponentInChildren(true); - if(resourceCycle != null) + if (resourceCycle != null) { resourceCycle.SetInitState(ResourceCycle.State.UNRIPE, double.MaxValue); } @@ -1574,7 +1574,7 @@ namespace SRMultiplayer.Networking private static void OnPlayerCurrencyDisplay(PacketPlayerCurrencyDisplay packet, NetworkPlayer player) { SRSingleton.Instance.PlayerState.SetCurrencyDisplay(packet.IsNull ? null : new int?(packet.Currency)); - if(packet.IsNull) + if (packet.IsNull) { SRSingleton.Instance.CreateCoinsPopup(packet.Currency, PlayerState.CoinsType.DRONE); } @@ -1657,7 +1657,7 @@ namespace SRMultiplayer.Networking private static void OnPlayerAnimationLayer(NetIncomingMessage im, NetworkPlayer player) { - if(player.HasLoaded) + if (player.HasLoaded) { byte id = im.ReadByte(); player.ReadAnimatorLayer(im); @@ -1707,7 +1707,7 @@ namespace SRMultiplayer.Networking Contents = SRSingleton.Instance.GameModel.decorizer.contents.ToDictionary(c => c.Key, v => v.Value), Settings = SRSingleton.Instance.GameModel.decorizer.settings.ToDictionary(s => s.Key, v => (ushort)v.Value.selected) }.Send(player, NetDeliveryMethod.ReliableOrdered); - + new PacketLandplots() { LandPlots = Globals.LandPlots.Values.Where(l => l.Plot.model != null).Select(l => new PacketLandplots.LandPlotData() { ID = l.Location.id, Model = l.Plot.model }).ToList() diff --git a/SRMP/SRMP.csproj b/SRMP/SRMP.csproj index 1a8dde0..61d62e3 100644 --- a/SRMP/SRMP.csproj +++ b/SRMP/SRMP.csproj @@ -74,20 +74,20 @@ - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\0Harmony.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\0Harmony.dll ..\Libs\Assembly-CSharp_publicized.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\DOTween.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\DOTween.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\InControl.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\InControl.dll False - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\Newtonsoft.Json.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\Newtonsoft.Json.dll False @@ -103,46 +103,46 @@ - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\Unity.TextMeshPro.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\Unity.TextMeshPro.dll False - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityCoreMod.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityCoreMod.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.AnimationModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.AnimationModule.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.AssetBundleModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.AssetBundleModule.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.CoreModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.CoreModule.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.IMGUIModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.IMGUIModule.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.InputLegacyModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.InputLegacyModule.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.PhysicsModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.PhysicsModule.dll False - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.TextCoreModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.TextCoreModule.dll False - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.TextRenderingModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.TextRenderingModule.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.UI.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.UI.dll - C:\Program Files (x86)\Steam\steamapps\common\Slime Rancher\SlimeRancher_Data\Managed\UnityEngine.UIModule.dll + C:\Program Files\Epic Games\SlimeRancher\SlimeRancher_Data\Managed\UnityEngine.UIModule.dll