Advertisement
Guest User

Untitled

a guest
Mar 28th, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.44 KB | None | 0 0
  1. public class GridTrigger : ThreadingExtensionBase
  2.     {
  3.         private TerrainManager terrainManager;
  4.         private ZoneManager zoneManager;
  5.         private GameAreaManager gameAreaManager;
  6.  
  7.         private bool renderGrid = false;
  8.  
  9.         public override void OnCreated(IThreading threading)
  10.         {
  11.  
  12.             terrainManager = Singleton<TerrainManager>.instance;
  13.             zoneManager = Singleton<ZoneManager>.instance;
  14.             gameAreaManager = Singleton<GameAreaManager>.instance;
  15.         }
  16.  
  17.         public override void OnUpdate(float realTimeDelta, float simulationTimeDelta)
  18.         {
  19.  
  20.             if (Event.current.alt && Input.GetKeyDown(KeyCode.Z))
  21.             {
  22.                 // Turn on zones
  23.                 terrainManager.RenderZones = !terrainManager.RenderZones;
  24.                 Debug.Log("[RoadAssist] Alt+Z pressed.");
  25.             }
  26.  
  27.             if (Event.current.alt && Input.GetKeyDown(KeyCode.G))
  28.             {
  29.                 Debug.Log("[RoadAssist] Alt+G pressed. Render is " + (!renderGrid ? "on" : "off"));
  30.  
  31.                 renderGrid = !renderGrid;
  32.             }
  33.  
  34.             if (renderGrid)
  35.             {
  36.                 foreach (TerrainPatch patch in terrainManager.m_patches)
  37.                 {
  38.                     Render(Singleton<RenderManager>.instance.CurrentCameraInfo, patch);
  39.                 }
  40.             }
  41.         }
  42.  
  43.  
  44.         private void Render(RenderManager.CameraInfo cameraInfo, TerrainPatch patch)
  45.         {
  46.  
  47.             if (cameraInfo.Intersect(patch.m_bounds))
  48.             {
  49.                 Bounds bounds = patch.m_bounds;
  50.                 Material decMaterial = GetPrivateVariable<Material>(patch, "m_decorationMaterial");
  51.                 decMaterial.SetVector(Shader.PropertyToID("_DecorationArea"), new Vector4(255,255,255,150));
  52.                 decMaterial.SetFloat(Shader.PropertyToID("_DecorationAlpha"), 1.0f);
  53.                 GameAreaManager expr_EF_cp_0 = Singleton<GameAreaManager>.instance;
  54.                 expr_EF_cp_0.m_drawCallData.m_overlayCalls = expr_EF_cp_0.m_drawCallData.m_overlayCalls + 1;
  55.                 Singleton<RenderManager>.instance.OverlayEffect.DrawEffect(cameraInfo, decMaterial, 0, bounds);
  56.                
  57.             }
  58.         }
  59.  
  60.         private T GetPrivateVariable<T>(object obj, string fieldName)
  61.         {
  62.             return (T)obj.GetType().GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj);
  63.         }
  64.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement