Beispiel #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();
        }
        public void PlaceModularPlacable(
            ModularPlacableObject ModularPlacable,
            Delegates.GenericDataCallbak PlacedCallback,
            System.Func <ModularPlacableObject, bool> CanPlace,
            System.Action <object[]> OnCanceled,
            SnapTypes InitSnapType = SnapTypes.Default,
            object[] ExtraData     = default(object[]),
            bool Interrupt         = false
            )
        {
            List <object> GenData = new List <object> ();

            GenData.Add(this);
            GenData.Add(ModularPlacable);
            GenData.Add(PlacedCallback);
            GenData.Add(OnCanceled);
            GenData.Add(CanPlace);

            if (ExtraData != null)               // add extra data if is not null
            {
                for (int i = 0; i < ExtraData.Length; i++)
                {
                    GenData.Add(ExtraData [i]);
                }
            }

            // add init settings
            GenData.Add(InitSnapType);
            Statemachine.changeState(new PlacePlacableObject(), GenData, Interrupt);
        }
 public void PlaceModularSet(ModularSet ModularSet, Delegates.GenericDataCallbak PlacedCallback, System.Action <object[]> OnCanceled, System.Func <ModularPlacableObject, bool> CanPlace, object[] ExtraData = default(object[]), bool Interrupt = false)
 {
     PlaceModularPlacable((ModularPlacableObject)ModularSet, PlacedCallback, CanPlace, OnCanceled, SnapTypes.Default, ExtraData, Interrupt);
 }
 public void PlaceModularPiece(ModularPiece Piece, Delegates.GenericDataCallbak PlacedCallback, System.Action <object[]> OnCanceled, System.Func <ModularPlacableObject, bool> CanPlace)
 {
     PlaceModularPlacable((ModularPlacableObject)Piece, PlacedCallback, CanPlace, OnCanceled);
 }