Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using ICities;
- using UnityEngine;
- using ColossalFramework;
- using ColossalFramework.IO;
- using ColossalFramework.Steamworks;
- //using System.Xml.Serialization;
- using System;
- using System.IO;
- using System.Reflection;
- namespace DarkerRoads4
- {
- public class DarkerRoadsMod4 : IUserMod {
- //public const UInt64 workshop_id = 1;
- public string Name {
- get { return "Darker Roads"; }
- }
- public string Description {
- get { return "Replaces default road textures with a darker version."; }
- }
- }
- public class DarkerRoadsLoader4 : LoadingExtensionBase {
- public static string getModPath() {
- /*string workshopPath = ".";
- foreach(PublishedFileId mod in Steam.workshop.GetSubscribedItems()) {
- if(mod.AsUInt64 == TerrainTextureReplacerMod2.workshop_id) {
- workshopPath = Steam.workshop.GetSubscribedItemPath(mod);
- Debug.Log("TerrainTextureReplacer: Workshop path: " + workshopPath);
- break;
- }
- }*/
- string localPath = DataLocation.modsPath + "/DarkerRoads";
- Debug.Log("DarkerRoads: " + localPath);
- if(System.IO.Directory.Exists(localPath)) {
- Debug.Log("DarkerRoads: Local path exists, looking for assets here: " + localPath);
- return localPath;
- }
- //return workshopPath;
- return "error";
- }
- public override void OnLevelLoaded (LoadMode mode){
- string path = getModPath ();
- Debug.Log("path: " + path);
- DarkerRoads4.ReplaceNetTextures (path);
- }
- }
- public class DarkerRoads4 : MonoBehaviour{
- public static Texture2D LoadTexture(string texturePath)
- {
- var tex = new Texture2D(1, 1);
- tex.LoadImage(System.IO.File.ReadAllBytes(texturePath));
- return tex;
- }
- public static void ReplaceNetTextures(string textureDir)
- {
- var collections = UnityEngine.Object.FindObjectsOfType<NetCollection>();
- foreach (var nc in collections)
- {
- foreach (var prefab in nc.m_prefabs)
- {
- foreach (var node in prefab.m_nodes)
- {
- if (System.IO.File.Exists(Path.Combine(textureDir, prefab.name.Replace(" ", "_").ToLowerInvariant().Trim() + "_node.png"))){
- //node.m_material.mainTexture = LoadTexture(Path.Combine(textureDir, prefab.name.Replace(" ", "_").ToLowerInvariant().Trim() + "_node.png"));
- node.m_material.SetTexture("_MainTex", LoadTexture(Path.Combine(textureDir, prefab.name.Replace(" ", "_").ToLowerInvariant().Trim() + "_node.png")));
- node.m_nodeMaterial.SetTexture("_MainTex", LoadTexture(Path.Combine(textureDir, prefab.name.Replace(" ", "_").ToLowerInvariant().Trim() + "_node.png")));
- Debug.Log("Replaced " + prefab.name + " node");
- }
- }
- foreach (var segment in prefab.m_segments)
- {
- if (System.IO.File.Exists(Path.Combine(textureDir, prefab.name.Replace(" ", "_").ToLowerInvariant().Trim() + "_segment.png"))){
- //segment.m_material.mainTexture = LoadTexture(Path.Combine(textureDir, prefab.name.Replace(" ", "_").ToLowerInvariant().Trim() + "_segment.png"));
- segment.m_material.SetTexture("_MainTex", LoadTexture(Path.Combine(textureDir, prefab.name.Replace(" ", "_").ToLowerInvariant().Trim() + "_segment.png")));
- segment.m_segmentMaterial.SetTexture("_MainTex",LoadTexture(Path.Combine(textureDir, prefab.name.Replace(" ", "_").ToLowerInvariant().Trim() + "_segment.png")));
- Debug.Log("Replaced " + prefab.name + " segment");
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement