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); }