Esempio n. 1
0
    // Token: 0x060002F7 RID: 759 RVA: 0x000195B8 File Offset: 0x000177B8
    private void SpawnOnHitTerrain(Vector3 hitPoint, GameObject prefab)
    {
        TerrainModifier componentInChildren = prefab.GetComponentInChildren <TerrainModifier>();

        if (componentInChildren)
        {
            if (!PrivateArea.CheckAccess(hitPoint, componentInChildren.GetRadius(), true, false))
            {
                return;
            }
            if (Location.IsInsideNoBuildLocation(hitPoint))
            {
                return;
            }
        }
        TerrainModifier.SetTriggerOnPlaced(true);
        GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(prefab, hitPoint, Quaternion.LookRotation(this.m_character.transform.forward));

        TerrainModifier.SetTriggerOnPlaced(false);
        IProjectile component = gameObject.GetComponent <IProjectile>();

        if (component != null)
        {
            component.Setup(this.m_character, Vector3.zero, this.m_attackHitNoise, null, this.m_weapon);
        }
    }
        /// <summary>
        /// Create the terrain for the road
        /// </summary>
        /// <param name="sections">The number of sections</param>
        /// <param name="tm">The terrain modifier</param>
        private void CreateCrossRoadsTerrain(int sections, TerrainModifier tm)
        {
            float couveSize = 2.5f;

            _roadNetworkNode.OrderRoads();

            IMaterialFrequency materialFrequency = _roadNetworkNode.GetComponent <OverridableMaterialFrequency>();

            if (materialFrequency == null)
            {
                materialFrequency = RoadConstructorHelper.MaterialFrequencySet;
            }

            RoadNetworkNode  roadA, roadB, roadC, roadD;
            RoadCrossSection rA, rB, rC, rD;

            RoadUnionHelper.DefineCrossSectionOffSet(couveSize, 0, _roadNetworkNode, out roadA, out rA);
            RoadUnionHelper.DefineCrossSectionOffSet(couveSize, 1, _roadNetworkNode, out roadB, out rB);
            RoadUnionHelper.DefineCrossSectionOffSet(couveSize, 2, _roadNetworkNode, out roadC, out rC);
            RoadUnionHelper.DefineCrossSectionOffSet(couveSize, 3, _roadNetworkNode, out roadD, out rD);

            int connectionSet = IntersectionManager.Instance.AddLinkedIntersecions(rA, rB, rC, rD);

            DrawDetailsCrossRoad drs = new DrawDetailsCrossRoad(connectionSet, _roadNetworkNode, RoadConstructorHelper.GetMainMaterial(materialFrequency));

            drs.ModifyTerrain(_roadNetworkNode.BuildData, tm);

            RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 0);
            RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 1);
            RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 2);
            RoadConstructorHelper.ApplyLeadingStrights(_roadNetworkNode, tm, 3);
        }
Esempio n. 3
0
        /// <summary>
        /// Apply the terrain height
        /// </summary>
        /// <param name="tm">The terrain modifier</param>
        public void ApplyTerrain(TerrainModifier tm)
        {
            OutterInner outterInner = BuildArray(false, tm);

            for (int i = 0; i < _totalRoads; i++)
            {
                int rightRoad = i + 1;
                if (rightRoad > _totalRoads - 1)
                {
                    rightRoad -= _totalRoads;
                }

                int leftRoad = i - 1;
                if (leftRoad < 0)
                {
                    leftRoad += _totalRoads;
                }

                RectVector3 r;
                r = new RectVector3(outterInner.Inner[i].Left, outterInner.Outter[i].Left, outterInner.Inner[i].Right, outterInner.Outter[i].Right);
                tm.ApplyToTerrain(r, true);

                r = new RectVector3(outterInner.Outter[i].CurbRightEnd, outterInner.Outter[i].Right, outterInner.Outter[rightRoad].CurbLeftEnd, outterInner.Inner[i].Right);
                tm.ApplyToTerrain(r, true);

                r = new RectVector3(outterInner.Outter[i].CurbLeftEnd, outterInner.Outter[i].Left, outterInner.Outter[leftRoad].CurbRightEnd, outterInner.Inner[i].Left);
                tm.ApplyToTerrain(r, true);

                r = new RectVector3(_roadNetworkNode.transform.position, _roadNetworkNode.transform.position, outterInner.Inner[i].Left, outterInner.Inner[i].Right);
                tm.ApplyToTerrain(r, true);
            }
        }
