Instantly share code, notes, and snippets.

Embed
What would you like to do?
For decal compatible ploppable asphalt + props. Tags props, disables ruining and automatically edits normals, scales mesh and paints vertices for main and LOD meshes.
// Ploppable Apshalt + (RoadBridge) used for asphalt and pavement.
// Automatic normal editing, mesh scaling and vertex painting for main and LOD meshes.
// Also removes ruining, and tags as ploppable asphalt prop.
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as PropInfo;
asset.m_UIPriority = 0; // Set your UI priority!
var triangles = asset.m_mesh.triangles;
int[] triangleArray = new int[triangles.Length];
triangles.CopyTo(triangleArray, 0); var temp = 0;
for (int i = 0; i < triangles.Length; i += 3) {
temp = triangleArray[i+1];
triangleArray[i+1]=triangleArray[i+2];
triangleArray[i+2]=temp; }
asset.m_mesh.triangles = triangleArray;
Vector3[] vertices = asset.m_mesh.vertices;
Vector3[] vertexArray = new Vector3[vertices.Length];
vertices.CopyTo(vertexArray, 0);
for (int i = 0; i < vertices.Length; i++) vertexArray[i].z=vertexArray[i].z*0.451f;
asset.m_mesh.vertices = vertexArray;
Color nc = new Color(1,0,1);
Color[] colors = new Color[vertices.Length];
for (int i = 0; i < vertices.Length; i++) colors[i] = nc;
asset.m_mesh.colors = colors;
triangles = asset.m_lodMesh.triangles;
triangleArray = new int[triangles.Length];
triangles.CopyTo(triangleArray, 0);
for (int i = 0; i < triangles.Length; i += 3) {
temp = triangleArray[i+1];
triangleArray[i+1]=triangleArray[i+2];
triangleArray[i+2]=temp; }
asset.m_lodMesh.triangles = triangleArray;
vertices = asset.m_lodMesh.vertices;
vertexArray = new Vector3[vertices.Length];
vertices.CopyTo(vertexArray, 0);
for (int i = 0; i < vertices.Length; i++) vertexArray[i].z=vertexArray[i].z*0.451f;
asset.m_lodMesh.vertices = vertexArray;
colors = new Color[vertices.Length];
for (int i = 0; i < vertices.Length; i++) colors[i] = nc;
asset.m_lodMesh.colors = colors;
asset.m_createRuining = false;
asset.m_mesh.name="ploppableasphalt-prop";
// Ploppable Apshalt + (TrainBridge) used for gravel.
// Automatic normal editing, mesh scaling and vertex painting for main and LOD meshes.
// Also removes ruining, and tags as ploppable asphalt prop.
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as PropInfo;
asset.m_UIPriority = 0; // Set your UI priority!
var triangles = asset.m_mesh.triangles;
int[] triangleArray = new int[triangles.Length];
triangles.CopyTo(triangleArray, 0); var temp = 0;
for (int i = 0; i < triangles.Length; i += 3) {
temp = triangleArray[i+1];
triangleArray[i+1]=triangleArray[i+2];
triangleArray[i+2]=temp; }
asset.m_mesh.triangles = triangleArray;
Vector3[] vertices = asset.m_mesh.vertices;
Vector3[] vertexArray = new Vector3[vertices.Length];
vertices.CopyTo(vertexArray, 0);
for (int i = 0; i < vertices.Length; i++) vertexArray[i].z=vertexArray[i].z*0.451f;
asset.m_mesh.vertices = vertexArray;
Color nc = new Color(1,0,1);
Color[] colors = new Color[vertices.Length];
for (int i = 0; i < vertices.Length; i++) colors[i] = nc;
asset.m_mesh.colors = colors;
triangles = asset.m_lodMesh.triangles;
triangleArray = new int[triangles.Length];
triangles.CopyTo(triangleArray, 0);
for (int i = 0; i < triangles.Length; i += 3) {
temp = triangleArray[i+1];
triangleArray[i+1]=triangleArray[i+2];
triangleArray[i+2]=temp; }
asset.m_lodMesh.triangles = triangleArray;
vertices = asset.m_lodMesh.vertices;
vertexArray = new Vector3[vertices.Length];
vertices.CopyTo(vertexArray, 0);
for (int i = 0; i < vertices.Length; i++) vertexArray[i].z=vertexArray[i].z*0.451f;
asset.m_lodMesh.vertices = vertexArray;
colors = new Color[vertices.Length];
for (int i = 0; i < vertices.Length; i++) colors[i] = nc;
asset.m_lodMesh.colors = colors;
asset.m_createRuining = false;
asset.m_mesh.name = "ploppablegravel";
// Ploppable Apshalt + (Road) used for grass and cliff.
// Automatic normal editing, mesh scaling and vertex painting for main and LOD meshes.
// Also removes ruining, and tags as ploppable asphalt prop.
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as PropInfo;
asset.m_UIPriority = 0; // Set your UI priority!
var triangles = asset.m_mesh.triangles;
int[] triangleArray = new int[triangles.Length];
triangles.CopyTo(triangleArray, 0); var temp = 0;
for (int i = 0; i < triangles.Length; i += 3) {
temp = triangleArray[i+1];
triangleArray[i+1]=triangleArray[i+2];
triangleArray[i+2]=temp; }
asset.m_mesh.triangles = triangleArray;
asset.m_mesh.RecalculateNormals();
Vector3[] vertices = asset.m_mesh.vertices;
Vector3[] vertexArray = new Vector3[vertices.Length];
vertices.CopyTo(vertexArray, 0);
for (int i = 0; i < vertices.Length; i++) vertexArray[i].z=vertexArray[i].z*0.451f;
asset.m_mesh.vertices = vertexArray;
Color nc = new Color(1,0,1);
Color[] colors = new Color[vertices.Length];
for (int i = 0; i < vertices.Length; i++) colors[i] = nc;
asset.m_mesh.colors = colors;
triangles = asset.m_lodMesh.triangles;
triangleArray = new int[triangles.Length];
triangles.CopyTo(triangleArray, 0);
for (int i = 0; i < triangles.Length; i += 3) {
temp = triangleArray[i+1];
triangleArray[i+1]=triangleArray[i+2];
triangleArray[i+2]=temp; }
asset.m_lodMesh.triangles = triangleArray;
asset.m_lodMesh.RecalculateNormals();
vertices = asset.m_lodMesh.vertices;
vertexArray = new Vector3[vertices.Length];
vertices.CopyTo(vertexArray, 0);
for (int i = 0; i < vertices.Length; i++) vertexArray[i].z=vertexArray[i].z*0.451f;
asset.m_lodMesh.vertices = vertexArray;
colors = new Color[vertices.Length];
for (int i = 0; i < vertices.Length; i++) colors[i] = nc;
asset.m_lodMesh.colors = colors;
asset.m_createRuining = false;
asset.m_mesh.name = "ploppablecliffgrass";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment