Skip to content

Instantly share code, notes, and snippets.

@ronyx69
ronyx69 / Relight.cs
Last active July 28, 2023 01:56
Source code for Relight mod. Rebalanced and customizable lighting and tonemapping. UI / saving and preset system by Simon Royer. Shadow bias change by saki7. Shadow smoothing change by TPB.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ICities;
using UnityEngine;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
using System.Xml.Serialization;
@ronyx69
ronyx69 / SpecialPlaces_AssetEditor.cs
Created November 16, 2017 15:02
Sets the amount, direction and position of sitting places for benches.
// m_specialPlaces (SittingDown)
// Sets the amount, direction and position of sitting places for benches.
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as PropInfo;
var specialPlaces = 1; // amount of sitting positions
PropInfo.SpecialPlace[] temp = new PropInfo.SpecialPlace[specialPlaces];
@ronyx69
ronyx69 / PloppableAsphaltPlus_Props.cs
Last active January 5, 2018 12:10
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];
@ronyx69
ronyx69 / Realtime.cs
Last active August 31, 2022 15:31
Source code for Realtime mod. Ingame texture and mesh replacement. UI by Simon Royer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using System.IO;
using ColossalFramework.IO;
using ObjUnity3D;
using ICities;
//scripts to use with the Realtime mod, filename must match file prefix in import folder
var type="building";
var filename="thing"; var assetname="thing";
Type.GetType("Realtime.RealtimeMod").GetMethod(type).Invoke(null, new object[] { filename, assetname });
var type="prop";
var filename="snow1"; var assetname="snow1";
Type.GetType("Realtime.RealtimeMod").GetMethod(type).Invoke(null, new object[] { filename, assetname });
@ronyx69
ronyx69 / Realtime_NoUI.cs
Created August 26, 2017 19:07
Replaces textures/meshes for buildings/props/vehicles/trees ingame in realtime. (No User Interface)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ICities;
using UnityEngine;
using ColossalFramework.IO;
using ObjUnity3D;
@ronyx69
ronyx69 / Realtime_WIP_TexturesOnly.cs
Last active August 19, 2017 21:40
Script to replace any texture of a prop.
// Textures must be placed in gamefolder/textures/props
// For example if my prop file name is snow1 and asset name is also snow1,
// then the textures would be called snow1.snow1_Data_d.png
// snow1.snow1_Data_a.png, snow1.snow1_Data_n.png and so on...
var assetname = "snow1.snow1_Data"; // CHANGE ONLY THIS
var asset = PrefabCollection<PropInfo>.FindLoaded(assetname);
var assetMaterial = asset.m_material; var texturePath = " ";
Texture2D providedTexture=null; Color px;
@ronyx69
ronyx69 / LightingRebalance.cs
Last active August 7, 2017 15:58
My locally modded lighting and tonemapping settings, fine tuned for vanilla temperate theme and a custom high contrast LUT. http://i.imgur.com/AJ54HWo.png
using ICities;
using System;
using System.Reflection;
using UnityEngine;
namespace LightingRebalance
{
public class LightingRebalanceMod : LoadingExtensionBase, IUserMod
{
public string Name
{
@ronyx69
ronyx69 / ShaderChange_FloatingBuilding.cs
Last active August 2, 2017 18:45
Change the shader of a building or prop to floating building in asset editor.
//building
var shader = Shader.Find("Custom/Buildings/Building/Floating");
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as BuildingInfo;
if(asset.m_material != null) asset.m_material.shader = shader;
if(asset.m_lodMaterial != null) asset.m_lodMaterial.shader = shader;
//prop
@ronyx69
ronyx69 / PropMesh_To_NetworkMesh
Last active July 27, 2017 14:58
Replaces a network segment/node mesh with a mesh from a prop.
// PropMesh To NetworkMesh
var propName = "Barrels";
var networkName = "Train Track";
var type = "segment"; // segment or node
var id = 1;
var replaceTexture = false; // true or false
var prop = PrefabCollection<PropInfo>.FindLoaded(propName); // PropInfo, BuildingInfo, VehicleInfo, TreeInfo