protected override void OnDeativeObjectActive(int id, MapObjectEntity mapObject, GameObject gameObject) { MapObjectUtility.AddRawGameObject <FracturedObject>(mapObject, gameObject); MapObjectUtility.RecordMapObj(id, (int)ETriggerObjectType.Door, mapObject); MapObjectUtility.SendLastEvent(mapObject); InitRotation(mapObject, gameObject); }
public void Add(int id, MapObjectEntity obj) { if (_mapObjDict.ContainsKey(id)) { return; } _mapObjDict.Add(id, obj); }
private void SendDetachChunkEventToServer(MapObjectEntity destructibleObject, int chunkId) { var evt = ChunkSyncEvent.Allocate(); evt.EType = TriggerObjectSyncEventType.DetachChunk; evt.SourceObjectId = destructibleObject.entityKey.Value.EntityId; evt.ChunkId = chunkId; MapObjectUtility.SendTriggerObjectEventToServer(destructibleObject, evt); }
private void InitRotation(MapObjectEntity mapObject, GameObject gameObject) { var rot = mapObject.doorData.Rotation; var eulerAngles = gameObject.transform.localEulerAngles; if (!rot.Equals(eulerAngles.y)) { eulerAngles.y = rot; gameObject.transform.localEulerAngles = eulerAngles; } }
private static void AddRawGameObject(IEntity obj, GameObject gameObject) { MapObjectEntity mapObject = obj as MapObjectEntity; mapObject.AddRawGameObject(gameObject); var entityReference = gameObject.GetComponent <EntityReference>(); if (entityReference == null) { entityReference = gameObject.AddComponent <EntityReference>(); } entityReference.Init(mapObject.entityAdapter); }
public void AddToCanvas(Canvas canvas) { canvas.Children.Add(Rectangle); Canvas.SetLeft(Rectangle, MapObjectMetrics.XOfCanvas); Canvas.SetTop(Rectangle, MapObjectMetrics.YOfCanvas); canvas.Children.Add(MapObjectDoor.GetDoor()); canvas.Children.Add(MapObjectNameTextBlock); if (MapObjectEntity.GetType() == typeof(Building)) { ((Building)MapObjectEntity).AddBuildinLayersButtonsToCanvas(canvas); } }
public static void AddRawGameObject <T>(IEntity obj, GameObject go) where T : FracturedBaseObject { MapObjectEntity mapObject = obj as MapObjectEntity; mapObject.AddRawGameObject(go); var entityReference = go.GetComponent <EntityReference>(); if (entityReference == null) { entityReference = go.AddComponentUncheckRequireAndDisallowMulti <EntityReference>(); } entityReference.Init(mapObject.entityAdapter); }
private void ProcessDetachChunkEvent(MapObjectEntity sceneObject, ChunkSyncEvent evt) { var go = sceneObject.rawGameObject.Value; var fracturedObject = go.GetComponent <FracturedObject>(); if (fracturedObject != null) { var data = sceneObject.destructibleData; if (!data.IsInDestructionState(evt.ChunkId)) { fracturedObject.CollapseChunk(evt.ChunkId); sceneObject.flagImmutability.LastModifyServerTime = _currentTime.CurrentTime; } } }
public static void SendTriggerObjectEventToServer(MapObjectEntity o, TriggerObjectSyncEvent evt) { var mapObject = (MapObjectEntity)o; if (!mapObject.hasTriggerObjectEvent) { mapObject.AddTriggerObjectEvent(new Queue <TriggerObjectSyncEvent>()); } mapObject.triggerObjectEvent.SyncEvents.Enqueue(evt); if (!mapObject.isTriggerObjectEventFlag) { mapObject.isTriggerObjectEventFlag = true; } }
public static void SendLastEvent(MapObjectEntity entity) { var rawObj = entity.rawGameObject.Value; if (!_triggerEvent.ContainsKey(rawObj)) { return; } foreach (var evt in _triggerEvent[rawObj]) { evt.SourceObjectId = entity.entityKey.Value.EntityId; SendTriggerObjectEventToServer(entity, evt); } _triggerEvent[rawObj].Clear(); _triggerEvent.Remove(rawObj); }
protected void LinkGameObjectToSceneObject(MapObjectEntity mapObject, GameObject gameObject) { MapObjectUtility.AddRawGameObject <FracturedGlassyObject>(mapObject, gameObject); var glassyData = mapObject.glassyData; var fo = gameObject.GetComponent <FracturedGlassyObject>(); if (fo != null && glassyData.HasAnyChunkBroken()) { var chunkId = glassyData.GetNextBrokenChunkId(); while (chunkId >= 0) { fo.PutToBrokenState(chunkId); chunkId = glassyData.GetNextBrokenChunkId(chunkId); } } }
private void ProcessBreakChunkEvent(MapObjectEntity mapObject, ChunkSyncEvent evt) { var go = mapObject.rawGameObject.Value; var fracturedGlassyObject = go.GetComponent <FracturedGlassyObject>(); if (fracturedGlassyObject != null) { var data = mapObject.glassyData; var chunkId = evt.ChunkId; if (!data.IsBroken(chunkId)) { fracturedGlassyObject.PutToBrokenState(chunkId); data.SetBroken(chunkId); mapObject.flagImmutability.LastModifyServerTime = _currentTime.CurrentTime; } } }
public MapObject(MapObjectEntity mapObjectEntity, MapObjectMetrics mapObjectMetrics, MapObjectDoor mapObjectDoor) { MapObjectEntity = mapObjectEntity; if (MapObjectEntity.GetType() == typeof(Building)) { ((Building)MapObjectEntity).BuildingLayersButtons.MapObjectMetrics = mapObjectMetrics; } MapObjectMetrics = mapObjectMetrics; MapObjectDoor = mapObjectDoor; MapObjectDoor.MapObjectMetrics = mapObjectMetrics; RectangleInitialization(); if (mapObjectEntity.MapObjectType.TypeOfMapObject == TypeOfMapObject.ROAD) { LineInitialization(); } PositionObjectNameTextBlock(); }
public static MapObjectEntity GetMapObjectOfFracturedHittable(FracturedHittable fracturedHittable) { var testChunkAdpater = fracturedHittable as FracturedObjectChunkAdapter; MapObjectEntity result = null; if (testChunkAdpater != null && testChunkAdpater.FracturedObjectSource != null) { return(GetMapObjectByGameObject(testChunkAdpater.FracturedObjectSource.gameObject)); } var testFracturedChunk = fracturedHittable as FracturedChunk; if (testFracturedChunk != null) { return(GetMapObjectOfFracturedChunk(testFracturedChunk)); } var testFracturedGlassyChunk = fracturedHittable as FracturedGlassyChunk; if (testFracturedGlassyChunk != null) { return(GetMapObjectOfFracturedChunk(testFracturedGlassyChunk)); } var testFracturedObject = fracturedHittable as FracturedObject; if (testFracturedObject != null) { return(GetMapObjectByGameObject(testFracturedObject.gameObject)); } var testGlassyChunkAdapter = fracturedHittable as FracturedGlassyChunkAdapter; if (testGlassyChunkAdapter != null) { return(GetMapObjectByGameObject(testGlassyChunkAdapter.FracturedObjectSource.gameObject)); } return(null); }
protected abstract void OnDeativeObjectActive(int id, MapObjectEntity mapObject, GameObject gameObject);
protected override void OnDeativeObjectActive(int id, MapObjectEntity mapObject, GameObject gameObject) { LinkGameObjectToSceneObject(mapObject, gameObject); MapObjectUtility.RecordMapObj(id, (int)ETriggerObjectType.GlassyObject, mapObject); MapObjectUtility.SendLastEvent(mapObject); }
public void Add(int id, MapObjectEntity obj) { _mapObjDict.Put(id, obj); }
public void Add(int gameObjId, int type, MapObjectEntity mapObj) { _recorders[type].Add(gameObjId, mapObj); }
public static void RecordMapObj(int id, int type, MapObjectEntity entity) { _mapObjectRecorder.Add(id, type, entity); }