diff --git a/ReallifeGamemode.Client/Jobs/PilotRouteSelect.ts b/ReallifeGamemode.Client/Jobs/PilotRouteSelect.ts
new file mode 100644
index 00000000..9f09ddcc
--- /dev/null
+++ b/ReallifeGamemode.Client/Jobs/PilotRouteSelect.ts
@@ -0,0 +1,67 @@
+import * as NativeUI from 'NativeUI';
+
+const Menu = 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 sendItem = new UIMenuItem("Starten", "Route starten");
+sendItem.BackColor = new Color(13, 71, 161);
+sendItem.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 PilotRouteList(globalData: GlobalData) {
+
+ var routeMenu: NativeUI.Menu;
+ var routeTexts;
+ var routeText;
+
+ mp.events.add('showPilotRouteMenu', (listRoutes) => {
+ if (!globalData.InMenu) {
+
+ globalData.InMenu = true;
+ routeTexts = JSON.parse(listRoutes);
+
+ routeMenu = new Menu("Pilot Job", "", new Point(50, 50), null, null);
+ routeMenu.AddItem(new UIMenuListItem("Route", "", new ItemsCollection(routeTexts)));
+
+ routeMenu.AddItem(sendItem);
+ routeMenu.AddItem(cancelItem);
+ routeMenu.Visible = true;
+ routeText = "Kurz 1";
+
+ routeMenu.ListChange.on((item, index) => {
+ switch (item.Text) {
+ case "Route":
+ routeText = String(item.SelectedItem.DisplayText);
+ break;
+ }
+ });
+
+ routeMenu.ItemSelect.on((item) => {
+ if (item.Text === "Starten") {
+ mp.events.callRemote("startPilotRoute", routeText);
+ routeMenu.Close();
+ globalData.InMenu = false;
+ } else if (item.Text === "Abbrechen") {
+ routeMenu.Close();
+ globalData.InMenu = false;
+ }
+ });
+
+ routeMenu.MenuClose.on(() => {
+ globalData.InMenu = false;
+ });
+ }
+ });
+}
\ No newline at end of file
diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts
index 2bca67b4..5eb64c94 100644
--- a/ReallifeGamemode.Client/index.ts
+++ b/ReallifeGamemode.Client/index.ts
@@ -169,4 +169,10 @@ import drivingSchoolHandle from './util/drivingschool';
drivingSchoolHandle(globalData);
import notificationUtil from './util/notification';
-notificationUtil();
\ No newline at end of file
+notificationUtil();
+
+import planeSchoolHandle from './util/planeschool';
+planeSchoolHandle(globalData);
+
+import PilotRouteList from './Jobs/PilotRouteSelect';
+PilotRouteList(globalData);
\ No newline at end of file
diff --git a/ReallifeGamemode.Client/util/planeschool.ts b/ReallifeGamemode.Client/util/planeschool.ts
new file mode 100644
index 00000000..cbbfb43d
--- /dev/null
+++ b/ReallifeGamemode.Client/util/planeschool.ts
@@ -0,0 +1,71 @@
+import * as NativeUI from 'NativeUI';
+const Menu = NativeUI.Menu;
+const UIMenuItem = NativeUI.UIMenuItem;
+const UIMenuListItem = NativeUI.UIMenuListItem;
+const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem;
+const UIMenuSliderItem = NativeUI.UIMenuSliderItem;
+const BadgeStyle = NativeUI.BadgeStyle;
+const Point = NativeUI.Point;
+const ItemsCollection = NativeUI.ItemsCollection;
+const Color = NativeUI.Color;
+const ListItem = NativeUI.ListItem;
+
+export default function planeSchoolHandle(globalData: GlobalData) {
+
+ var keyBound = false;
+ var mainMenu: NativeUI.Menu;
+ let send = new UIMenuItem("Pruefung starten", "");
+ var timer;
+ var timerCheckpoint;
+ var timerSet = false;
+ var Player;
+ var timeToWait = 0;
+ var checkPoint;
+ var counter = 0;
+ var waitFinished = false;
+
+ mp.events.add('planeSchoolMenu', () => {
+ mp.game.ui.setTextComponentFormat('STRING');
+ mp.game.ui.addTextComponentSubstringPlayerName('Drücke ~INPUT_CONTEXT~, um das Flugschulmenü zu öffnen');
+ mp.game.ui.displayHelpTextFromStringLabel(0, true, true, -1);
+
+ mp.keys.bind(0x45, false, keyPressHandler);
+ keyBound = true;
+ });
+
+ mp.events.add('removeplaneSchoolMenu', (unbind) => {
+ mp.game.ui.clearHelp(true);
+ mp.gui.chat.show(true);
+
+ if (keyBound && unbind) {
+ if (mainMenu) mainMenu.Close();
+
+ mp.keys.unbind(0x45, false, keyPressHandler);
+ keyBound = false;
+ }
+ });
+
+ mp.events.add('waitPlayerEntersVehicle1', () => {
+ mp.game.ui.setNewWaypoint(-1114.39, -2333.09);
+ timerSet = true;
+ timer = setInterval(timerPlayerInVehicle1, 3000);
+ });
+
+
+ mp.events.add('stopTimer', () => {
+ timerSet = false;
+ clearInterval(timer);
+ });
+ function timerPlayerInVehicle1() {
+ if (timerSet) {
+ mp.events.callRemote('timerCheckVehicle1');
+ }
+ };
+
+ function keyPressHandler() {
+ if (globalData.InChat || globalData.InInput || globalData.InMenu) return;
+
+ mp.events.call('removeplaneSchoolMenu', false);
+ mp.events.callRemote('startplaneSchool');
+ }
+}
\ No newline at end of file
diff --git a/ReallifeGamemode.Database/Migrations/20191017200636_gtavdev-db.Designer.cs b/ReallifeGamemode.Database/Migrations/20191017200636_gtavdev-db.Designer.cs
new file mode 100644
index 00000000..58229947
--- /dev/null
+++ b/ReallifeGamemode.Database/Migrations/20191017200636_gtavdev-db.Designer.cs
@@ -0,0 +1,1337 @@
+//
+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("20191017200636_gtavdev-db")]
+ partial class gtavdevdb
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "2.1.11-servicing-32099")
+ .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.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.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.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.Location", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Description");
+
+ b.Property("Heading");
+
+ b.Property("X");
+
+ b.Property("Y");
+
+ b.Property("Z");
+
+ b.HasKey("Id");
+
+ b.ToTable("Locations");
+ });
+
+ 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