Esempio n. 4
0
    public void ApplyCurb(GeneratedCurb curb, TerrainModifier terrainModifier)
    {
        // Todo height of TPP apply

        if (meshFilter == null)
        {
            meshFilter   = GetComponent <MeshFilter>();
            meshCollider = GetComponent <MeshCollider>();
        }

        Vector3[] trVerts = new Vector3[curb.RenderVertices.Length];
        for (int i = 0; i < trVerts.Length; i++)
        {
            trVerts[i] = curb.RenderVertices[i] + new Vector3(0f, terrainModifier.GetTensorHeight(curb.RenderVertices[i].x, curb.RenderVertices[i].z), 0f);
        }



        meshFilter.mesh.Clear();

        meshFilter.mesh.vertices = trVerts;
        meshFilter.mesh.uv       = curb.RenderUVs;

        meshFilter.mesh.subMeshCount = 1;

        meshFilter.mesh.SetTriangles(curb.RenderTriangles, 0);

        meshFilter.mesh.RecalculateNormals();

        meshCollider.sharedMesh = meshFilter.mesh;
    }
Esempio n. 5
0
 internal static bool DebugToggle(out int count)
 {
     count = 0;
     if (EnvMan.instance != null)
     {
         debugTerrain = !debugTerrain;
         foreach (TerrainModifier mod in TerrainModifier.GetAllInstances().Where(x => x != null && x.m_playerModifiction))
         {
             Light light = SetupLight(mod);
             count++;
         }
         EnvMan.instance.m_dirLight.enabled = !debugTerrain;
         foreach (Heightmap map in Heightmap.GetAllHeightmaps().Where(x => x != null))
         {
             Material mat = m_materialInstance(map);
             if (mat != null)
             {
                 if (debugTerrain)
                 {
                     mat.SetTexture("_DiffuseTex0", Texture2D.whiteTexture);
                 }
                 else
                 {
                     mat.SetTexture("_DiffuseTex0", map.m_material.GetTexture("_DiffuseTex0"));
                 }
             }
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }
Esempio n. 6
0
 public static void Prefix(ref TerrainModifier __instance)
 {
     if (Commands.debugTerrain && __instance.m_playerModifiction)
     {
         Commands.SetupLight(__instance);
     }
 }
Esempio n. 7
0
        /// <summary>
        /// Build the array
        /// </summary>
        /// <param name="buildMesh">Weather to build the mesh or not</param>
        /// <param name="tm">The terrain modifier</param>
        /// <returns>The array details of the cross road</returns>
        private CrossRoadsArray BuildArray(bool buildMesh, TerrainModifier tm)
        {
            RoadCrossRoadOrder order;
            MeshBuilderSection mbs;
            RoadCrossSection   leftIntersectionInner, leftIntersectionOutter, rightIntersectionInner, rightIntersectionOutter, middleIntersectionInner, oppositeIntersectionInner;

            UpdateRoadNodesEndPoints(out order, out mbs, out leftIntersectionInner, out leftIntersectionOutter, out rightIntersectionInner, out rightIntersectionOutter, out middleIntersectionInner, out oppositeIntersectionInner);

            if (buildMesh)
            {
                mbs.DirectBuild(leftIntersectionInner, order.LeftRoad);
                mbs.DirectBuild(rightIntersectionInner, order.RightRoad);

                mbs.DirectBuild(middleIntersectionInner, order.MiddleRoad);
                mbs.DirectBuild(oppositeIntersectionInner, order.OppositeRoad);
            }
            else
            {
                tm.ApplyToTerrain(leftIntersectionInner, order.LeftRoad);
                tm.ApplyToTerrain(rightIntersectionInner, order.RightRoad);

                tm.ApplyToTerrain(middleIntersectionInner, order.MiddleRoad);
                tm.ApplyToTerrain(oppositeIntersectionInner, order.OppositeRoad);
            }

            CrossRoadsArray ja = new CrossRoadsArray();

            ja.LeftSide[7] = middleIntersectionInner.Left;
            ja.LeftSide[4] = middleIntersectionInner.CurbLeftLip;
            ja.LeftSide[1] = middleIntersectionInner.CurbLeftEnd;
            ja.LeftSide[5] = leftIntersectionInner.Right;
            ja.LeftSide[2] = leftIntersectionInner.CurbRightLip;
            ja.LeftSide[6] = leftIntersectionOutter.Right;
            ja.LeftSide[3] = AddSlope(leftIntersectionOutter.CurbRightLip, middleIntersectionInner.Angle);

            ja.RightSide[7] = middleIntersectionInner.Right;
            ja.RightSide[4] = middleIntersectionInner.CurbRightLip;
            ja.RightSide[1] = middleIntersectionInner.CurbRightEnd;
            ja.RightSide[5] = rightIntersectionInner.Left;
            ja.RightSide[2] = rightIntersectionInner.CurbLeftLip;
            ja.RightSide[6] = rightIntersectionOutter.Left;
            ja.RightSide[3] = AddSlope(rightIntersectionOutter.CurbLeftLip, middleIntersectionInner.Angle - (float)(Mathf.PI));

            ja.LeftFarSide[7] = oppositeIntersectionInner.Left;
            ja.LeftFarSide[4] = oppositeIntersectionInner.CurbLeftLip;
            ja.LeftFarSide[1] = oppositeIntersectionInner.CurbLeftEnd;
            ja.LeftFarSide[5] = rightIntersectionInner.Right;
            ja.LeftFarSide[2] = rightIntersectionInner.CurbRightLip;
            ja.LeftFarSide[6] = rightIntersectionOutter.Right;
            ja.LeftFarSide[3] = AddSlope(rightIntersectionOutter.CurbRightLip, oppositeIntersectionInner.Angle);

            ja.RightFarSide[7] = oppositeIntersectionInner.Right;
            ja.RightFarSide[4] = oppositeIntersectionInner.CurbRightLip;
            ja.RightFarSide[1] = oppositeIntersectionInner.CurbRightEnd;
            ja.RightFarSide[5] = leftIntersectionInner.Left;
            ja.RightFarSide[2] = leftIntersectionInner.CurbLeftLip;
            ja.RightFarSide[6] = leftIntersectionOutter.Left;
            ja.RightFarSide[3] = AddSlope(leftIntersectionOutter.CurbLeftLip, oppositeIntersectionInner.Angle - (float)(Mathf.PI));
            return(ja);
        }
Esempio n. 8
0
        public static void DeleteTMod(TerrainModifier modifier)
        {
            ZNetView znview = modifier.gameObject.GetComponent <ZNetView>();

            if (!znview || znview.GetZDO() == null)
            {
                return;
            }
            bool has_copy = false;

            foreach (ZDO item in zdos_to_save)
            {
                if (item.m_uid == znview.GetZDO().m_uid)
                {
                    has_copy = true;
                    break;
                }
            }
            if (!has_copy)
            {
                zdos_to_save.Add(znview.GetZDO().Clone());
            }
            modifier.enabled = false;
            znview.ClaimOwnership();
            if (!new string[3] {
                "mud_road(Clone)", "digg(Clone)", "path(Clone)"
            }.Contains(modifier.name))
            {
                Debug.LogWarning("Deleting " + modifier.name);
            }
            Debug.Log("Deleting " + modifier.name);
            ZNetScene.instance.Destroy(modifier.gameObject);
        }
        /// <summary>
        /// Apply to terrain
        /// </summary>
        /// <param name="TerrainModifier">The Terrain Modifier helper</param>
        public void ModifiyTerrain(TerrainModifier tm)
        {
            foreach (RoadNetworkNode rnn in _roadNetworkNode.Details.Roads)
            {
                string[] stringArray = new string[2] {
                    _roadNetworkNode.name, rnn.name
                };
                Array.Sort(stringArray);

                string     streetFullName = string.Join("-", stringArray);
                StreetData sd             = StreetManager.Instance[streetFullName];

                RoadCrossSection rsc = sd.GetFirst;
                if (rsc == null)
                {
                    continue;
                }

                RoadCrossSection rsca = sd.GetSecond;
                if (rsca == null)
                {
                    continue;
                }

                tm.ApplyToTerrain(rsc, rsca);
            }
        }
        /// <summary>
        /// Modify the terrain for the Junction
        /// </summary>
        public void ApplyTerrain(TerrainModifier terrainModifier)
        {
            JunctionArray ja = BuildArray(false, terrainModifier);

            RectVector3 rect;

            rect = new RectVector3(ja.LeftSide[6], ja.LeftSide[7], ja.RightSide[6], ja.RightSide[7]);
            terrainModifier.ApplyToTerrain(rect, true);
            rect = new RectVector3(ja.LeftFarSide[5], ja.LeftFarSide[4], ja.LeftSide[6], ja.LeftSide[5]);
            terrainModifier.ApplyToTerrain(rect, true);
            rect = new RectVector3(ja.RightSide[6], ja.RightSide[5], ja.RightFarSide[5], ja.RightFarSide[4]);
            terrainModifier.ApplyToTerrain(rect, true);
            rect = new RectVector3(ja.RightSide[6], ja.RightFarSide[5], ja.LeftSide[6], ja.LeftFarSide[5]);
            terrainModifier.ApplyToTerrain(rect, true);

            // pavements
            rect = new RectVector3(ja.LeftSide[1], ja.LeftSide[4], ja.LeftSide[2], ja.LeftSide[3]);
            terrainModifier.ApplyToTerrain(rect, true);
            rect = new RectVector3(ja.RightSide[1], ja.RightSide[4], ja.RightSide[2], ja.RightSide[3]);
            terrainModifier.ApplyToTerrain(rect, true);
            rect = new RectVector3(ja.LeftFarSide[1], ja.LeftFarSide[2], ja.LeftFarSide[6], ja.LeftFarSide[3]);
            terrainModifier.ApplyToTerrain(rect, true);
            rect = new RectVector3(ja.RightFarSide[3], ja.RightFarSide[2], ja.RightFarSide[6], ja.RightFarSide[1]);
            terrainModifier.ApplyToTerrain(rect, true);
            rect = new RectVector3(ja.LeftFarSide[6], ja.LeftFarSide[3], ja.RightFarSide[6], ja.RightFarSide[3]);
            terrainModifier.ApplyToTerrain(rect, true);
        }
Esempio n. 11
0
    /// <summary>
    /// Apply the strights to the terrain
    /// </summary>
    /// <param name="_roadNetworkNode">The main road network node</param>
    /// <param name="tm">The Terrain modifier</param>
    /// <param name="index">The index of the road to use</param>
    public static void ApplyLeadingStrights(RoadNetworkNode _roadNetworkNode, TerrainModifier tm, int index)
    {
        string[] stringArray = new string[2] {
            _roadNetworkNode.name, _roadNetworkNode.Details.Roads[index].name
        };
        Array.Sort(stringArray);

        string streetFullName = string.Join("-", stringArray);

        StreetData       street = StreetManager.Instance[streetFullName];
        RoadCrossSection rsc    = street.GetFirst;

        if (rsc == null)
        {
            return;
        }

        RoadCrossSection rsca = street.GetSecond;

        if (rsca == null)
        {
            return;
        }

        tm.ApplyToTerrain(rsc, rsca);
    }
Esempio n. 12
0
        public void ModifyTerrain()
        {
            CreateMesh(true);

            TerrainModifier tm = gameObject.GetComponent <TerrainModifier>();

            tm.ApplyTerrainHeight(gameObject);
        }
Esempio n. 13
0
    public bool TerrainVSModifier(TerrainModifier modifier)
    {
        Vector3 position1 = modifier.transform.position;
        float   num1      = modifier.GetRadius() + 4f;
        Vector3 position2 = this.transform.position;
        float   num2      = (float)((double)this.m_width * (double)this.m_scale * 0.5);

        return((double)position1.x + (double)num1 >= (double)position2.x - (double)num2 && (double)position1.x - (double)num1 <= (double)position2.x + (double)num2 && ((double)position1.z + (double)num1 >= (double)position2.z - (double)num2 && (double)position1.z - (double)num1 <= (double)position2.z + (double)num2));
    }
Esempio n. 14
0
    void OnTriggerExit2D(Collider2D aCollider)
    {
        TerrainModifier modifier = aCollider.GetComponent <TerrainModifier> ();

        if (modifier != null)
        {
            SetDefaultSpeedAndDrag();
        }
    }
Esempio n. 15
0
    // Token: 0x06000D85 RID: 3461 RVA: 0x000602A8 File Offset: 0x0005E4A8
    public bool TerrainVSModifier(TerrainModifier modifier)
    {
        Vector3 position  = modifier.transform.position;
        float   num       = modifier.GetRadius() + 4f;
        Vector3 position2 = base.transform.position;
        float   num2      = (float)this.m_width * this.m_scale * 0.5f;

        return(position.x + num >= position2.x - num2 && position.x - num <= position2.x + num2 && position.z + num >= position2.z - num2 && position.z - num <= position2.z + num2);
    }
Esempio n. 16
0
 public void Abort()
 {
     if (_modifier != null)
     {
         _modifier.Abort();
         _modifier = null;
     }
     aborted = true;
 }
 public static void ApplyTerrainModifiers(this Transform transform, TerrainModifier[] modifiers, Vector3 pos, Quaternion rot, Vector3 scale)
 {
     for (int i = 0; i < (int)modifiers.Length; i++)
     {
         TerrainModifier terrainModifier = modifiers[i];
         Vector3         vector3         = Vector3.Scale(terrainModifier.worldPosition, scale);
         Vector3         vector31        = pos + (rot * vector3);
         terrainModifier.Apply(vector31, scale.y);
     }
 }
Esempio n. 18
0
 // Update is called once per frame
 void Update()
 {
     if (terrainModifier == null)
     {
         if (generationRenderer.TerrainModifier != null)
         {
             terrainModifier = generationRenderer.TerrainModifier;
         }
     }
 }
Esempio n. 19
0
        public void CommonEffect(Player player)
        {
            //Spawn location structure
            var pos = originLocation;
            var rot = Quaternion.LookRotation(originForward) * Quaternion.Euler(0, 90, 0);
            var getLocationMethods = typeof(ZoneSystem).GetMethods(BindingFlags.NonPublic | BindingFlags.Instance);
            var method             = (from MethodInfo m in getLocationMethods where m.Name == "GetLocation" && m.GetParameters().Any(param => param.ParameterType == typeof(string)) select m).FirstOrDefault();

            if (method == null)
            {
                throw new NullReferenceException("Could not find ZoneSystem.GetLocation method");
            }
            ZoneSystem.ZoneLocation location = (ZoneSystem.ZoneLocation)method.Invoke(ZoneSystem.instance, new object[] { houseLocationName });
            //m_didZoneTest = true;
            List <GameObject> spawnedGhostObjects = new List <GameObject>();

            typeof(ZoneSystem).GetMethod("SpawnLocation", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(ZoneSystem.instance, new object[] { location, spawnSeed, pos, rot, ZoneSystem.SpawnMode.Full, spawnedGhostObjects });

            //Set up for bed spawning
            var bedPos = originLocation + originForward * commonBedDisplacement;
            var bedRot = rot;

            //Get piece table
            var pieceTableName = "_HammerPieceTable";
            var pieceTable     = (from PieceTable table in Resources.FindObjectsOfTypeAll <PieceTable>() where table.gameObject.name == pieceTableName select table).FirstOrDefault();

            if (pieceTable == null || pieceTable.m_pieces.Count <= 0)
            {
                throw new NullReferenceException("Could not find hammer piece table");
            }
            pieceTable.UpdateAvailable(null, null, false, true); //noPlacementCost set to true - other fields don't matter

            //Select piece
            int        category   = -1;
            Vector2Int pieceIndex = pieceTable.GetPieceIndexVec(bedPieceName, ref category);

            pieceTable.SetCategory(category);
            pieceTable.SetSelected(pieceIndex);

            //Place piece
            var piece = pieceTable.GetSelectedPiece();

            piece.m_description = magicBedDesc;
            TerrainModifier.SetTriggerOnPlaced(trigger: true);
            GameObject gameObject = UnityEngine.Object.Instantiate(piece.gameObject, bedPos, bedRot);

            TerrainModifier.SetTriggerOnPlaced(trigger: false);
            WearNTear wear = gameObject.GetComponent <WearNTear>();

            if ((bool)wear)
            {
                wear.OnPlaced();
            }
            piece.m_description = "";
        }
Esempio n. 20
0
 private static void SetVariables(TerrainModifier __instance)
 {
     if (!modEnabled.Value)
     {
         return;
     }
     __instance.m_smoothRadius = smoothRadius.Value;
     __instance.m_smoothPower  = smoothPower.Value;
     __instance.m_levelRadius  = levelRadius.Value;
     __instance.m_paintRadius  = paintRadius.Value;
 }
Esempio n. 21
0
 // Token: 0x06000F8D RID: 3981 RVA: 0x0006E258 File Offset: 0x0006C458
 private static int SortByModifiers(TerrainModifier a, TerrainModifier b)
 {
     if (a.m_playerModifiction != b.m_playerModifiction)
     {
         return(a.m_playerModifiction.CompareTo(b.m_playerModifiction));
     }
     if (a.m_sortOrder == b.m_sortOrder)
     {
         return(a.GetCreationTime().CompareTo(b.GetCreationTime()));
     }
     return(a.m_sortOrder.CompareTo(b.m_sortOrder));
 }
Esempio n. 22
0
        /// <summary>
        /// Modifiy the terrain
        /// </summary>
        /// <param name="roadBuilderObject">The road object</param>
        /// <param name="tm">The terrain modifier</param>
        public void ModifyTerrain(IRoadBuildData roadBuilderObject, TerrainModifier tm)
        {
            List <Guid> list = IntersectionManager.Instance[_connectionSet];

            MeshBuilderFiveRoad jb = new MeshBuilderFiveRoad(
                roadBuilderObject,
                list,
                _roadNetworkNode,
                _materialName);

            jb.ApplyTerrain(tm);
        }
Esempio n. 23
0
        public static void Flatten(float radiusX, float radiusY)
        {
            if (radiusY <= 0f)
            {
                radiusY = radiusX;
            }
            else if (radiusX <= 0f)
            {
                radiusX = radiusY;
            }
            if (radiusX > 80f)
            {
                radiusX = 80f;
                Plugin.blogWarning("X Length Capped At 80");
            }
            if (radiusY > 80f)
            {
                radiusY = 80f;
                Plugin.blogWarning("Y Length Capped At 80");
            }
            if (radiusX <= 0f)
            {
                radiusX = 1f;
                radiusY = 1f;
                Plugin.blogWarning("Must Be Greater Than Zero");
            }
            Transform transform = Player.m_localPlayer.transform;
            Vector3   position  = transform.position;
            //Log.Message("Attempting To Flatten...");
            GameObject prefab = ZNetScene.instance.GetPrefab("raise");

            if (prefab.GetComponent <Piece>() == null || prefab == null)
            {
                Plugin.blogWarning("Flatten Creation Corrupted : Cancelling!");
                return;
            }
            TerrainModifier.SetTriggerOnPlaced(true);
            int num = 0;

            while ((float)num < radiusX)
            {
                int num2 = 0;
                while ((float)num2 < radiusY)
                {
                    Terrain.SpawnFloor(position + Vector3.down * 0.5f + transform.forward * (float)num + transform.right * (float)num2, transform.rotation, prefab);
                    num2++;
                }
                num++;
            }
            TerrainModifier.SetTriggerOnPlaced(false);
            //Plugin.blogWarning("Flatten Radius Required");
        }
 public static void ApplyTerrainModifiers(
     this Transform transform,
     TerrainModifier[] modifiers,
     Vector3 pos,
     Quaternion rot,
     Vector3 scale)
 {
     for (int index = 0; index < modifiers.Length; ++index)
     {
         TerrainModifier modifier = modifiers[index];
         Vector3         vector3  = Vector3.Scale(modifier.worldPosition, scale);
         modifier.Apply(Vector3.op_Addition(pos, Quaternion.op_Multiply(rot, vector3)), (float)scale.y);
     }
 }
Esempio n. 25
0
    void OnTriggerEnter2D(Collider2D aCollider)
    {
        TerrainModifier modifier = aCollider.GetComponent <TerrainModifier> ();

        if (modifier != null)
        {
            m_RigidBody.drag = modifier.dragModifier;

            if (modifier.speedModifier != 0)
            {
                currentSpeed = modifier.speedModifier;
            }
        }
    }
Esempio n. 26
0
        internal static Light SetupLight(TerrainModifier mod)
        {
            Light light = mod.GetComponent <Light>();

            if (light == null)
            {
                light = mod.gameObject.AddComponent <Light>();
                mod.gameObject.AddComponent <LightManager>();
            }
            light.color     = new Color(mod.m_level ? 1f : 0f, mod.m_smooth ? 1f : 0f, (mod.m_paintCleared && !mod.m_level && !mod.m_smooth) ? 1f : 0f, 1f);
            light.intensity = Settings.lightStrength.Value;
            light.enabled   = debugTerrain;
            return(light);
        }
Esempio n. 27
0
 private void DoCollapse()
 {
     if (_modifier == null)
     {
         aborted   = false;
         _modifier = new TerrainModifier(_source)
         {
             mod         = _mod,
             keepBorder  = _keepBorder,
             heightError = _hightError,
             progressBar = TerrainCenter.progressBar
         };
         TerrainCenter.coroutine.StartCoroutine(RunCollapse(), this);
     }
 }
Esempio n. 28
0
 // Token: 0x06000D84 RID: 3460 RVA: 0x000601E4 File Offset: 0x0005E3E4
 private void ApplyModifier(TerrainModifier modifier, float[] baseHeights, float[] levelOnly)
 {
     if (modifier.m_level)
     {
         this.LevelTerrain(modifier.transform.position + Vector3.up * modifier.m_levelOffset, modifier.m_levelRadius, modifier.m_square, baseHeights, levelOnly, modifier.m_playerModifiction);
     }
     if (modifier.m_smooth)
     {
         this.SmoothTerrain2(modifier.transform.position + Vector3.up * modifier.m_levelOffset, modifier.m_smoothRadius, modifier.m_square, levelOnly, modifier.m_smoothPower, modifier.m_playerModifiction);
     }
     if (modifier.m_paintCleared)
     {
         this.PaintCleared(modifier.transform.position, modifier.m_paintRadius, modifier.m_paintType, modifier.m_paintHeightCheck, false);
     }
 }
Esempio n. 29
0
    public void SetTrack(DiscreteTrack track, TerrainModifier terrainModifier)
    {
        if (job != null)
        {
            job.Abort();
            job = null;
        }

        pathC = 0;

        job                 = new JobCarvisualize();
        job.deltaT          = deltaT;
        job.DiscreteTrack   = track;
        job.TerrainModifier = terrainModifier;
        job.Start();
    }
Esempio n. 30
0
    public void RemoveTerrainGround()
    {
        if (Blueprint)
        {
            return;
        }

        if (Type == BuildingType.Path)
        {
            TerrainModifier.ChangeTexture(GridX, GridY, 1, 1, TerrainTextureType.Grass);
        }
        else
        {
            TerrainModifier.ChangeTexture(GridX, GridY, RotWidth(), RotHeight(), Type == BuildingType.Field ? TerrainTextureType.Field : TerrainTextureType.Building, -0.8f, -0.2f);
        }
    }