public void Place(Vector3[] Positions, Quaternion[] Rotations, Vector3[] Scales, bool RegisterUndo)
        {
            if (Positions.Length > 0 && RegisterUndo && !IsPasteAction && !UndoRegistered)
            {
                Undo.RegisterUndo(new UndoHistory.HistoryPropsChange());
            }

            for (int i = 0; i < Positions.Length; i++)
            {
                if (!MapLuaParser.IsInArea(Positions[i]))
                {
                    continue;
                }

                Positions[i].y = ScmapEditor.Current.Teren.SampleHeight(Positions[i]);

                Prop NewProp = new Prop();
                NewProp.GroupId = RandomPropGroup;
                NewProp.CreateObject(Positions[i], Rotations[i], Vector3.one);

                AllPropsTypes[RandomPropGroup].PropsInstances.Add(NewProp);

                if (IsPasteAction && i == 0)
                {
                    PastedObjects.Add(NewProp.Obj.gameObject);
                }
            }
        }
Ejemplo n.º 2
0
        void Paint(Vector3 AtPosition, Quaternion Rotation)
        {
            if (!MapLuaParser.IsInArea(AtPosition))
            {
                return;
            }

            RegisterUndo();

            AtPosition.y = ScmapEditor.Current.Teren.SampleHeight(AtPosition);

            Prop NewProp = new Prop();

            NewProp.GroupId = RandomPropGroup;
            NewProp.CreateObject(AtPosition, Rotation, Vector3.one);

            AllPropsTypes[RandomPropGroup].PropsInstances.Add(NewProp);

            TotalMassCount   += AllPropsTypes[RandomPropGroup].PropObject.BP.ReclaimMassMax;
            TotalEnergyCount += AllPropsTypes[RandomPropGroup].PropObject.BP.ReclaimEnergyMax;
            TotalReclaimTime += AllPropsTypes[RandomPropGroup].PropObject.BP.ReclaimTime;
        }