This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The script will not work properly if you have no texture imported. | |
// | |
// The vertex paint of the mesh controls the amount of movement: | |
// white means no movement and black means maximum movement. | |
// | |
// If you're using multiple "flag" textures in one prop, (like vanilla flags) | |
// the flag must be entirely black and everything else should be white, | |
// and you can't use the strength variable, otherwise the UV mapping will break. | |
// The flag should be UV mapped onto the flag on the bottom right of the texture. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Rotors Shader | |
// Also deletes LOD. | |
// Prop | |
var shader = Shader.Find("Custom/Vehicles/Vehicle/Rotors"); | |
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as PropInfo; | |
if(asset.m_material != null) asset.m_material.shader = shader; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Renames elevations, to fix the game adding 0 or 1 to the elevation names, so that they can be kept consistent when updating a network multiple times. | |
// Do not run on a newly created network, it must be saved with the final name it should have, loaded again, and only then run this script. | |
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as NetInfo; | |
var ai = (asset.m_netAI as TrainTrackAI); // change this to RoadAI or something else if necessary. | |
if(ai.m_elevatedInfo != null) ai.m_elevatedInfo.name = ai.m_info.name.Substring(0, ai.m_info.name.Length-6) + " E"; | |
if(ai.m_bridgeInfo != null) ai.m_bridgeInfo.name = ai.m_info.name.Substring(0, ai.m_info.name.Length-6) + " B"; | |
if(ai.m_slopeInfo != null) ai.m_slopeInfo.name = ai.m_info.name.Substring(0, ai.m_info.name.Length-6) + " S"; | |
if(ai.m_tunnelInfo != null) ai.m_tunnelInfo.name = ai.m_info.name.Substring(0, ai.m_info.name.Length-6) + " T"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var networks = Resources.FindObjectsOfTypeAll<NetInfo>(); | |
for(uint i = 0; i < networks.Length; i++) | |
{ | |
var network = networks[i]; | |
if(network == null) continue; | |
if(network.m_netAI == null) continue; | |
if(network.m_netAI.GetType().Name != "RoadAI" && | |
network.m_netAI.GetType().Name != "RoadBridgeAI" && | |
network.m_netAI.GetType().Name != "RoadTunnelAI") continue; | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Prop Rotating Script for multiple rotating parts. | |
// Control rotation axis, pivot and speed. | |
// Run in asset editor and see effects in real time. | |
// Prop Rotating Params Mod is not required for using the scripts and saving the asset. | |
// It's only needed to load the data in-game. | |
// The LODs are not rotating, they are like regular props. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Deletes automatically generated base mesh based on vertex colors. | |
// Changes shader to NoBase, enables noBase boolean, raises or lowers vertices too close to 0. | |
var subMesh = -1; // sub mesh id, order as in ui, starting from 0 (-1 means main building mesh) | |
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as BuildingInfo; | |
var m = asset.m_mesh; var shader = Shader.Find("Custom/Buildings/Building/NoBase"); var newVertCount = 0; | |
if(subMesh >= 0) { m = asset.m_subMeshes[subMesh].m_subInfo.m_mesh; | |
if(asset.m_subMeshes[subMesh].m_subInfo.m_material != null) asset.m_subMeshes[subMesh].m_subInfo.m_material.shader = shader; | |
if(asset.m_subMeshes[subMesh].m_subInfo.m_lodMaterial != null) asset.m_subMeshes[subMesh].m_subInfo.m_lodMaterial.shader = shader; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// for vehicles, vertex colors get generated and overwritten on import | |
// therefore you need to import the rotors sub mesh as a prop, save, reload | |
// and then import the vehicle sub mesh, | |
// and copy the vertex paint from the prop to the vehicle sub mesh using this script: | |
var subMesh = 1; // vehicle sub mesh id, starting from 1 | |
var asset2 = PrefabCollection<PropInfo>.FindLoaded("filename.Asset Name_Data"); // CHANGE TO PROP NAME |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Decal Script (based on original script by boformer) | |
// (added modless shader parameter saving method by boformer) | |
// | |
// Removes the need for making a mesh, just import the provided decal mesh | |
// and this script will automatically change the size you set. | |
// | |
// Warning: Do not save vehicles after running this script without a game restart! | |
var size = new Vector2(8.0f, 8.0f); // Size of decal in meters - width and length |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copies mesh from a prop to a vehicle, don't use for vehicles with tyres. | |
var propname = "filename.Asset Name"; // filename.Asset Name | |
var prop = PrefabCollection<PropInfo>.FindLoaded(propname + "_Data"); | |
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as VehicleInfo; | |
asset.m_mesh.vertices = prop.m_mesh.vertices; asset.m_mesh.triangles = prop.m_mesh.triangles; | |
asset.m_mesh.tangents = prop.m_mesh.tangents; asset.m_mesh.normals = prop.m_mesh.normals; | |
asset.m_mesh.uv = prop.m_mesh.uv; asset.m_mesh.bounds = prop.m_mesh.bounds; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var subMesh = 0; | |
var vec = new Vector4(0.0f, 3.1f, 3.0f, 900.1f); | |
var asset = (ToolsModifierControl.toolController.m_editPrefabInfo as BuildingInfo).m_subMeshes[subMesh].m_subInfo; | |
asset.m_material.SetVector("_FloorParams", vec); |