private void Transform_V1(RoomData backingData, Room newEntity, XElement docRoot, bool older) { if (!older) { //We added dim mods in v1 var dimModelLength = docRoot.Element("LiveData").Element("DimensionalModel").GetSafeAttributeValue <int>("Length"); var dimModelHeight = docRoot.Element("LiveData").Element("DimensionalModel").GetSafeAttributeValue <int>("Height"); var dimModelWidth = docRoot.Element("LiveData").Element("DimensionalModel").GetSafeAttributeValue <int>("Width"); backingData.Model = new DimensionalModel(dimModelLength, dimModelHeight, dimModelWidth); newEntity.Model = backingData.Model; //Added medium, zone and wall materials in v1 var mediumId = docRoot.Element("BackingData").GetSafeAttributeValue <long>("Medium"); backingData.Medium = ReferenceWrapper.GetOne <IMaterial>(mediumId); var zoneId = docRoot.Element("BackingData").GetSafeAttributeValue <long>("Zone"); backingData.ZoneAffiliation = ReferenceWrapper.GetOne <IZone>(zoneId); backingData.Borders = backingData.DeserializeBorders(docRoot.Element("LiveData").GetSafeElementValue("Borders")); } else //what if we're older { //Get it from the db var backD = DataWrapper.GetOne <RoomData>(backingData.ID); backingData.Model = backD.Model; newEntity.Model = backD.Model; backingData.Borders = backD.Borders; backingData.Medium = backD.Medium; backingData.ZoneAffiliation = backD.ZoneAffiliation; } }
public ActionResult AddCharacter(string newName, string newSurName, string newGender, long raceId, StaffRank chosenRole = StaffRank.Player) { string message = string.Empty; var userId = User.Identity.GetUserId(); var model = new ManageCharactersViewModel { authedUser = UserManager.FindById(userId) }; var newChar = new Character(); newChar.Name = newName; newChar.SurName = newSurName; newChar.Gender = newGender; var race = ReferenceWrapper.GetOne <Race>(raceId); if (race != null) { newChar.RaceData = race; } if (User.IsInRole("Admin")) { newChar.GamePermissionsRank = chosenRole; } else { newChar.GamePermissionsRank = StaffRank.Player; } message = model.authedUser.GameAccount.AddCharacter(newChar); return(RedirectToAction("ManageCharacters", new { Message = message })); }
/// <summary> /// Fills a data object with data from a data row /// </summary> /// <param name="dr">the data row to fill from</param> public override void Fill(DataRow dr) { ID = DataUtility.GetFromDataRow <long>(dr, "ID"); Created = DataUtility.GetFromDataRow <DateTime>(dr, "Created"); LastRevised = DataUtility.GetFromDataRow <DateTime>(dr, "LastRevised"); Name = DataUtility.GetFromDataRow <string>(dr, "Name"); var armsId = DataUtility.GetFromDataRow <long>(dr, "ArmsId"); var armsAmount = DataUtility.GetFromDataRow <short>(dr, "ArmsAmount"); Arms = new Tuple <IInanimateData, short>(DataWrapper.GetOne <InanimateData>(armsId), armsAmount); var LegsId = DataUtility.GetFromDataRow <long>(dr, "LegsId"); var LegsAmount = DataUtility.GetFromDataRow <short>(dr, "LegsAmount"); Legs = new Tuple <IInanimateData, short>(DataWrapper.GetOne <InanimateData>(LegsId), LegsAmount); var torsoId = DataUtility.GetFromDataRow <long>(dr, "Torso"); Torso = DataWrapper.GetOne <InanimateData>(torsoId); var headId = DataUtility.GetFromDataRow <long>(dr, "Head"); Head = DataWrapper.GetOne <InanimateData>(headId); var bodyPartJson = DataUtility.GetFromDataRow <string>(dr, "BodyParts"); BodyParts = DeserializeBodyParts(bodyPartJson); DietaryNeeds = (DietType)DataUtility.GetFromDataRow <short>(dr, "DietaryNeeds"); var bloodId = DataUtility.GetFromDataRow <long>(dr, "SanguinaryMaterial"); SanguinaryMaterial = ReferenceWrapper.GetOne <Material>(bloodId); var visionLow = DataUtility.GetFromDataRow <short>(dr, "VisionRangeLow"); var visionHigh = DataUtility.GetFromDataRow <short>(dr, "VisionRangeHigh"); VisionRange = new Tuple <short, short>(visionLow, visionHigh); var tempLow = DataUtility.GetFromDataRow <short>(dr, "TemperatureToleranceLow"); var tempHigh = DataUtility.GetFromDataRow <short>(dr, "TemperatureToleranceHigh"); TemperatureTolerance = new Tuple <short, short>(tempLow, tempHigh); Breathes = (RespiratoryType)DataUtility.GetFromDataRow <short>(dr, "Breathes"); TeethType = (DamageType)DataUtility.GetFromDataRow <short>(dr, "TeethType"); var startRoomId = DataUtility.GetFromDataRow <long>(dr, "StartingLocation"); StartingLocation = DataWrapper.GetOne <RoomData>(startRoomId); var recallRoomId = DataUtility.GetFromDataRow <long>(dr, "EmergencyLocation"); EmergencyLocation = DataWrapper.GetOne <RoomData>(recallRoomId); }
public DimensionalModel(int length, int height, int width, long backingDataId, string compJson) { Length = length; Height = height; Width = width; Composition = DeserializeMaterialCompositions(compJson); ModelBackingData = ReferenceWrapper.GetOne <DimensionalModelData>(backingDataId); }
public DimensionalModel(int length, int height, int width, long backingDataId, IDictionary <string, IMaterial> materialComps) { Length = length; Height = height; Width = width; Composition = materialComps; ModelBackingData = ReferenceWrapper.GetOne <DimensionalModelData>(backingDataId); }
public string[] GetDimensionalData(long id) { var model = ReferenceWrapper.GetOne <IDimensionalModelData>(id); if (model == null) { return(new string[0]); } return(model.ModelPlanes.Select(plane => plane.TagName).Distinct().ToArray()); }
public string GetEntityModelView(long modelId, short yaw, short pitch, short roll) { var model = ReferenceWrapper.GetOne <IDimensionalModelData>(modelId); if (model == null) { return(String.Empty); } return(model.ViewFlattenedModel(pitch, yaw, roll)); }
/// <summary> /// Fills a data object with data from a data row /// </summary> /// <param name="dr">the data row to fill from</param> public override void Fill(DataRow dr) { ID = DataUtility.GetFromDataRow <long>(dr, "ID"); Created = DataUtility.GetFromDataRow <DateTime>(dr, "Created"); LastRevised = DataUtility.GetFromDataRow <DateTime>(dr, "LastRevised"); Name = DataUtility.GetFromDataRow <string>(dr, "Name"); SurName = DataUtility.GetFromDataRow <string>(dr, "SurName");; Gender = DataUtility.GetFromDataRow <string>(dr, "Gender");; var raceId = DataUtility.GetFromDataRow <long>(dr, "Race");; RaceData = ReferenceWrapper.GetOne <Race>(raceId); }
/// <summary> /// Create model serialized from existing xml with a valid ID from the database /// </summary> /// <param name="dataId">the data id</param> /// <param name="modelXML">JSON of model planes (all 11 11x11 planes)</param> public DimensionalModelData(long dataId, string modelJson) { ModelPlanes = new HashSet <IDimensionalModelPlane>(); var backingModel = ReferenceWrapper.GetOne <DimensionalModelData>(dataId); ID = backingModel.ID; Name = backingModel.Name; Created = backingModel.Created; LastRevised = backingModel.LastRevised; ModelType = backingModel.ModelType; DeserializeModel(modelJson); }
private IDictionary <IMaterial, short> DeserializeCompositions(string compJson) { var compositions = new Dictionary <IMaterial, short>(); dynamic comps = JsonConvert.DeserializeObject(compJson); foreach (dynamic comp in comps) { long compId = long.Parse(comp.Name); short amount = comp.Value; compositions.Add(ReferenceWrapper.GetOne <Material>(compId), amount); } return(compositions); }
private void Transform_V1(Character backingData, Player newEntity, XElement docRoot, bool older) { if (!older) { // We added Race in v1 as well var raceID = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <long>("ID"); var raceHeadID = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <long>("Head"); var raceTorsoID = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <long>("Torso"); var raceSanguinaryMaterialID = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <long>("SanguinaryMaterial"); var raceBreathes = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <short>("Breathes"); var raceDietaryNeeds = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <short>("DietaryNeeds"); var raceEmergencyLocationID = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <long>("EmergencyLocation"); var raceStartingLocationID = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <long>("StartingLocation"); var raceTeethType = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <short>("TeethType"); var raceTemperatureToleranceLow = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <short>("TemperatureToleranceLow"); var raceTemperatureToleranceHigh = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <short>("TemperatureToleranceHigh"); var raceVisionRangeLow = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <short>("VisionRangeLow"); var raceVisionRangeHigh = docRoot.Element("BackingData").Element("Race").GetSafeAttributeValue <short>("VisionRangeHigh"); var raceArmsId = docRoot.Element("BackingData").Element("Race").Element("Arms").GetSafeAttributeValue <long>("ID"); var raceArmsAmount = docRoot.Element("BackingData").Element("Race").Element("Arms").GetSafeAttributeValue <short>("Amount"); var raceLegsId = docRoot.Element("BackingData").Element("Race").Element("Legs").GetSafeAttributeValue <long>("ID"); var raceLegsAmount = docRoot.Element("BackingData").Element("Race").Element("Legs").GetSafeAttributeValue <short>("Amount"); var raceBodyPartsJson = docRoot.Element("BackingData").Element("Race").GetSafeElementValue("BodyParts"); var raceData = new Race(raceBodyPartsJson); raceData.ID = raceID; raceData.Head = DataWrapper.GetOne <InanimateData>(raceHeadID); raceData.Torso = DataWrapper.GetOne <InanimateData>(raceTorsoID); raceData.SanguinaryMaterial = ReferenceWrapper.GetOne <Material>(raceSanguinaryMaterialID); raceData.Breathes = (RespiratoryType)raceBreathes; raceData.DietaryNeeds = (DietType)raceDietaryNeeds; raceData.EmergencyLocation = DataWrapper.GetOne <RoomData>(raceEmergencyLocationID); raceData.StartingLocation = DataWrapper.GetOne <RoomData>(raceStartingLocationID); raceData.TeethType = (DamageType)raceDietaryNeeds; raceData.TemperatureTolerance = new Tuple <short, short>(raceTemperatureToleranceLow, raceTemperatureToleranceHigh); raceData.VisionRange = new Tuple <short, short>(raceVisionRangeLow, raceVisionRangeHigh); raceData.Arms = new Tuple <IInanimateData, short>(DataWrapper.GetOne <InanimateData>(raceArmsId), raceArmsAmount); raceData.Legs = new Tuple <IInanimateData, short>(DataWrapper.GetOne <InanimateData>(raceLegsId), raceLegsAmount); } else //what if we're older { //Get it from the db var backD = DataWrapper.GetOne <Character>(backingData.ID); backingData.RaceData = backD.RaceData; } }
public IDictionary <string, IMaterial> DeserializeBorders(string json) { var returntionary = new Dictionary <string, IMaterial>(); dynamic borders = JsonConvert.DeserializeObject(json); foreach (dynamic border in borders) { long objId = long.Parse(border.Value); string name = border.Key; var material = ReferenceWrapper.GetOne <IMaterial>(objId); returntionary.Add(name, material); } return(returntionary); }
/// <summary> /// Fills a data object with data from a data row /// </summary> /// <param name="dr">the data row to fill from</param> public override void Fill(DataRow dr) { ID = DataUtility.GetFromDataRow <long>(dr, "ID"); Created = DataUtility.GetFromDataRow <DateTime>(dr, "Created"); LastRevised = DataUtility.GetFromDataRow <DateTime>(dr, "LastRevised"); Name = DataUtility.GetFromDataRow <string>(dr, "Name"); var mediumId = DataUtility.GetFromDataRow <long>(dr, "Medium"); Medium = ReferenceWrapper.GetOne <IMaterial>(mediumId); var zoneId = DataUtility.GetFromDataRow <long>(dr, "Zone"); ZoneAffiliation = ReferenceWrapper.GetOne <IZone>(zoneId); Borders = DeserializeBorders(DataUtility.GetFromDataRow <string>(dr, "Borders")); Model = new DimensionalModel(dr); }
/// <summary> /// Find a parameter target in reference data /// </summary> /// <typeparam name="T">the system type of the data</typeparam> /// <param name="commandType">the system type of the command</param> /// <param name="currentNeededParm">the conditions for the parameter we're after</param> public void SeekInReferenceData <T>(Type commandType, CommandParameterAttribute currentNeededParm) where T : IReferenceData { var internalCommandString = CommandStringRemainder.ToList(); var parmWords = internalCommandString.Count(); while (parmWords > 0) { var currentParmString = string.Join(" ", RemoveGrammaticalNiceities(internalCommandString.Take(parmWords))); if (!currentNeededParm.MatchesPattern(currentParmString)) { parmWords--; continue; } var validObject = ReferenceWrapper.GetOne <T>(currentParmString); if (validObject != null && !validObject.Equals(default(T))) { switch (currentNeededParm.Usage) { case CommandUsage.Supporting: Supporting = validObject; break; case CommandUsage.Subject: Subject = validObject; break; case CommandUsage.Target: Target = validObject; break; } CommandStringRemainder = CommandStringRemainder.Skip(parmWords); return; } parmWords--; } }
private IDictionary <string, IMaterial> DeserializeMaterialCompositions(string compJson) { var composition = new Dictionary <string, IMaterial>(); dynamic comps = JsonConvert.DeserializeObject(compJson); foreach (dynamic comp in comps) { string sectionName = comp.Name; long materialId = comp.Value; var material = ReferenceWrapper.GetOne <Material>(materialId); if (material != null && !string.IsNullOrWhiteSpace(sectionName)) { composition.Add(sectionName, material); } } return(composition); }
/// <summary> /// Fills a data object with data from a data row /// </summary> /// <param name="dr">the data row to fill from</param> public override void Fill(DataRow dr) { ID = DataUtility.GetFromDataRow <long>(dr, "ID"); Created = DataUtility.GetFromDataRow <DateTime>(dr, "Created"); LastRevised = DataUtility.GetFromDataRow <DateTime>(dr, "LastRevised"); Name = DataUtility.GetFromDataRow <string>(dr, "Name"); SurName = DataUtility.GetFromDataRow <string>(dr, "SurName");; Gender = DataUtility.GetFromDataRow <string>(dr, "Gender");; StillANoob = DataUtility.GetFromDataRow <bool>(dr, "StillANoob");; var raceId = DataUtility.GetFromDataRow <long>(dr, "Race");; RaceData = ReferenceWrapper.GetOne <Race>(raceId); AccountHandle = DataUtility.GetFromDataRow <string>(dr, "AccountHandle"); GamePermissionsRank = DataUtility.GetFromDataRow <StaffRank>(dr, "GamePermissionsRank"); LastKnownLocation = DataUtility.GetFromDataRow <string>(dr, "LastKnownLocation"); LastKnownLocationType = DataUtility.GetFromDataRow <string>(dr, "LastKnownLocationType"); }
public DimensionalModel(global::System.Data.DataRow dr) { Length = DataUtility.GetFromDataRow <int>(dr, "DimensionalModelLength"); Height = DataUtility.GetFromDataRow <int>(dr, "DimensionalModelHeight"); Width = DataUtility.GetFromDataRow <int>(dr, "DimensionalModelWidth"); long outDimModId = DataUtility.GetFromDataRow <long>(dr, "DimensionalModelID"); if (outDimModId > 0) { ModelBackingData = ReferenceWrapper.GetOne <DimensionalModelData>(outDimModId); string materialComps = DataUtility.GetFromDataRow <string>(dr, "DimensionalModelMaterialCompositions"); Composition = DeserializeMaterialCompositions(materialComps); } else //0 dimensional models don't have an actual model { ModelBackingData = new DimensionalModelData(); ModelBackingData.ModelType = DimensionalModelType.None; Composition = new Dictionary <string, IMaterial>(); } }