context: // Material wrapper generated by shader translator tool
  using System;
  using System.Diagnostics.CodeAnalysis;
  using UnityEngine;
  namespace Kopernicus.Components.MaterialWrapper
  {
      [SuppressMessage("ReSharper", "MemberCanBeProtected.Global")]
      [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
      [SuppressMessage("ReSharper", "AutoPropertyCanBeMadeGetOnly.Local")]
      [SuppressMessage("ReSharper", "InconsistentNaming")]
      public class PQSTriplanarZoomRotationTextureArray : Material
      {
          // Internal property ID tracking object
          protected class Properties
          {
              // Return the shader for this wrapper
              private const String SHADER_NAME = "Terrain/PQS/PQS Triplanar Zoom Rotation Texture Array";
  
              public static Shader Shader
              {
                  get { return Shader.Find(SHADER_NAME); }
              }
  
              // Color Lerp Modifier, default = 1
              public const String COLOR_LERP_MODIFIER_KEY = "_ColorLerpModifier";
              public Int32 ColorLerpModifierId { get; private set; }
  
              // Atlas Tiling, default = 100000
              public const String ATLAS_TILING_KEY = "_AtlasTiling";
              public Int32 AtlasTilingId { get; private set; }
  
              // Atlas Texture, default = "white" { }
              public const String ATLAS_TEX_KEY = "_AtlasTex";
              public Int32 AtlasTexId { get; private set; }
  
              // Normal Atlas Texture, default = "white" { }
              public const String NORMAL_TEX_KEY = "_NormalTex";
              public Int32 NormalTexId { get; private set; }
  
              // Factor, default = 10
              public const String FACTOR_KEY = "_factor";
              public Int32 FactorId { get; private set; }
  
              // Factor Blend Width, default = 0.1
              public const String FACTOR_BLEND_WIDTH_KEY = "_factorBlendWidth";
              public Int32 FactorBlendWidthId { get; private set; }
  
              // Factor Rotation, default = 30
              public const String FACTOR_ROTATION_KEY = "_factorRotation";
              public Int32 FactorRotationId { get; private set; }
  
              // Saturation, default = 1
              public const String SATURATION_KEY = "_saturation";
              public Int32 SaturationId { get; private set; }
  
              // Contrast, default = 1
              public const String CONTRAST_KEY = "_contrast";
              public Int32 ContrastId { get; private set; }
  
              // Colour Unsaturation (A = Factor), default = (1,1,1,0)
              public const String TINT_COLOR_KEY = "_tintColor";
              public Int32 TintColorId { get; private set; }
  
              // Specular Color, default = (0.2,0.2,0.2,0.2)
              public const String SPECULAR_COLOR_KEY = "_specularColor";
              public Int32 SpecularColorId { get; private set; }
  
              // Brightness, default = 2
              public const String ALBEDO_BRIGHTNESS_KEY = "_albedoBrightness";
              public Int32 AlbedoBrightnessId { get; private set; }
  
              // Steep Blend, default = 1
              public const String STEEP_POWER_KEY = "_steepPower";
              public Int32 SteepPowerId { get; private set; }
  
              // Steep Fade Start, default = 20000
              public const String STEEP_TEX_START_KEY = "_steepTexStart";
              public Int32 SteepTexStartId { get; private set; }
  
              // Steep Fade End, default = 30000
              public const String STEEP_TEX_END_KEY = "_steepTexEnd";
              public Int32 SteepTexEndId { get; private set; }
  
              // Steep Texture, default = "white" { }
              public const String STEEP_TEX_KEY = "_steepTex";
              public Int32 SteepTexId { get; private set; }
  
              // Steep Bump Map, default = "bump" { }
              public const String STEEP_BUMP_MAP_KEY = "_steepBumpMap";
              public Int32 SteepBumpMapId { get; private set; }
  
              // Steep Near Tiling, default = 1
              public const String STEEP_NEAR_TILING_KEY = "_steepNearTiling";
              public Int32 SteepNearTilingId { get; private set; }
  
              // Steep Far Tiling, default = 1
              public const String STEEP_TILING_KEY = "_steepTiling";
              public Int32 SteepTilingId { get; private set; }
  
              // AP Global Density, default = 1
              public const String GLOBAL_DENSITY_KEY = "_globalDensity";
              public Int32 GlobalDensityId { get; private set; }
  
              // FogColorRamp, default = "white" { }
              public const String FOG_COLOR_RAMP_KEY = "_fogColorRamp";
              public Int32 FogColorRampId { get; private set; }
  
              // PlanetOpacity, default = 1
              public const String PLANET_OPACITY_KEY = "_PlanetOpacity";
              public Int32 PlanetOpacityId { get; private set; }
  
              // Ocean Fog Dist, default = 1000
              public const String OCEAN_FOG_DISTANCE_KEY = "_oceanFogDistance";
              public Int32 OceanFogDistanceId { get; private set; }
  
              // Singleton instance
              private static Properties _singleton;
  
              public static Properties Instance
              {
                  get
                  {
                      // Construct the singleton if it does not exist
                      return _singleton ?? (_singleton = new Properties());
                  }
              }
  
              private Properties()
              {
                  ColorLerpModifierId = Shader.PropertyToID(COLOR_LERP_MODIFIER_KEY);
                  AtlasTilingId = Shader.PropertyToID(ATLAS_TILING_KEY);
                  AtlasTexId = Shader.PropertyToID(ATLAS_TEX_KEY);
                  NormalTexId = Shader.PropertyToID(NORMAL_TEX_KEY);
                  FactorId = Shader.PropertyToID(FACTOR_KEY);
                  FactorBlendWidthId = Shader.PropertyToID(FACTOR_BLEND_WIDTH_KEY);
                  FactorRotationId = Shader.PropertyToID(FACTOR_ROTATION_KEY);
                  SaturationId = Shader.PropertyToID(SATURATION_KEY);
                  ContrastId = Shader.PropertyToID(CONTRAST_KEY);
                  TintColorId = Shader.PropertyToID(TINT_COLOR_KEY);
                  SpecularColorId = Shader.PropertyToID(SPECULAR_COLOR_KEY);
                  AlbedoBrightnessId = Shader.PropertyToID(ALBEDO_BRIGHTNESS_KEY);
                  SteepPowerId = Shader.PropertyToID(STEEP_POWER_KEY);
                  SteepTexStartId = Shader.PropertyToID(STEEP_TEX_START_KEY);
                  SteepTexEndId = Shader.PropertyToID(STEEP_TEX_END_KEY);
                  SteepTexId = Shader.PropertyToID(STEEP_TEX_KEY);
                  SteepBumpMapId = Shader.PropertyToID(STEEP_BUMP_MAP_KEY);
                  SteepNearTilingId = Shader.PropertyToID(STEEP_NEAR_TILING_KEY);
                  SteepTilingId = Shader.PropertyToID(STEEP_TILING_KEY);
                  GlobalDensityId = Shader.PropertyToID(GLOBAL_DENSITY_KEY);
                  FogColorRampId = Shader.PropertyToID(FOG_COLOR_RAMP_KEY);
                  PlanetOpacityId = Shader.PropertyToID(PLANET_OPACITY_KEY);
                  OceanFogDistanceId = Shader.PropertyToID(OCEAN_FOG_DISTANCE_KEY);
              }
          }
  
          // Is some random material this material
          public static Boolean UsesSameShader(Material m)
          {
              if (m == null)
              {
                  return false;
              }
  
              return m.shader.name == Properties.Shader.name;
          }
  
          // Color Lerp Modifier, default = 1
          public Single ColorLerpModifier
          {
              get { return GetFloat(Properties.Instance.ColorLerpModifierId); }
              set { SetFloat(Properties.Instance.ColorLerpModifierId, value); }
          }
  
          // Atlas Texture, default = 100000
          public Single AtlasTiling
          {
              get { return GetFloat(Properties.Instance.AtlasTilingId); }
              set { SetFloat(Properties.Instance.AtlasTilingId, value); }
          }
  
          // Atlas Texture, default = "white" { }
          public Texture2DArray AtlasTex
          {
              get { return (Texture2DArray)GetTexture(Properties.Instance.AtlasTexId); }
              set { SetTexture(Properties.Instance.AtlasTexId, value); }
          }
  
          // Normal Atlas Texture, default = "white" { }
          public Texture2DArray NormalTex
          {
              get { return (Texture2DArray)GetTexture(Properties.Instance.NormalTexId); }
              set { SetTexture(Properties.Instance.NormalTexId, value); }
          }
  
          // Factor, default = 10
          public Single Factor
          {
              get { return GetFloat(Properties.Instance.FactorId); }
              set { SetFloat(Properties.Instance.FactorId, value); }
          }
  
          // Factor Blend Width, default = 0.1
          public Single FactorBlendWidth
          {
              get { return GetFloat(Properties.Instance.FactorBlendWidthId); }
              set { SetFloat(Properties.Instance.FactorBlendWidthId, Mathf.Clamp(value, 0f, 0.5f)); }
          }
  
          // Factor Rotation, default = 30
          public Single FactorRotation
          {
              get { return GetFloat(Properties.Instance.FactorRotationId); }
  
gt:             set { SetFloat(Properties.Instance.FactorRotationId, value); }