public static void AddInstance(WorldObject wo) { Instances.Add(wo); var objDesc = new ObjDesc(wo.SetupTableId, wo.ClothingBase ?? 0, (PaletteTemplate)(wo.PaletteTemplate ?? 0), (float)(wo.Shade ?? 0.0)); if (wo is Creature creature) { objDesc.AddBaseModelData(wo); var equippedObjects = creature.EquippedObjects.Values.OrderBy(i => (int)(i.ClothingPriority ?? 0)).ToList(); foreach (var equippedObject in equippedObjects) { if ((equippedObject.CurrentWieldedLocation & EquipMask.Selectable) != 0) { continue; } objDesc.Add(equippedObject.ClothingBase ?? 0, (PaletteTemplate)(equippedObject.PaletteTemplate ?? 0), (float)(equippedObject.Shade ?? 0.0)); } } wo.PhysicsObj.UpdateObjDesc(objDesc); var r_PhysicsObj = new R_PhysicsObj(wo.PhysicsObj); Buffer.AddInstance(r_PhysicsObj, objDesc); if (UpdateObjs == null) { UpdateObjs = new List <WorldObject>(); } UpdateObjs.Add(wo); }