Пример #1
0
        public void Enter(List <object> GenData = null)
        {
            //GameManager.I.ChangeGameState (new GameStates.ModularGameState()); // change to modular state
            System             = GenData.Find <ModularBuildingSystem> (true);       // create link to Modular building system
            ScopedObject       = GenData.Find <ModularPlacableObject>(true);        // link to scoped piece
            OnPlacedCallback   = GenData.Find <Delegates.GenericDataCallbak>(true); // set on place callback
            OnCanceledCallback = GenData.Find <System.Action <object[]> >(true);    // set on cancle callback
            CanPlaceCallback   = GenData.Find <System.Func <ModularPlacableObject, bool> >(true);

            // init extra data
            LocalVisualGrid = (LocalGridSystem)GenData.Find <LocalGridSystem>();            // set cached local visual grid

            if ((object)GenData.FindObject <PlaceObjectCache> () != null)
            {
                Cache = GenData.Find <PlaceObjectCache> ();                // set cache
            }
            else
            {
                InitDefaultValues();
            }

            Indicator = (Indicator != null)?Indicator:GameManager.I.Utils.NewLineIndicator(Vector3.zero, Vector3.zero); // set indicator if is null

            Init();                                                                                                     // initialize

            // init detail
            ScopedObject.SetCollidersActive(false, true);
            DetailSettings.OnValuesChanged = OnValueChanged;
            UpdateTransform();
        }
Пример #2
0
        public void Enter(List <object> GenData = null)
        {
            this.GenData             = GenData;
            this.System              = GenData.Find <ModularBuildingSystem> ();  // set base system
            this.ScopedObjects       = GenData.Find <ModularPlacableObject[]>(); // set scoped pieces
            this.ContentFilter       = GenData.Find <System.Func <ModularPlacableObject, bool> >();
            this.CustomContentFilter = GenData.Find <System.Func <ModularPlacableObject, UI.Toolbar.CustomView[]> >();

            // update default restrictions
            for (int i = 0; i < ScopedObjects.Length; i++)                             // go through all pieces
            {
                UpdatePieceRestrictions((ModularPlacableObject)ScopedObjects[i]);      // update modular piece restrictions
            }
            LocalSpace = (_SpaceRestriction != SpaceRestrictions.None) ? false : true; // local space check

            // final init
            Init();              // init state
        }
        public void Enter(List <object> GenData = null)
        {
            System = GenData.Find <ModularBuildingSystem> (true);            // create link to Modular building system
            var Getters = GenData.Find <System.Func <StrokeType, ModularPlacableObject>[]>(true);

            OriginSetData      = GenData.Find <ModularStrokeSetData>(true);
            OnCanceledCallback = GenData.Find <System.Action <object[]> >(true);          // set on cancle callback

            var PlacedDelete = GenData.Find <System.Action <ModularPlacableObject>[]> (true);

            OnPlaced              = PlacedDelete [0];
            OnDeleted             = PlacedDelete[1]; // set on cancle callback
            CanPlace              = GenData.Find <System.Func <int, bool> >(true);
            ModularInfoGetter     = Getters [0];
            ModularInstanceGetter = Getters [1];
            OriginPlacable        = (StrokeModularPiece)ModularInfoGetter(StrokeType.Straight);
            Distance              = OriginPlacable.Scale;

            // set renderset
            RenderSet      = OriginPlacable.RenderSet;
            CrossRenderSet = Management.GameManager.I.Modular.CrossPrefab.GetComponent <RenderSet> ();

            Init();
        }