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