diff --git a/ReallifeGamemode.Client/Interaction/ClotheShop.ts b/ReallifeGamemode.Client/Interaction/ClotheShop.ts
deleted file mode 100644
index 79af217d..00000000
--- a/ReallifeGamemode.Client/Interaction/ClotheShop.ts
+++ /dev/null
@@ -1,233 +0,0 @@
-import * as NativeUI from 'NativeUI';
-
-const UIMenu = NativeUI.Menu;
-const UIMenuItem = NativeUI.UIMenuItem;
-const UIMenuListItem = NativeUI.UIMenuListItem;
-const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
-const BadgeStyle = NativeUI.BadgeStyle;
-const Point = NativeUI.Point;
-const ItemsCollection = NativeUI.ItemsCollection;
-const Color = NativeUI.Color;
-
-let screenRes = mp.game.graphics.getScreenResolution(0, 0);
-let saveItem = new UIMenuItem("Bestätigen", "");
-saveItem.BackColor = new Color(13, 71, 161);
-saveItem.HighlightedBackColor = new Color(25, 118, 210);
-
-let cancelItem = new UIMenuItem("Abbrechen", "");
-cancelItem.BackColor = new Color(213, 0, 0);
-cancelItem.HighlightedBackColor = new Color(229, 57, 53);
-
-export default function clotheShopList(globalData: GlobalData) {
-
- const categoryTitles = {
- clothes: {
- 1: "Masks",
- 2: "Hair Styles",
- 3: "Torsos",
- 4: "Legs",
- 5: "Bags and Parachutes",
- 6: "Shoes",
- 7: "Accessories",
- 8: "Undershirts",
- 9: "Body Armors",
- 10: "Decals",
- 11: "Tops"
- },
-
- props: {
- 0: "Hats",
- 1: "Glasses",
- 2: "Ears",
- 6: "Watches",
- 7: "Bracelets"
- }
- };
-
- const localPlayer = mp.players.local;
-
- let mainMenu = null;
- let categoryMenus = [];
- let clothingData = {} as any;
- let currentMenuIdx = -1;
- let menuTransition = false; // workaround for ItemSelect event being called twice between menu transitions
- let lastClothing = null;
-
- function addClothingItems(type, bannerSprite, key, value) {
- mainMenu.AddItem(new UIMenuItem(categoryTitles[type][key], `${type === "props" ? "Prop category." : "Clothing category."}`));
-
- // Create category menu
- const categoryMenu = new UIMenu("", categoryTitles[type][key].toUpperCase(), new Point(0, 0), bannerSprite.library, bannerSprite.texture);
- categoryMenu.Visible = false;
-
- // Fill it
- const itemDescription = (type === "props" ? "Prop item." : "Clothing item.");
-
- for (const item of value) {
- const tempItem = new UIMenuItem(item.name, itemDescription);
- tempItem.SetRightLabel(`${Number.isInteger(item.price) ? `$${item.price}` : "FREE"}`);
-
- categoryMenu.AddItem(tempItem);
- }
-
- categoryMenus.push({
- menu: categoryMenu,
- type: type,
- slotIdx: Number(key)
- });
- }
-
- function submenuItemChangeHandler(newIndex) {
- const currentMenu = categoryMenus[currentMenuIdx];
- const currentItem = clothingData[currentMenu.type][currentMenu.slotIdx][newIndex];
-
- switch (currentMenu.type) {
- case "clothes":
- localPlayer.setComponentVariation(currentMenu.slotIdx, currentItem.drawable, currentItem.texture, 2);
- break;
-
- case "props":
- if (currentItem.drawable === -1) {
- localPlayer.clearProp(currentMenu.slotIdx);
- } else {
- localPlayer.setPropIndex(currentMenu.slotIdx, currentItem.drawable, currentItem.texture, true);
- }
- break;
- }
- }
-
- function resetPreview() {
- if (lastClothing) {
- switch (lastClothing.type) {
- case "clothes":
- localPlayer.setComponentVariation(lastClothing.slotIdx, lastClothing.drawable, lastClothing.texture, 2);
- break;
-
- case "props":
- if (lastClothing.drawable === -1) {
- localPlayer.clearProp(lastClothing.slotIdx);
- } else {
- localPlayer.setPropIndex(lastClothing.slotIdx, lastClothing.drawable, lastClothing.texture, true);
- }
- break;
- }
-
- lastClothing = null;
- }
- }
-
- mp.events.add("clothesMenu:updateData", (jsonBannerSprite, jsonData) => {
- var bannerSprite = JSON.parse(jsonBannerSprite);
- var data = JSON.parse(jsonData);
-
- // Default menu banner
- if (bannerSprite == null) {
- bannerSprite = {
- library: "commonmenu",
- texture: "interaction_bgd"
- };
- } else if (bannerSprite == 1) {
- bannerSprite = {
- library: "shopui_title_lowendfashion",
- texture: "shopui_title_lowendfashion"
- };
- } else if (bannerSprite == 2) {
- bannerSprite = {
- library: "shopui_title_midfashion",
- texture: "shopui_title_midfashion"
- };
- } else if (bannerSprite == 3) {
- bannerSprite = {
- library: "shopui_title_highendfashion",
- texture: "shopui_title_highendfashion"
- };
- }
- // Hide the chat
- mp.gui.chat.show(false);
-
- // Reset some variables
- categoryMenus = [];
- currentMenuIdx = -1;
- menuTransition = false;
- lastClothing = null;
-
- // Create a new main menu
- mainMenu = new UIMenu("", "SELECT A CATEGORY", new Point(0, 0), bannerSprite.library, bannerSprite.texture);
- mainMenu.Visible = true;
-
- // Update clothingData
- clothingData = data;
-
- // Add clothes
- for (const [key, value] of Object.entries(clothingData)) addClothingItems("clothes", bannerSprite, key, value);
-
- // Add props
- // for (const [key, value] of Object.entries(clothingData.props)) addClothingItems("props", bannerSprite, key, value);
-
- // Submenu events
- for (const item of categoryMenus) {
- // Preview hovering item
- item.menu.IndexChange.on(submenuItemChangeHandler);
-
- // Buy hovering item
- item.menu.ItemSelect.on((selectedItem, itemIndex) => {
- if (menuTransition) {
- menuTransition = false;
- return;
- }
-
- const currentMenu = categoryMenus[currentMenuIdx];
- const currentItem = clothingData[currentMenu.type][currentMenu.slotIdx][itemIndex];
- mp.events.callRemote("buyClothingItem", currentMenu.type, currentMenu.slotIdx, currentItem.texture, currentItem.drawable, currentItem.price);
- });
-
- // Reset preview when player backs out of category menu
- item.menu.MenuClose.on(() => {
- resetPreview();
-
- currentMenuIdx = -1;
- mainMenu.Visible = true;
- });
- }
-
- // Main menu events
- mainMenu.ItemSelect.on((selectedItem, itemIndex) => {
- const nextMenu = categoryMenus[itemIndex];
- const slot = Number(nextMenu.slotIdx);
-
- lastClothing = {
- type: nextMenu.type,
- slotIdx: slot,
- drawable: (nextMenu.type === "props" ? localPlayer.getPropIndex(slot) : localPlayer.getDrawableVariation(slot)),
- texture: (nextMenu.type === "props" ? localPlayer.getPropTextureIndex(slot) : localPlayer.getTextureVariation(slot))
- };
-
- currentMenuIdx = itemIndex;
- mainMenu.Visible = false;
- nextMenu.menu.Visible = true;
- menuTransition = true;
-
- submenuItemChangeHandler(nextMenu.menu.CurrentSelection);
- });
-
- mainMenu.MenuClose.on(() => {
- mp.gui.chat.show(true);
-
- currentMenuIdx = -1;
- lastClothing = null;
- });
- });
-
- mp.events.add("clothesMenu:updateLast", (drawable, texture) => {
- if (lastClothing) {
- lastClothing.drawable = drawable;
- lastClothing.texture = texture;
- }
- });
-
- mp.events.add("clothesMenu:close", () => {
- if (currentMenuIdx !== -1) categoryMenus[currentMenuIdx].menu.Close();
- if (mainMenu && mainMenu.Visible) mainMenu.Close();
- });
-
-}
\ No newline at end of file
diff --git a/ReallifeGamemode.Client/Interaction/clothes/ClotheShop.ts b/ReallifeGamemode.Client/Interaction/clothes/ClotheShop.ts
new file mode 100644
index 00000000..efa23133
--- /dev/null
+++ b/ReallifeGamemode.Client/Interaction/clothes/ClotheShop.ts
@@ -0,0 +1,393 @@
+import * as NativeUI from 'NativeUI';
+import maleTops from "./male_tops.json";
+import maleShoes from "./male_shoes.json";
+import maleLegs from "./male_legs.json";
+import maleUndershirts from "./male_undershirts.json";
+import maleAccessoires from "./male_accessories.json";
+import male_combination from "./male_torso_top_combination.json";
+import playerBlips from '../../Gui/blips.js';
+
+const UIMenu = NativeUI.Menu;
+const UIMenuItem = NativeUI.UIMenuItem;
+const UIMenuListItem = NativeUI.UIMenuListItem;
+const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
+const BadgeStyle = NativeUI.BadgeStyle;
+const Point = NativeUI.Point;
+const ItemsCollection = NativeUI.ItemsCollection;
+const Color = NativeUI.Color;
+
+let screenRes = mp.game.graphics.getScreenResolution(0, 0);
+let saveItem = new UIMenuItem("Bestätigen", "");
+saveItem.BackColor = new Color(13, 71, 161);
+saveItem.HighlightedBackColor = new Color(25, 118, 210);
+
+let cancelItem = new UIMenuItem("Abbrechen", "");
+cancelItem.BackColor = new Color(213, 0, 0);
+cancelItem.HighlightedBackColor = new Color(229, 57, 53);
+
+export default function clotheShopList(globalData: GlobalData) {
+ const categoryTitles = {
+ clothes: {
+ 1: "Masks",
+ 2: "Hair Styles",
+ 3: "Torsos",
+ 4: "Legs",
+ 5: "Bags and Parachutes",
+ 6: "Shoes",
+ 7: "Accessories",
+ 8: "Undershirts",
+ 9: "Body Armors",
+ 10: "Decals",
+ 11: "Tops"
+ },
+
+ props: {
+ 0: "Hats",
+ 1: "Glasses",
+ 2: "Ears",
+ 6: "Watches",
+ 7: "Bracelets"
+ }
+ };
+
+ const localPlayer = mp.players.local;
+ var playerPos;
+ var myVar;
+
+ let mainMenu = null;
+ let categoryMenus = [];
+ let clothingData = [];
+ let currentMenuIdx = -1;
+ let menuTransition = false; // workaround for ItemSelect event being called twice between menu transitions
+ let lastClothing = null;
+
+ function getClothingName(key, ClotheId) {
+ var textures = []
+ switch (key) {
+ case 11:
+ for (var i = 0; i < Object.keys(maleTops[ClotheId]).length; i++) {
+ if (maleTops[ClotheId][i].Localized != "NULL") {
+ for (var x = 0; x < Object.keys(male_combination.combination).length; x++) {
+ if (male_combination.combination[x].Top == ClotheId) {
+ for (var y = 0; y < Object.keys(maleUndershirts[male_combination.combination[x].Undershirt]).length; y++) {
+ if (maleUndershirts[male_combination.combination[x].Undershirt][y].Localized != "NULL") {
+ const newData = {
+ id: i,
+ data: [maleTops[ClotheId][i]],
+ torso: [male_combination.combination[x].Torso],
+ undershirt: [male_combination.combination[x].Undershirt, maleUndershirts[male_combination.combination[x].Undershirt][y], y]
+ }
+ textures.push(newData);
+ }
+ }
+ }
+ }
+ }
+ }
+ break;
+ case 6:
+ for (var i = 0; i < Object.keys(maleShoes[ClotheId]).length; i++) {
+ if (maleShoes[ClotheId][i].Localized != "NULL") {
+ const newData = {
+ id: i,
+ data: [maleShoes[ClotheId][i]]
+ }
+ textures.push(newData);
+ }
+ }
+ break;
+ case 4:
+ for (var i = 0; i < Object.keys(maleLegs[ClotheId]).length; i++) {
+ if (maleLegs[ClotheId][i].Localized != "NULL") {
+ const newData = {
+ id: i,
+ data: [maleLegs[ClotheId][i]]
+ }
+ textures.push(newData);
+ }
+ }
+ break;
+ case 7:
+ for (var i = 0; i < Object.keys(maleAccessoires[ClotheId]).length; i++) {
+ if (maleAccessoires[ClotheId][i].Localized != "NULL") {
+ const newData = {
+ id: i,
+ data: [maleAccessoires[ClotheId][i]]
+ }
+ textures.push(newData);
+ }
+ }
+ break;
+ }
+ return textures;
+ }
+
+ function addClothingItems(type, bannerSprite, key, value) {
+ var categoryMenu;
+ var cloth = [];
+ var tx = [];
+
+ if (Object.keys(categoryMenus).length > 0) {
+ for (var i = 0; i < categoryMenus.length; i++) {
+ if (categoryMenus[i].slotIdx == key) {
+ return;
+ }
+ }
+ mainMenu.AddItem(new UIMenuItem(categoryTitles[type][key], `${type === "props" ? "Prop category." : "Clothing category."}`));
+ // Create category menu
+ categoryMenu = new UIMenu("", categoryTitles[type][key].toUpperCase(), new Point(0, 0), bannerSprite.library, bannerSprite.texture);
+ categoryMenu.Visible = false;
+ } else {
+ mainMenu.AddItem(new UIMenuItem(categoryTitles[type][key], `${type === "props" ? "Prop category." : "Clothing category."}`));
+ // Create category menu
+ categoryMenu = new UIMenu("", categoryTitles[type][key].toUpperCase(), new Point(0, 0), bannerSprite.library, bannerSprite.texture);
+ categoryMenu.Visible = false;
+ }
+
+ mainMenu.Item
+
+ // Fill it
+
+ for (const item of value) {
+ if (item.ComponentId == key) {
+ var txData = getClothingName(key, item.ClotheId);
+
+ for (const x of txData) {
+ var itemDescription = (key === 11 ? mp.game.ui.getLabelText(x.undershirt[1].GXT) : "Clothing item.");
+ if (itemDescription == "NULL") {
+ itemDescription = "Clothing item.";
+ }
+ const tempItem = new UIMenuItem(mp.game.ui.getLabelText(x.data[0].GXT), itemDescription);
+
+ tempItem.SetRightLabel(`${item.Price > 0 ? `$${item.Price}` : "FREE"}`);
+
+ categoryMenu.AddItem(tempItem);
+
+ cloth.push(item);
+ tx.push(x);
+ }
+ }
+ }
+
+ categoryMenus.push({
+ menu: categoryMenu,
+ type: type,
+ slotIdx: Number(key),
+ item: cloth,
+ texture: tx
+ });
+ }
+
+ function submenuItemChangeHandler(newIndex) {
+ const currentMenu = categoryMenus[currentMenuIdx];
+ const currentItem = currentMenu.item[newIndex];
+ const currentTexture = currentMenu.texture[newIndex].id;
+ //const currentItem = clothingData[currentMenu.type][currentMenu.slotIdx][newIndex];
+
+ if (currentMenu.slotIdx == 11) {
+ const currentTorso = currentMenu.texture[newIndex].torso[0];
+ const currentUndershirt = currentMenu.texture[newIndex].undershirt;
+ mp.players.local.setComponentVariation(3, currentTorso, 0, 2); //set Torso
+ mp.players.local.setComponentVariation(8, currentUndershirt[0], currentUndershirt[2], 2); //set Undershirt
+ mp.players.local.setComponentVariation(currentMenu.slotIdx, currentItem.ClotheId, currentTexture, 2); //set Top
+ } else {
+ mp.players.local.setComponentVariation(currentMenu.slotIdx, currentItem.ClotheId, currentTexture, 2);
+ }
+
+ /*
+ case "props":
+ if (currentItem.drawable === -1) {
+ localPlayer.clearProp(currentMenu.slotIdx);
+ } else {
+ localPlayer.setPropIndex(currentMenu.slotIdx, currentItem.drawable, currentItem.texture, true);
+ }
+ break;
+ */
+ }
+
+ function resetPreview() {
+ if (lastClothing) {
+ switch (lastClothing.type) {
+ case "clothes":
+ if (lastClothing.slotIdx == 11) {
+ localPlayer.setComponentVariation(3, lastClothing.torso, 0, 2);
+ localPlayer.setComponentVariation(8, lastClothing.undershirt[0], lastClothing.undershirt[1], 2);
+ localPlayer.setComponentVariation(lastClothing.slotIdx, lastClothing.drawable, lastClothing.texture, 2);
+ } else {
+ localPlayer.setComponentVariation(lastClothing.slotIdx, lastClothing.drawable, lastClothing.texture, 2);
+ }
+ break;
+
+ case "props":
+ if (lastClothing.drawable === -1) {
+ localPlayer.clearProp(lastClothing.slotIdx);
+ } else {
+ localPlayer.setPropIndex(lastClothing.slotIdx, lastClothing.drawable, lastClothing.texture, true);
+ }
+ break;
+ }
+
+ lastClothing = null;
+ }
+ }
+
+ function myTimer() {
+ let dist = mp.game.gameplay.getDistanceBetweenCoords(localPlayer.position.x, localPlayer.position.y, 0, playerPos.x, playerPos.y, 0, false);
+ if (dist > 3) {
+ clearInterval(myVar);
+ resetPreview();
+ if (currentMenuIdx !== -1) categoryMenus[currentMenuIdx].menu.Close();
+ if (mainMenu && mainMenu.Visible) mainMenu.Close();
+ }
+ }
+
+
+ mp.events.add("clothesMenu:updateData", (jsonBannerSprite, jsonData) => {
+ if (!globalData.InMenu) {
+ globalData.InMenu = true;
+ playerPos = localPlayer.position;
+ var bannerSprite = JSON.parse(jsonBannerSprite);
+ var data = JSON.parse(jsonData);
+
+ // Default menu banner
+ if (bannerSprite == null) {
+ bannerSprite = {
+ library: "commonmenu",
+ texture: "interaction_bgd"
+ };
+ } else if (bannerSprite == 1) {
+ bannerSprite = {
+ library: "shopui_title_lowendfashion",
+ texture: "shopui_title_lowendfashion"
+ };
+ } else if (bannerSprite == 2) {
+ bannerSprite = {
+ library: "shopui_title_midfashion",
+ texture: "shopui_title_midfashion"
+ };
+ } else if (bannerSprite == 3) {
+ bannerSprite = {
+ library: "shopui_title_highendfashion",
+ texture: "shopui_title_highendfashion"
+ };
+ }
+ // Hide the chat
+ mp.gui.chat.show(false);
+
+ // Reset some variables
+ categoryMenus = [];
+ currentMenuIdx = -1;
+ menuTransition = false;
+ lastClothing = null;
+
+ // Create a new main menu
+ mainMenu = new UIMenu("", "SELECT A CATEGORY", new Point(0, 0), bannerSprite.library, bannerSprite.texture);
+ mainMenu.Visible = true;
+
+ // Update clothingData
+ clothingData = data;
+
+ // Add clothes
+
+ addClothingItems("clothes", bannerSprite, 11, data[0]);
+ addClothingItems("clothes", bannerSprite, 4, data[1]);
+ addClothingItems("clothes", bannerSprite, 6, data[2]);
+ addClothingItems("clothes", bannerSprite, 7, data[3]);
+ myVar = setInterval(myTimer, 100);
+ // Add props
+ // for (const [key, value] of Object.entries(clothingData.props)) addClothingItems("props", bannerSprite, key, value);
+
+ // Submenu events
+ for (const item of categoryMenus) {
+ // Preview hovering item
+ item.menu.IndexChange.on(submenuItemChangeHandler);
+
+ // Buy hovering item
+ item.menu.ItemSelect.on((selectedItem, itemIndex) => {
+ if (menuTransition) {
+ menuTransition = false;
+ return;
+ }
+
+ const currentMenu = categoryMenus[currentMenuIdx];
+ const currentItem = currentMenu.item[itemIndex];
+ const currentTexture = currentMenu.texture[itemIndex].id;
+ if (currentMenu.slotIdx == 11) {
+ const currentTorso = currentMenu.texture[itemIndex].torso[0];
+ const currentUndershirt = currentMenu.texture[itemIndex].undershirt;
+ var serverData = [currentMenu.slotIdx, currentTexture, currentItem.ClotheId, currentTorso, currentUndershirt[0], currentUndershirt[2], currentItem.Price];
+ if (lastClothing.drawable == currentItem.ClotheId && lastClothing.texture == currentTexture && lastClothing.undershirt[0] == currentUndershirt[0] && lastClothing.undershirt[1] == currentUndershirt[2]) {
+ mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
+ } else {
+ mp.events.callRemote("SERVER:BuyCharacterClothes", "clothe", JSON.stringify(serverData));
+ }
+ } else {
+ var serverData = [currentMenu.slotIdx, currentTexture, currentItem.ClotheId, -1, -1, -1, currentItem.Price];
+ if (lastClothing.drawable == currentItem.ClotheId && lastClothing.texture == currentTexture) {
+ mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
+ } else {
+ mp.events.callRemote("SERVER:BuyCharacterClothes", "clothe", JSON.stringify(serverData));
+ }
+ }
+ });
+
+ // Reset preview when player backs out of category menu
+ item.menu.MenuClose.on(() => {
+ resetPreview();
+
+ currentMenuIdx = -1;
+ mainMenu.Visible = true;
+ });
+ }
+
+ // Main menu events
+ mainMenu.ItemSelect.on((selectedItem, itemIndex) => {
+ const nextMenu = categoryMenus[itemIndex];
+ const slot = Number(nextMenu.slotIdx);
+
+ lastClothing = {
+ type: nextMenu.type,
+ slotIdx: slot,
+ drawable: (nextMenu.type === "props" ? localPlayer.getPropIndex(slot) : localPlayer.getDrawableVariation(slot)),
+ texture: (nextMenu.type === "props" ? localPlayer.getPropTextureIndex(slot) : localPlayer.getTextureVariation(slot)),
+ undershirt: [localPlayer.getDrawableVariation(8), localPlayer.getTextureVariation(8)],
+ torso: localPlayer.getDrawableVariation(3)
+ };
+
+ currentMenuIdx = itemIndex;
+ mainMenu.Visible = false;
+ nextMenu.menu.Visible = true;
+ menuTransition = true;
+
+ submenuItemChangeHandler(nextMenu.menu.CurrentSelection);
+ });
+
+ mainMenu.MenuClose.on(() => {
+ globalData.InMenu = false;
+ mp.gui.chat.show(true);
+
+ currentMenuIdx = -1;
+ lastClothing = null;
+ });
+ }
+ });
+
+ mp.events.add("clothesMenu:updateLast", (drawable, texture, undershirt, undershirtTexture, torso) => {
+ if (lastClothing) {
+ lastClothing.drawable = drawable;
+ lastClothing.texture = texture;
+ lastClothing.undershirt[0] = undershirt;
+ lastClothing.undershirt[1] = undershirtTexture;
+ lastClothing.torso = torso;
+ }
+ });
+
+ mp.events.add("clothesMenu:close", () => {
+ if (currentMenuIdx !== -1) categoryMenus[currentMenuIdx].menu.Close();
+ if (mainMenu && mainMenu.Visible) mainMenu.Close();
+ });
+
+ mp.events.add("clothesMenu:Error", () => {
+ mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
+ });
+}
\ No newline at end of file
diff --git a/ReallifeGamemode.Client/Interaction/clothes/male_accessories.json b/ReallifeGamemode.Client/Interaction/clothes/male_accessories.json
index 1868e30e..c28eeec5 100644
--- a/ReallifeGamemode.Client/Interaction/clothes/male_accessories.json
+++ b/ReallifeGamemode.Client/Interaction/clothes/male_accessories.json
@@ -187,200 +187,20 @@
"0": {
"GXT": "T_FMM_10_0",
"Localized": "White Tie"
- },
- "1": {
- "GXT": "T_FMM_10_1",
- "Localized": "Gray Tie"
- },
- "2": {
- "GXT": "T_FMM_10_2",
- "Localized": "Black Tie"
- },
- "3": {
- "GXT": "T_FMM_10_3",
- "Localized": "Blue Tie"
- },
- "4": {
- "GXT": "T_FMM_10_4",
- "Localized": "Navy Tie"
- },
- "5": {
- "GXT": "T_FMM_10_5",
- "Localized": "Red Tie"
- },
- "6": {
- "GXT": "T_FMM_10_6",
- "Localized": "Green Tie"
- },
- "7": {
- "GXT": "T_FMM_10_7",
- "Localized": "Orange Tie"
- },
- "8": {
- "GXT": "T_FMM_10_8",
- "Localized": "Yellow Tie"
- },
- "9": {
- "GXT": "T_FMM_10_9",
- "Localized": "Purple Tie"
- },
- "10": {
- "GXT": "T_FMM_10_10",
- "Localized": "Brown Tie"
- },
- "11": {
- "GXT": "T_FMM_10_11",
- "Localized": "Stone Tie"
- },
- "12": {
- "GXT": "T_FMM_10_12",
- "Localized": "Two-Tone Plaid Tie"
- },
- "13": {
- "GXT": "T_FMM_10_13",
- "Localized": "Tan Plaid Tie"
- },
- "14": {
- "GXT": "T_FMM_10_14",
- "Localized": "Gold Striped Tie"
- },
- "15": {
- "GXT": "T_FMM_10_15",
- "Localized": "Red Striped Tie"
- }
- },
- "11": {
- "0": {
- "GXT": "T_FMM_11_0",
- "Localized": "White Bowtie"
- },
- "1": {
- "GXT": "T_FMM_11_1",
- "Localized": "Gray Bowtie"
- },
- "2": {
- "GXT": "T_FMM_11_2",
- "Localized": "Black Bowtie"
- },
- "3": {
- "GXT": "T_FMM_11_3",
- "Localized": "Blue Bowtie"
- },
- "4": {
- "GXT": "T_FMM_11_4",
- "Localized": "Navy Bowtie"
- },
- "5": {
- "GXT": "T_FMM_11_5",
- "Localized": "Red Bowtie"
- },
- "6": {
- "GXT": "T_FMM_11_6",
- "Localized": "Green Bowtie"
- },
- "7": {
- "GXT": "T_FMM_11_7",
- "Localized": "Orange Bowtie"
- },
- "8": {
- "GXT": "T_FMM_11_8",
- "Localized": "Yellow Bowtie"
- },
- "9": {
- "GXT": "T_FMM_11_9",
- "Localized": "Purple Bowtie"
- },
- "10": {
- "GXT": "T_FMM_11_10",
- "Localized": "Brown Bowtie"
- },
- "11": {
- "GXT": "T_FMM_11_11",
- "Localized": "Stone Bowtie"
- },
- "12": {
- "GXT": "T_FMM_11_12",
- "Localized": "Blue Plaid Bowtie"
- },
- "13": {
- "GXT": "T_FMM_11_13",
- "Localized": "Orange Plaid Bowtie"
- },
- "14": {
- "GXT": "T_FMM_11_14",
- "Localized": "Earth Bowtie"
- },
- "15": {
- "GXT": "T_FMM_11_15",
- "Localized": "Red Plaid Bowtie"
- }
- },
- "12": {
- "0": {
- "GXT": "T_FMM_12_0",
- "Localized": "White Skinny Tie"
- },
- "1": {
- "GXT": "T_FMM_12_1",
- "Localized": "Gray Skinny Tie"
- },
- "2": {
- "GXT": "T_FMM_12_2",
- "Localized": "Black Skinny Tie"
- },
- "3": {
- "GXT": "T_FMM_12_3",
- "Localized": "Blue Skinny Tie"
- },
- "4": {
- "GXT": "T_FMM_12_4",
- "Localized": "Navy Skinny Tie"
- },
- "5": {
- "GXT": "T_FMM_12_5",
- "Localized": "Red Skinny Tie"
- },
- "6": {
- "GXT": "T_FMM_12_6",
- "Localized": "Green Skinny Tie"
- },
- "7": {
- "GXT": "T_FMM_12_7",
- "Localized": "Orange Skinny Tie"
- },
- "8": {
- "GXT": "T_FMM_12_8",
- "Localized": "Yellow Skinny Tie"
- },
- "9": {
- "GXT": "T_FMM_12_9",
- "Localized": "Purple Skinny Tie"
- },
- "10": {
- "GXT": "T_FMM_12_10",
- "Localized": "Brown Skinny Tie"
- },
- "11": {
- "GXT": "T_FMM_12_11",
- "Localized": "Stone Skinny Tie"
- },
- "12": {
- "GXT": "T_FMM_12_12",
- "Localized": "Two-Tone Plaid Skinny Tie"
- },
- "13": {
- "GXT": "T_FMM_12_13",
- "Localized": "Tan Plaid Skinny Tie"
- },
- "14": {
- "GXT": "T_FMM_12_14",
- "Localized": "Gold Striped Skinny Tie"
- },
- "15": {
- "GXT": "T_FMM_12_15",
- "Localized": "Red Striped Skinny Tie"
- }
+ }
},
+ "11": {
+ "0": {
+ "GXT": "T_FMM_11_0",
+ "Localized": "White Bowtie"
+ }
+ },
+ "12": {
+ "0": {
+ "GXT": "T_FMM_12_0",
+ "Localized": "White Skinny Tie"
+ }
+ },
"13": {
"0": {
"GXT": "T_FMM_13_0",
diff --git a/ReallifeGamemode.Client/Interaction/clothes/male_tops.json b/ReallifeGamemode.Client/Interaction/clothes/male_tops.json
index 22df709d..994298ea 100644
--- a/ReallifeGamemode.Client/Interaction/clothes/male_tops.json
+++ b/ReallifeGamemode.Client/Interaction/clothes/male_tops.json
@@ -125,10 +125,6 @@
"14": {
"GXT": "U_FMM_1_14",
"Localized": "Signs V Neck"
- },
- "15": {
- "GXT": "U_FMM_1_15",
- "Localized": "Blue Striped V Neck"
}
},
"2": {
diff --git a/ReallifeGamemode.Client/Interaction/clothes/male_torso_top_combination.json b/ReallifeGamemode.Client/Interaction/clothes/male_torso_top_combination.json
new file mode 100644
index 00000000..eda5d4ed
--- /dev/null
+++ b/ReallifeGamemode.Client/Interaction/clothes/male_torso_top_combination.json
@@ -0,0 +1,2435 @@
+{
+ "combination": [
+
+ {
+ "_id": 0,
+ "Top": 0,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 1,
+ "Top": 1,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 2,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 0
+ },
+ {
+ "_id": 3,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 1
+ },
+ {
+ "_id": 4,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 3
+ },
+ {
+ "_id": 5,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 4
+ },
+ {
+ "_id": 6,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 8
+ },
+ {
+ "_id": 7,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 9
+ },
+ {
+ "_id": 8,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 10
+ },
+ {
+ "_id": 9,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 11
+ },
+ {
+ "_id": 10,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 11,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 21
+ },
+ {
+ "_id": 12,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 25
+ },
+ {
+ "_id": 13,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 27
+ },
+ {
+ "_id": 14,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 29
+ },
+ {
+ "_id": 15,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 37
+ },
+ {
+ "_id": 16,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 38
+ },
+ {
+ "_id": 17,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 41
+ },
+ {
+ "_id": 18,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 42
+ },
+ {
+ "_id": 19,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 45
+ },
+ {
+ "_id": 20,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 47
+ },
+ {
+ "_id": 21,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 53
+ },
+ {
+ "_id": 22,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 65
+ },
+ {
+ "_id": 23,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 67
+ },
+ {
+ "_id": 24,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 72
+ },
+ {
+ "_id": 25,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 79
+ },
+ {
+ "_id": 26,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 101
+ },
+ {
+ "_id": 27,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 106
+ },
+ {
+ "_id": 28,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 109
+ },
+ {
+ "_id": 29,
+ "Top": 3,
+ "Torso": 1,
+ "Undershirt": 110
+ },
+ {
+ "_id": 30,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 0
+ },
+ {
+ "_id": 31,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 3
+ },
+ {
+ "_id": 32,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 4
+ },
+ {
+ "_id": 33,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 8
+ },
+ {
+ "_id": 34,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 9
+ },
+ {
+ "_id": 35,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 12
+ },
+ {
+ "_id": 36,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 13
+ },
+ {
+ "_id": 37,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 38,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 25
+ },
+ {
+ "_id": 39,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 26
+ },
+ {
+ "_id": 40,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 27
+ },
+ {
+ "_id": 41,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 29
+ },
+ {
+ "_id": 42,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 37
+ },
+ {
+ "_id": 43,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 38
+ },
+ {
+ "_id": 44,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 42
+ },
+ {
+ "_id": 45,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 43
+ },
+ {
+ "_id": 46,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 46
+ },
+ {
+ "_id": 47,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 47
+ },
+ {
+ "_id": 48,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 53
+ },
+ {
+ "_id": 49,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 60
+ },
+ {
+ "_id": 50,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 65
+ },
+ {
+ "_id": 51,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 67
+ },
+ {
+ "_id": 52,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 72
+ },
+ {
+ "_id": 53,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 79
+ },
+ {
+ "_id": 54,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 101
+ },
+ {
+ "_id": 55,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 106
+ },
+ {
+ "_id": 56,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 109
+ },
+ {
+ "_id": 57,
+ "Top": 4,
+ "Torso": 1,
+ "Undershirt": 110
+ },
+ {
+ "_id": 58,
+ "Top": 5,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 59,
+ "Top": 17,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 60,
+ "Top": 36,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 61,
+ "Top": 109,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 62,
+ "Top": 125,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 63,
+ "Top": 129,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 64,
+ "Top": 137,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 65,
+ "Top": 158,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 66,
+ "Top": 162,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 67,
+ "Top": 175,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 68,
+ "Top": 176,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 69,
+ "Top": 177,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 70,
+ "Top": 179,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 71,
+ "Top": 180,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 72,
+ "Top": 205,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 73,
+ "Top": 206,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 74,
+ "Top": 213,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 75,
+ "Top": 216,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 76,
+ "Top": 219,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 77,
+ "Top": 223,
+ "Torso": 15,
+ "Undershirt": 15
+ },
+ {
+ "_id": 78,
+ "Top": 237,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 79,
+ "Top": 238,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 80,
+ "Top": 239,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 81,
+ "Top": 247,
+ "Torso": 5,
+ "Undershirt": 15
+ },
+ {
+ "_id": 82,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 2
+ },
+ {
+ "_id": 83,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 3
+ },
+ {
+ "_id": 84,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 4
+ },
+ {
+ "_id": 85,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 9
+ },
+ {
+ "_id": 86,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 10
+ },
+ {
+ "_id": 87,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 11
+ },
+ {
+ "_id": 88,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 13
+ },
+ {
+ "_id": 89,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 14
+ },
+ {
+ "_id": 90,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 18
+ },
+ {
+ "_id": 91,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 21
+ },
+ {
+ "_id": 92,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 24
+ },
+ {
+ "_id": 93,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 25
+ },
+ {
+ "_id": 94,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 26
+ },
+ {
+ "_id": 95,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 27
+ },
+ {
+ "_id": 96,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 28
+ },
+ {
+ "_id": 97,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 30
+ },
+ {
+ "_id": 98,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 31
+ },
+ {
+ "_id": 99,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 32
+ },
+ {
+ "_id": 100,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 33
+ },
+ {
+ "_id": 101,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 38
+ },
+ {
+ "_id": 102,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 39
+ },
+ {
+ "_id": 103,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 48
+ },
+ {
+ "_id": 104,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 54
+ },
+ {
+ "_id": 105,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 66
+ },
+ {
+ "_id": 106,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 68
+ },
+ {
+ "_id": 107,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 71
+ },
+ {
+ "_id": 108,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 77
+ },
+ {
+ "_id": 109,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 80
+ },
+ {
+ "_id": 110,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 90
+ },
+ {
+ "_id": 111,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 102
+ },
+ {
+ "_id": 112,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 106
+ },
+ {
+ "_id": 113,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 110
+ },
+ {
+ "_id": 114,
+ "Top": 6,
+ "Torso": 1,
+ "Undershirt": 121
+ },
+ {
+ "_id": 115,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 1
+ },
+ {
+ "_id": 116,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 3
+ },
+ {
+ "_id": 117,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 4
+ },
+ {
+ "_id": 118,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 9
+ },
+ {
+ "_id": 119,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 10
+ },
+ {
+ "_id": 120,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 11
+ },
+ {
+ "_id": 121,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 13
+ },
+ {
+ "_id": 122,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 123,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 25
+ },
+ {
+ "_id": 124,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 27
+ },
+ {
+ "_id": 125,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 29
+ },
+ {
+ "_id": 126,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 37
+ },
+ {
+ "_id": 127,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 38
+ },
+ {
+ "_id": 128,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 41
+ },
+ {
+ "_id": 129,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 45
+ },
+ {
+ "_id": 130,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 47
+ },
+ {
+ "_id": 131,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 53
+ },
+ {
+ "_id": 132,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 65
+ },
+ {
+ "_id": 133,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 67
+ },
+ {
+ "_id": 134,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 72
+ },
+ {
+ "_id": 135,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 79
+ },
+ {
+ "_id": 136,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 90
+ },
+ {
+ "_id": 137,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 101
+ },
+ {
+ "_id": 138,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 106
+ },
+ {
+ "_id": 139,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 109
+ },
+ {
+ "_id": 140,
+ "Top": 7,
+ "Torso": 1,
+ "Undershirt": 110
+ },
+ {
+ "_id": 141,
+ "Top": 8,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 142,
+ "Top": 38,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 143,
+ "Top": 42,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 144,
+ "Top": 43,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 145,
+ "Top": 81,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 146,
+ "Top": 85,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 147,
+ "Top": 86,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 148,
+ "Top": 87,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 149,
+ "Top": 89,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 150,
+ "Top": 90,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 151,
+ "Top": 96,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 152,
+ "Top": 98,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 153,
+ "Top": 107,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 154,
+ "Top": 110,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 155,
+ "Top": 121,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 156,
+ "Top": 125,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 157,
+ "Top": 126,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 158,
+ "Top": 128,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 159,
+ "Top": 143,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 160,
+ "Top": 150,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 161,
+ "Top": 152,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 162,
+ "Top": 153,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 163,
+ "Top": 165,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 164,
+ "Top": 171,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 165,
+ "Top": 182,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 166,
+ "Top": 184,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 167,
+ "Top": 188,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 168,
+ "Top": 190,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 169,
+ "Top": 200,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 170,
+ "Top": 209,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 171,
+ "Top": 210,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 172,
+ "Top": 217,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 173,
+ "Top": 220,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 174,
+ "Top": 221,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 175,
+ "Top": 225,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 176,
+ "Top": 229,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 177,
+ "Top": 243,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 178,
+ "Top": 245,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 179,
+ "Top": 251,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 180,
+ "Top": 253,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 181,
+ "Top": 254,
+ "Torso": 8,
+ "Undershirt": 15
+ },
+ {
+ "_id": 182,
+ "Top": 11,
+ "Torso": 0,
+ "Undershirt": 6
+ },
+ {
+ "_id": 183,
+ "Top": 11,
+ "Torso": 0,
+ "Undershirt": 7
+ },
+ {
+ "_id": 184,
+ "Top": 11,
+ "Torso": 1,
+ "Undershirt": 22
+ },
+ {
+ "_id": 185,
+ "Top": 11,
+ "Torso": 0,
+ "Undershirt": 49
+ },
+ {
+ "_id": 186,
+ "Top": 11,
+ "Torso": 0,
+ "Undershirt": 50
+ },
+ {
+ "_id": 187,
+ "Top": 11,
+ "Torso": 1,
+ "Undershirt": 70
+ },
+ {
+ "_id": 188,
+ "Top": 11,
+ "Torso": 1,
+ "Undershirt": 73
+ },
+ {
+ "_id": 189,
+ "Top": 11,
+ "Torso": 0,
+ "Undershirt": 93
+ },
+ {
+ "_id": 190,
+ "Top": 11,
+ "Torso": 0,
+ "Undershirt": 6
+ },
+ {
+ "_id": 191,
+ "Top": 12,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 192,
+ "Top": 14,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 193,
+ "Top": 16,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 194,
+ "Top": 33,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 195,
+ "Top": 34,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 196,
+ "Top": 39,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 197,
+ "Top": 44,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 198,
+ "Top": 47,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 199,
+ "Top": 55,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 200,
+ "Top": 56,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 201,
+ "Top": 63,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 202,
+ "Top": 71,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 203,
+ "Top": 73,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 204,
+ "Top": 80,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 205,
+ "Top": 82,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 206,
+ "Top": 83,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 207,
+ "Top": 93,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 208,
+ "Top": 94,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 209,
+ "Top": 97,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 210,
+ "Top": 123,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 211,
+ "Top": 131,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 212,
+ "Top": 132,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 213,
+ "Top": 135,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 214,
+ "Top": 164,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 215,
+ "Top": 193,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 216,
+ "Top": 208,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 217,
+ "Top": 226,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 218,
+ "Top": 234,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 219,
+ "Top": 235,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 220,
+ "Top": 236,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 221,
+ "Top": 241,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 222,
+ "Top": 242,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 223,
+ "Top": 250,
+ "Torso": 0,
+ "Undershirt": 15
+ },
+ {
+ "_id": 224,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 2
+ },
+ {
+ "_id": 225,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 3
+ },
+ {
+ "_id": 226,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 4
+ },
+ {
+ "_id": 227,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 12
+ },
+ {
+ "_id": 228,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 13
+ },
+ {
+ "_id": 229,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 230,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 25
+ },
+ {
+ "_id": 231,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 26
+ },
+ {
+ "_id": 232,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 27
+ },
+ {
+ "_id": 233,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 28
+ },
+ {
+ "_id": 234,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 29
+ },
+ {
+ "_id": 235,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 33
+ },
+ {
+ "_id": 236,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 34
+ },
+ {
+ "_id": 237,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 37
+ },
+ {
+ "_id": 238,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 38
+ },
+ {
+ "_id": 239,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 41
+ },
+ {
+ "_id": 240,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 42
+ },
+ {
+ "_id": 241,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 43
+ },
+ {
+ "_id": 242,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 45
+ },
+ {
+ "_id": 243,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 46
+ },
+ {
+ "_id": 244,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 48
+ },
+ {
+ "_id": 245,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 53
+ },
+ {
+ "_id": 246,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 65
+ },
+ {
+ "_id": 247,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 67
+ },
+ {
+ "_id": 248,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 72
+ },
+ {
+ "_id": 249,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 101
+ },
+ {
+ "_id": 250,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 106
+ },
+ {
+ "_id": 251,
+ "Top": 20,
+ "Torso": 1,
+ "Undershirt": 109
+ },
+ {
+ "_id": 252,
+ "Top": 21,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 253,
+ "Top": 25,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 254,
+ "Top": 40,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 255,
+ "Top": 120,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 256,
+ "Top": 137,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 257,
+ "Top": 158,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 258,
+ "Top": 159,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 259,
+ "Top": 162,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 260,
+ "Top": 175,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 261,
+ "Top": 176,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 262,
+ "Top": 177,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 263,
+ "Top": 205,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 264,
+ "Top": 206,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 265,
+ "Top": 207,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 266,
+ "Top": 213,
+ "Torso": 11,
+ "Undershirt": 6
+ },
+ {
+ "_id": 267,
+ "Top": 21,
+ "Torso": 12,
+ "Undershirt": 22
+ },
+ {
+ "_id": 268,
+ "Top": 25,
+ "Torso": 12,
+ "Undershirt": 22
+ },
+ {
+ "_id": 269,
+ "Top": 40,
+ "Torso": 12,
+ "Undershirt": 22
+ },
+ {
+ "_id": 270,
+ "Top": 45,
+ "Torso": 12,
+ "Undershirt": 22
+ },
+ {
+ "_id": 271,
+ "Top": 109,
+ "Torso": 12,
+ "Undershirt": 22
+ },
+ {
+ "_id": 272,
+ "Top": 120,
+ "Torso": 12,
+ "Undershirt": 22
+ },
+ {
+ "_id": 273,
+ "Top": 115,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 274,
+ "Top": 106,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 275,
+ "Top": 77,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 276,
+ "Top": 76,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 277,
+ "Top": 74,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 278,
+ "Top": 72,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 279,
+ "Top": 70,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 280,
+ "Top": 69,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 281,
+ "Top": 64,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 282,
+ "Top": 62,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 283,
+ "Top": 59,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 284,
+ "Top": 58,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 285,
+ "Top": 37,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 286,
+ "Top": 35,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 287,
+ "Top": 28,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 288,
+ "Top": 27,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 289,
+ "Top": 24,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 290,
+ "Top": 23,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 291,
+ "Top": 20,
+ "Torso": 12,
+ "Undershirt": 25
+ },
+ {
+ "_id": 292,
+ "Top": 23,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 293,
+ "Top": 24,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 294,
+ "Top": 27,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 295,
+ "Top": 28,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 296,
+ "Top": 35,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 297,
+ "Top": 37,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 298,
+ "Top": 46,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 299,
+ "Top": 58,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 300,
+ "Top": 59,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 301,
+ "Top": 62,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 302,
+ "Top": 64,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 303,
+ "Top": 69,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 304,
+ "Top": 70,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 305,
+ "Top": 72,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 306,
+ "Top": 74,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 307,
+ "Top": 76,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 308,
+ "Top": 77,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 309,
+ "Top": 106,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 310,
+ "Top": 115,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 311,
+ "Top": 119,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 312,
+ "Top": 122,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 313,
+ "Top": 124,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 314,
+ "Top": 127,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 315,
+ "Top": 151,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 316,
+ "Top": 161,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 317,
+ "Top": 163,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 318,
+ "Top": 166,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 319,
+ "Top": 167,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 320,
+ "Top": 169,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 321,
+ "Top": 172,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 322,
+ "Top": 174,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 323,
+ "Top": 181,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 324,
+ "Top": 185,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 325,
+ "Top": 189,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 326,
+ "Top": 191,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 327,
+ "Top": 192,
+ "Torso": 12,
+ "Undershirt": 27
+ },
+ {
+ "_id": 328,
+ "Top": 192,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 329,
+ "Top": 181,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 330,
+ "Top": 172,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 331,
+ "Top": 169,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 332,
+ "Top": 167,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 333,
+ "Top": 142,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 334,
+ "Top": 136,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 335,
+ "Top": 130,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 336,
+ "Top": 119,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 337,
+ "Top": 115,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 338,
+ "Top": 103,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 339,
+ "Top": 101,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 340,
+ "Top": 99,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 341,
+ "Top": 72,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 342,
+ "Top": 31,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 343,
+ "Top": 29,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 344,
+ "Top": 28,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 345,
+ "Top": 27,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 346,
+ "Top": 24,
+ "Torso": 12,
+ "Undershirt": 33
+ },
+ {
+ "_id": 347,
+ "Top": 28,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 348,
+ "Top": 35,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 349,
+ "Top": 58,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 350,
+ "Top": 59,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 351,
+ "Top": 62,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 352,
+ "Top": 70,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 353,
+ "Top": 74,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 354,
+ "Top": 88,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 355,
+ "Top": 106,
+ "Torso": 12,
+ "Undershirt": 37
+ },
+ {
+ "_id": 356,
+ "Top": 84,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 357,
+ "Top": 104,
+ "Torso": 1,
+ "Undershirt": 36
+ },
+ {
+ "_id": 358,
+ "Top": 108,
+ "Torso": 1,
+ "Undershirt": 36
+ },
+ {
+ "_id": 359,
+ "Top": 183,
+ "Torso": 1,
+ "Undershirt": 36
+ },
+ {
+ "_id": 360,
+ "Top": 50,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 361,
+ "Top": 52,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 362,
+ "Top": 53,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 363,
+ "Top": 65,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 364,
+ "Top": 75,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 365,
+ "Top": 78,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 366,
+ "Top": 79,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 367,
+ "Top": 84,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 368,
+ "Top": 85,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 369,
+ "Top": 86,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 370,
+ "Top": 87,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 371,
+ "Top": 89,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 372,
+ "Top": 90,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 373,
+ "Top": 96,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 374,
+ "Top": 98,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 375,
+ "Top": 125,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 376,
+ "Top": 130,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 377,
+ "Top": 134,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 378,
+ "Top": 143,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 379,
+ "Top": 153,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 380,
+ "Top": 154,
+ "Torso": 1,
+ "Undershirt": 14
+ },
+ {
+ "_id": 381,
+ "Top": 185,
+ "Torso": 1,
+ "Undershirt": 26
+ },
+ {
+ "_id": 382,
+ "Top": 185,
+ "Torso": 1,
+ "Undershirt": 27
+ },
+ {
+ "_id": 383,
+ "Top": 185,
+ "Torso": 1,
+ "Undershirt": 29
+ },
+ {
+ "_id": 384,
+ "Top": 185,
+ "Torso": 1,
+ "Undershirt": 37
+ },
+ {
+ "_id": 385,
+ "Top": 187,
+ "Torso": 1,
+ "Undershirt": 39
+ },
+ {
+ "_id": 386,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 38
+ },
+ {
+ "_id": 387,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 41
+ },
+ {
+ "_id": 388,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 46
+ },
+ {
+ "_id": 389,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 47
+ },
+ {
+ "_id": 390,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 53
+ },
+ {
+ "_id": 391,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 63
+ },
+ {
+ "_id": 392,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 65
+ },
+ {
+ "_id": 393,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 67
+ },
+ {
+ "_id": 394,
+ "Top": 189,
+ "Torso": 1,
+ "Undershirt": 72
+ },
+ {
+ "_id": 395,
+ "Top": 190,
+ "Torso": 1,
+ "Undershirt": 15
+ },
+ {
+ "_id": 396,
+ "Top": 191,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 397,
+ "Top": 212,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 398,
+ "Top": 215,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 399,
+ "Top": 230,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 400,
+ "Top": 232,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 401,
+ "Top": 233,
+ "Torso": 1,
+ "Undershirt": 16
+ },
+ {
+ "_id": 402,
+ "Top": 244,
+ "Torso": 1,
+ "Undershirt": 14
+ },
+ {
+ "_id": 403,
+ "Top": 249,
+ "Torso": 1,
+ "Undershirt": 31
+ },
+ {
+ "_id": 404,
+ "Top": 249,
+ "Torso": 1,
+ "Undershirt": 32
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ReallifeGamemode.Client/Interaction/clothes/male_undershirts.json b/ReallifeGamemode.Client/Interaction/clothes/male_undershirts.json
index cd96965f..b4346e5b 100644
--- a/ReallifeGamemode.Client/Interaction/clothes/male_undershirts.json
+++ b/ReallifeGamemode.Client/Interaction/clothes/male_undershirts.json
@@ -125,10 +125,6 @@
"14": {
"GXT": "U_FMM_1_14",
"Localized": "Signs V Neck"
- },
- "15": {
- "GXT": "U_FMM_1_15",
- "Localized": "Blue Striped V Neck"
}
},
"2": {
@@ -992,7 +988,7 @@
"15": {
"0": {
"GXT": "NO_LABEL",
- "Localized": "NULL"
+ "Localized": "Nothing"
}
},
"16": {
diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts
index 7e1d26f4..a0279667 100644
--- a/ReallifeGamemode.Client/index.ts
+++ b/ReallifeGamemode.Client/index.ts
@@ -182,4 +182,7 @@ import PilotRouteList from './Jobs/PilotRouteSelect';
PilotRouteList(globalData);
import gangwarHandle from './util/Gangwar';
-gangwarHandle(globalData);
\ No newline at end of file
+gangwarHandle(globalData);
+
+import clotheShopList from './interaction/clothes/ClotheShop';
+clotheShopList(globalData);
\ No newline at end of file
diff --git a/ReallifeGamemode.Client/tsconfig.json b/ReallifeGamemode.Client/tsconfig.json
index 5b6c6745..cb1c3ab0 100644
--- a/ReallifeGamemode.Client/tsconfig.json
+++ b/ReallifeGamemode.Client/tsconfig.json
@@ -9,6 +9,9 @@
"rootDir": "./",
"outDir": "./tmp",
"baseUrl": "./",
+ "module": "commonjs",
+ "resolveJsonModule": true,
+ "esModuleInterop": true,
"moduleResolution": "node"
},
"include": [
diff --git a/ReallifeGamemode.Database/Migrations/20190922135310_Initial.Designer.cs b/ReallifeGamemode.Database/Migrations/20190922135310_Initial.Designer.cs
deleted file mode 100644
index 277c7d5c..00000000
--- a/ReallifeGamemode.Database/Migrations/20190922135310_Initial.Designer.cs
+++ /dev/null
@@ -1,1310 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using ReallifeGamemode.Database.Models;
-
-namespace ReallifeGamemode.Database.Migrations
-{
- [DbContext(typeof(DatabaseContext))]
- [Migration("20190922135310_Initial")]
- partial class Initial
- {
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "2.2.6-servicing-10079")
- .HasAnnotation("Relational:MaxIdentifierLength", 64);
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.ATM", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("Balance");
-
- b.Property("Faulty");
-
- b.Property("X");
-
- b.Property("Y");
-
- b.Property("Z");
-
- b.HasKey("Id");
-
- b.ToTable("ATMs");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Ban", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Applied");
-
- b.Property("BannedBy");
-
- b.Property("Reason");
-
- b.Property("UntilDateTime");
-
- b.Property("UserId");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("Bans");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusRoute", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Description");
-
- b.HasKey("Id");
-
- b.ToTable("BusRoutes");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusRoutePoint", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("BusRouteId");
-
- b.Property("Description");
-
- b.Property("X");
-
- b.Property("Y");
-
- b.Property("Z");
-
- b.HasKey("Id");
-
- b.HasIndex("BusRouteId");
-
- b.ToTable("BusRoutesPoints");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusinessBankAccount", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Balance");
-
- b.Property("BusinessId");
-
- b.HasKey("Id");
-
- b.HasIndex("BusinessId")
- .IsUnique();
-
- b.ToTable("BusinessBankAccounts");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.BusinessData", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("BusinessId");
-
- b.Property("Price");
-
- b.HasKey("Id");
-
- b.ToTable("BusinessData");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Character", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Ageing");
-
- b.Property("AgeingOpacity");
-
- b.Property("BeardColor");
-
- b.Property("Blemishes");
-
- b.Property("BlemishesOpacity");
-
- b.Property("Blush");
-
- b.Property("BlushColor");
-
- b.Property("BlushOpacity");
-
- b.Property("BrowDepth");
-
- b.Property("BrowHeight");
-
- b.Property("CheekDepth");
-
- b.Property("CheekboneHeight");
-
- b.Property("CheekboneWidth");
-
- b.Property("ChestHair");
-
- b.Property("ChestHairColor");
-
- b.Property("ChestHairOpacity");
-
- b.Property("ChinDepth");
-
- b.Property("ChinHeight");
-
- b.Property("ChinIndent");
-
- b.Property("ChinWidth");
-
- b.Property("Complexion");
-
- b.Property("ComplexionOpacity");
-
- b.Property("EyeColor");
-
- b.Property("EyeSize");
-
- b.Property("EyebrowColor");
-
- b.Property("Eyebrows");
-
- b.Property("EyebrowsOpacity");
-
- b.Property("FacialHair");
-
- b.Property("FacialHairOpacity");
-
- b.Property("Father");
-
- b.Property("Freckles");
-
- b.Property("FrecklesOpacity");
-
- b.Property("Gender");
-
- b.Property("Hair");
-
- b.Property("HairColor");
-
- b.Property("HairHighlightColor");
-
- b.Property("JawShape");
-
- b.Property("JawWidth");
-
- b.Property("LipThickness");
-
- b.Property("Lipstick");
-
- b.Property("LipstickColor");
-
- b.Property("LipstickOpacity");
-
- b.Property("Makeup");
-
- b.Property("MakeupOpacity");
-
- b.Property("Mother");
-
- b.Property("NeckWidth");
-
- b.Property("NoseBottomHeight");
-
- b.Property("NoseBridgeDepth");
-
- b.Property("NoseBroken");
-
- b.Property("NoseTipHeight");
-
- b.Property("NoseTipLength");
-
- b.Property("NoseWidth");
-
- b.Property("Similarity");
-
- b.Property("SkinSimilarity");
-
- b.Property("SunDamage");
-
- b.Property("SunDamageOpacity");
-
- b.Property("UserId");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("Characters");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.CharacterCloth", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ClothId");
-
- b.Property("Duty");
-
- b.Property("SlotId");
-
- b.Property("SlotType");
-
- b.Property("Texture");
-
- b.Property("UserId");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("CharacterClothes");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.ClothCombination", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Gender");
-
- b.Property("Top");
-
- b.Property("Torso");
-
- b.Property("Undershirt");
-
- b.HasKey("Id");
-
- b.ToTable("ClothCombinations");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Door", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Category");
-
- b.Property("FactionId");
-
- b.Property("Locked");
-
- b.Property("Model");
-
- b.Property("Name");
-
- b.Property("Radius");
-
- b.Property("X");
-
- b.Property("Y");
-
- b.Property("Z");
-
- b.HasKey("Id");
-
- b.HasIndex("FactionId");
-
- b.ToTable("Doors");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.DutyCloth", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ClothId");
-
- b.Property("FactionId");
-
- b.Property("Gender");
-
- b.Property("SlotId");
-
- b.Property("SlotType");
-
- b.HasKey("Id");
-
- b.HasIndex("FactionId");
-
- b.ToTable("DutyClothes");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Faction", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Name")
- .HasMaxLength(32);
-
- b.Property("StateOwned");
-
- b.HasKey("Id");
-
- b.ToTable("Factions");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionBankAccount", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("Balance");
-
- b.Property("Bic")
- .HasMaxLength(12);
-
- b.Property("FactionId");
-
- b.Property("Iban")
- .HasMaxLength(32);
-
- b.HasKey("Id");
-
- b.HasIndex("FactionId");
-
- b.ToTable("FactionBankAccounts");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionRank", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("FactionId");
-
- b.Property("Order");
-
- b.Property("RankName");
-
- b.HasKey("Id");
-
- b.HasIndex("FactionId");
-
- b.ToTable("FactionRanks");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.FactionWeapon", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("FactionId");
-
- b.Property("Rank");
-
- b.Property("SlotID");
-
- b.Property("WeaponModel");
-
- b.HasKey("Id");
-
- b.HasIndex("FactionId");
-
- b.ToTable("FactionWeapons");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.GotoPoint", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("Description")
- .HasMaxLength(32);
-
- b.Property("X");
-
- b.Property("Y");
-
- b.Property("Z");
-
- b.HasKey("Id");
-
- b.ToTable("GotoPoints");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Group", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Name");
-
- b.HasKey("Id");
-
- b.ToTable("Groups");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.GroupBankAccount", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Balance");
-
- b.Property("GroupId");
-
- b.HasKey("Id");
-
- b.HasIndex("GroupId");
-
- b.ToTable("GroupBankAccounts");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.House", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("CanRentIn");
-
- b.Property("OwnerId");
-
- b.Property("Price");
-
- b.Property("RentalFee");
-
- b.Property("Type");
-
- b.Property("X");
-
- b.Property("Y");
-
- b.Property("Z");
-
- b.HasKey("Id");
-
- b.HasIndex("OwnerId");
-
- b.ToTable("Houses");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.HouseRental", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("HouseId");
-
- b.Property("UserId");
-
- b.HasKey("Id");
-
- b.HasIndex("HouseId");
-
- b.HasIndex("UserId");
-
- b.ToTable("HouseRentals");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Interior", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("EnterPositionStr")
- .HasColumnName("EnterPosition");
-
- b.Property("ExitPositionStr")
- .HasColumnName("ExitPosition");
-
- b.Property("Name");
-
- b.HasKey("Id");
-
- b.ToTable("Interiors");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.BankAccountTransactionHistory", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Fee");
-
- b.Property("MoneySent");
-
- b.Property("NewReceiverBalance");
-
- b.Property("NewSenderBalance");
-
- b.Property("Origin")
- .HasMaxLength(32);
-
- b.Property("Receiver")
- .HasMaxLength(32);
-
- b.Property("ReceiverBalance");
-
- b.Property("Sender")
- .HasMaxLength(32);
-
- b.Property("SenderBalance");
-
- b.Property("Timestamp")
- .ValueGeneratedOnAdd();
-
- b.HasKey("Id");
-
- b.ToTable("BankAccountTransactionLogs");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Logs.Death", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("CauseOfDeath")
- .HasMaxLength(64);
-
- b.Property("KillerHeading");
-
- b.Property("KillerId");
-
- b.Property("KillerPositionX");
-
- b.Property("KillerPositionY");
-
- b.Property("KillerPositionZ");
-
- b.Property("Timestamp")
- .ValueGeneratedOnAdd();
-
- b.Property("VictimHeading");
-
- b.Property("VictimId");
-
- b.Property("VictimPositionX");
-
- b.Property("VictimPositionY");
-
- b.Property("VictimPositionZ");
-
- b.HasKey("Id");
-
- b.HasIndex("KillerId");
-
- b.HasIndex("VictimId");
-
- b.ToTable("DeathLogs");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.News", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("Caption");
-
- b.Property("Content");
-
- b.Property("Timestamp");
-
- b.Property("UserId");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("News");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedBlip", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("Alpha");
-
- b.Property("Color");
-
- b.Property("Dimension");
-
- b.Property("DrawDistance");
-
- b.Property("Name");
-
- b.Property("PositionX");
-
- b.Property("PositionY");
-
- b.Property("PositionZ");
-
- b.Property("Rotation");
-
- b.Property("Scale");
-
- b.Property("ShortRange");
-
- b.Property("Sprite");
-
- b.HasKey("Id");
-
- b.ToTable("Blips");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedMarker", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("ColorA");
-
- b.Property("ColorB");
-
- b.Property("ColorG");
-
- b.Property("ColorR");
-
- b.Property("Dimension");
-
- b.Property("DirectionX");
-
- b.Property("DirectionY");
-
- b.Property("DirectionZ");
-
- b.Property("PositionX");
-
- b.Property("PositionY");
-
- b.Property("PositionZ");
-
- b.Property("RotationX");
-
- b.Property("RotationY");
-
- b.Property("RotationZ");
-
- b.Property("Scale");
-
- b.Property("Type");
-
- b.Property("Visible");
-
- b.HasKey("Id");
-
- b.ToTable("Markers");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedPed", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("Dimension");
-
- b.Property("HashModel");
-
- b.Property("Heading");
-
- b.Property("PositionX");
-
- b.Property("PositionY");
-
- b.Property("PositionZ");
-
- b.HasKey("Id");
-
- b.ToTable("Peds");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedPickup", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("Dimension");
-
- b.Property("PositionX")
- .HasMaxLength(128);
-
- b.Property("PositionY");
-
- b.Property("PositionZ");
-
- b.Property("RespawnTime");
-
- b.Property("RotationX");
-
- b.Property("RotationY");
-
- b.Property("RotationZ");
-
- b.Property("Vehicle");
-
- b.HasKey("Id");
-
- b.ToTable("Pickups");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.Saves.SavedTextLabel", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Active");
-
- b.Property("ColorA");
-
- b.Property("ColorB");
-
- b.Property("ColorG");
-
- b.Property("ColorR");
-
- b.Property("Dimension");
-
- b.Property("DrawDistance");
-
- b.Property("Font");
-
- b.Property("LOS");
-
- b.Property("PositionX");
-
- b.Property("PositionY");
-
- b.Property("PositionZ");
-
- b.Property("Text")
- .IsRequired();
-
- b.HasKey("Id");
-
- b.ToTable("TextLabels");
- });
-
- modelBuilder.Entity("ReallifeGamemode.Database.Entities.ServerVehicle", b =>
- {
- b.Property