public override void DoAction(IEventArgs args) { if (index < list.Count) { for (int i = 0; i < 20; i++) { ItemDrop drop = list[index++]; if (drop.cat == (int)ECategory.Vehicle) { VehicleEntityUtility.CreateNewVehicle(args.GameContext.vehicle, drop.id, args.GameContext.session.commonSession.EntityIdGenerator.GetNextEntityId(), GetGround(drop.pos)); break; } else { args.GameContext.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity((ECategory)drop.cat, drop.id, drop.count, GetGround(drop.pos)); } List <ItemDrop> extra = SingletonManager.Get <FreeItemDrop>().GetExtraItems(drop); foreach (ItemDrop e in extra) { args.GameContext.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity((ECategory)e.cat, e.id, e.count, GetGround(drop.pos)); } if (index >= list.Count) { break; } } } }
public override void DoAction(IEventArgs args) { UnitPosition up = pos.Select(args); Contexts con = args.GameContext; VehicleEntityUtility.CreateNewVehicle(con.vehicle, FreeUtil.ReplaceInt(carId, args), con.session.commonSession.EntityIdGenerator.GetNextEntityId(), map.position.UnityPositionUtil.ToVector3(up)); }
public void ExecuteCreateVehicle(Contexts contexts) { if (_vehicleCreateRequests.Count > 0) { var req = _vehicleCreateRequests.Dequeue(); var idGenerator = contexts.session.commonSession.EntityIdGenerator; for (int i = 0; i < req.Count; ++i) { var id = idGenerator.GetNextEntityId(); VehicleEntityUtility.CreateNewVehicle(contexts.vehicle, req.VehicleId, id, req.Position); } } }
public void OnGamePlay() { if (!loadConfig && dropList.IsEmpty()) { foreach (MapConfigPoints.ID_Point point in MapConfigPoints.current.IDPints) { dropList.AddRange(SingletonManager.Get <FreeItemDrop>().GetDropItems(point.ID, _contexts.session.commonSession.RoomInfo.MapId)); } loadConfig = true; } if (loadConfig && dropList.IsEmpty()) { return; } if (_contexts.player.count > 0 && !loadComplete) { if (index >= dropList.Count) { loadComplete = true; return; } for (int i = 0; i < 20; i++) { ItemDrop drop = dropList[index++]; if (drop.cat == (int)ECategory.Vehicle) { VehicleEntityUtility.CreateNewVehicle(_contexts.vehicle, drop.id, _contexts.session.commonSession.EntityIdGenerator.GetNextEntityId(), GetGround(drop.pos)); break; } else { _contexts.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity((ECategory)drop.cat, drop.id, drop.count, GetGround(drop.pos)); List <ItemDrop> extra = SingletonManager.Get <FreeItemDrop>().GetExtraItems(drop); foreach (ItemDrop e in extra) { _contexts.session.entityFactoryObject.SceneObjectEntityFactory.CreateSimpleObjectEntity((ECategory)e.cat, e.id, e.count, GetGround(drop.pos)); } } } } }