public void HandleRequest(IZoneRequest request) { using (var scope = Db.CreateTransaction()) { var x = request.Data.GetOrDefault(k.x, (double)-1); var y = request.Data.GetOrDefault(k.y, (double)-1); var character = request.Session.Character; var player = request.Zone.GetPlayerOrThrow(character); if (x < 0 || y < 0) { x = player.CurrentPosition.intX + 0.5; y = player.CurrentPosition.intY + 0.5; } //optionals var definition = request.Data.GetOrDefault <int>(k.definition); if (definition == 0) { definition = request.Zone.Configuration.TeleportColumn.Definition; } var position = request.Zone.FixZ(new Position(x, y).Center); position.IsValid(request.Zone.Size).ThrowIfFalse(ErrorCodes.IllegalPosition); var eid = (long)request.Data.GetOrDefault <int>(k.eid); //user comfort var idGenerator = eid == 0 ? EntityIDGenerator.Random : EntityIDGenerator.Fix(eid); var teleportColumn = (TeleportColumn)Entity.Factory.Create(definition, idGenerator); var container = SystemContainer.GetByName(k.es_teleport_column); teleportColumn.Parent = container.Eid; var name = request.Data.GetOrDefault <string>(k.name); if (name.IsNullOrEmpty()) { var tpAmountOnZone = request.Zone.Units.OfType <TeleportColumn>().Count(); name = "tp_zone_" + request.Zone.Id + "_" + (tpAmountOnZone + 1); } teleportColumn.Name = name; teleportColumn.Save(); request.Zone.UnitService.AddDefaultUnit(teleportColumn, position, "tpc", false); teleportColumn.AddToZone(request.Zone, position); var result = request.Zone.GetBuildingsDictionaryForCharacter(character); Transaction.Current.OnCommited(() => { Logger.Info(""); Logger.Info("NEW TELEPORT COLUMN EID:" + teleportColumn.Eid); Logger.Info(""); Message.Builder.SetCommand(Commands.ZoneGetBuildings).WithData(result).ToClient(request.Session).Send(); }); scope.Complete(); } }
protected Unit CreateUnit(IDataRecord record) { var eid = record.GetValue <long>("eid"); try { Unit unit; var runtime = record.GetValueOrDefault <bool>("runtime"); if (runtime) { var definition = record.GetValue <int?>("definition") ?? 0; if (definition == 0) { Logger.Error("ZoneUnitReader: definition is null! eid = " + eid); return(null); } unit = _unitHelper.CreateUnit(definition, EntityIDGenerator.Fix(eid)); unit.Owner = record.GetValue <long?>("owner") ?? 0L; unit.Name = record.GetValue <string>("ename"); } else { unit = _unitHelper.LoadUnit(eid); } var orientation = record.GetValue <byte>("orientation"); unit.Orientation = (double)orientation / byte.MaxValue; return(unit); } catch (Exception ex) { Logger.Error("ZoneUnitReader: CreateUnit error. eid = " + eid); Logger.Exception(ex); } return(null); }
protected static Alliance Create(EntityDefault entityDefault, SystemContainer container, AllianceDescription allianceDescription, EntityIDGenerator generator) { var alliance = Factory.Create(entityDefault, generator); alliance.Parent = container.Eid; Repository.Insert(alliance); Db.Query().CommandText("insert into alliances (allianceEID, name, nick, defaultAlliance) values (@eid, @name, @nick, @defaultAlliance)") .SetParameter("@eid", alliance.Eid) .SetParameter("@name", allianceDescription.name) .SetParameter("@nick", allianceDescription.nick) .SetParameter("@defaultAlliance", allianceDescription.isDefault) .ExecuteNonQuery().ThrowIfEqual(0, ErrorCodes.SQLInsertError); return((Alliance)alliance); }
public Item CreateItem(int definition, EntityIDGenerator idGenerator) { return((Item)_entityServices.Factory.Create(definition, idGenerator)); }
public Item CreateItem(EntityDefault entityDefault, EntityIDGenerator idGenerator) { return((Item)_entityServices.Factory.Create(entityDefault, idGenerator)); }
protected static Corporation Create(EntityDefault entityDefault, SystemContainer container, CorporationDescription corporationDescription, EntityIDGenerator generator) { var corporation = Factory.Create(entityDefault, generator); corporation.Parent = container.Eid; corporation.Save(); const string insertCommandText = @"insert into corporations (eid, name, nick, wallet, taxrate, publicProfile, privateProfile,defaultcorp, founder) values (@eid, @name, @nick, @wallet, @taxrate, @publicProfile, @privateProfile,@defaultcorp,@founder)"; Db.Query().CommandText(insertCommandText) .SetParameter("@eid", corporation.Eid) .SetParameter("@name", corporationDescription.name) .SetParameter("@nick", corporationDescription.nick) .SetParameter("@wallet", 0) .SetParameter("@taxrate", corporationDescription.taxRate) .SetParameter("@publicProfile", GenxyConverter.Serialize((Dictionary <string, object>)corporationDescription.publicProfile)) .SetParameter("@privateProfile", GenxyConverter.Serialize((Dictionary <string, object>)corporationDescription.privateProfile)) .SetParameter("@defaultCorp", corporationDescription.isDefault).SetParameter("@founder", corporationDescription.founder) .ExecuteNonQuery().ThrowIfEqual(0, ErrorCodes.SQLInsertError); return((Corporation)corporation); }
public Unit CreateUnit(int definition, EntityIDGenerator idGenerator) { return((Unit)_itemHelper.CreateItem(definition, idGenerator)); }
public Unit CreateUnit(EntityDefault entityDefault, EntityIDGenerator idGenerator) { return((Unit)_itemHelper.CreateItem(entityDefault, idGenerator)); }