private void onServerObjectItemAdded(DataEntityHandle handle, ServerObjectItemData obj) { IslandTargetGroupMMOItem islandTargetGroupMMOItem = obj.Item as IslandTargetGroupMMOItem; if (islandTargetGroupMMOItem != null) { onIslandGroupMMOItemAdded(handle, obj, islandTargetGroupMMOItem); return; } IslandTargetMMOItem islandTargetMMOItem = obj.Item as IslandTargetMMOItem; if (islandTargetMMOItem != null) { onIslandTargetMMOItemAdded(handle, obj, islandTargetMMOItem); return; } IslandTargetPlaygroundStatsMMOItem islandTargetPlaygroundStatsMMOItem = obj.Item as IslandTargetPlaygroundStatsMMOItem; if (islandTargetPlaygroundStatsMMOItem != null) { onIslandTargetPlaygroundStatsMMOItemAdded(handle, obj, islandTargetPlaygroundStatsMMOItem); } }
private void loadExistingWorldExperiences() { DataEntityHandle[] entitiesByType = dataEntityCollection.GetEntitiesByType <ServerObjectItemData>(); foreach (DataEntityHandle handle in entitiesByType) { ServerObjectItemData component = dataEntityCollection.GetComponent <ServerObjectItemData>(handle); if (component.Item.Id.Parent != CPMMOItemId.CPMMOItemParent.WORLD) { continue; } CPMMOItem item = component.Item; if (item is ConsumableItem) { ConsumableItem consumableItem = (ConsumableItem)item; PrefabContentKey propExperiencePathFromPropId = getPropExperiencePathFromPropId(consumableItem.Type); if (propExperiencePathFromPropId != null && !string.IsNullOrEmpty(propExperiencePathFromPropId.Key)) { ServerObjectPositionData component2 = dataEntityCollection.GetComponent <ServerObjectPositionData>(handle); CoroutineRunner.Start(loadWorldExperience(consumableItem, component2.Position), this, "loadWorldExperience"); } } } }
private void onIslandTargetPlaygroundStatsMMOItemAdded(DataEntityHandle handle, ServerObjectItemData serverObjectItemData, IslandTargetPlaygroundStatsMMOItem item) { if (!dataModelHandleListenersMap.ContainsKey(handle) && item.GetPath() == base.transform.GetPath()) { dataModelHandleListenersMap[handle] = serverObjectItemData; serverObjectItemData.ItemChanged += onIslandTargetsPlaygroundStatsChanged; dispatcher.DispatchEvent(new IslandTargetsEvents.StatsUpdated(item.GetBestWinStreakToday(), item.GetCurrentWinStreakToday())); } }
private bool OnItemDestroyed(WorldServiceEvents.ItemDestroyed evt) { dataEntityCollection.RemoveEntityByName(ServerObjectItemData.GetEntityName(evt.ItemId)); return(false); }
public ServerObjectTracker(PropService propService, DataEntityHandle handle, ServerObjectItemData serverObjectItemData) { this.serverObjectItemData = serverObjectItemData; this.propService = propService; this.handle = handle; DataEntityCollection dataEntityCollection = Service.Get <CPDataEntityCollection>(); if (dataEntityCollection.TryGetComponent <ServerObjectPositionData>(handle, out var component)) { spawnObject(component.Position); return; } dataEntityCollection.EventDispatcher.AddListener <DataEntityEvents.ComponentAddedEvent <ServerObjectPositionData> >(onComponentAdded); dataEntityCollection.EventDispatcher.AddListener <DataEntityEvents.EntityRemovedEvent>(onItemRemoved); }