diff --git a/ReallifeGamemode.Client/Gui/policedepartment.ts b/ReallifeGamemode.Client/Gui/policedepartment.ts
new file mode 100644
index 00000000..da3bc114
--- /dev/null
+++ b/ReallifeGamemode.Client/Gui/policedepartment.ts
@@ -0,0 +1,41 @@
+import game from "..";
+import { Key } from "../game";
+import { Menu, Point, UIMenuItem } from "../libs/NativeUI";
+import { createMenuItem } from "../util";
+import moneyformat from "../moneyformat";
+
+var menu: Menu = new Menu("Polizeirevier", "Die Hilfestelle der Polizei", new Point(50, 50));
+
+menu.AddItem(createMenuItem("Waffenschein kaufen", "Erwerbe einen Waffenschein", (item) => {
+ item.SetRightLabel("$" + moneyformat(5000));
+}));
+
+menu.Close();
+
+menu.ItemSelect.on((item, index: number) => {
+ game.events.callServer("PoliceDepartment_MenuSelect", index);
+ menu.Close();
+});
+
+menu.MenuClose.on(() => {
+ game.ui.inMenu = false;
+});
+
+game.events.add("SERVER:PoliceDepartment_EnterColShape", () => {
+ game.ui.setHelpText("Drücke ~INPUT_CONTEXT~, um das Menü des Polizeireviers zu öffnen");
+
+ game.events.bindKey(Key.E, false, keyPressHandler);
+});
+
+game.events.add("SERVER:PoliceDepartment_ExitColShape", () => {
+ game.ui.clearHelpText();
+ game.events.unbindKey(Key.E, false, keyPressHandler);
+
+ menu.Close();
+});
+
+function keyPressHandler() {
+ game.ui.clearHelpText();
+ game.ui.inMenu = true;
+ menu.Open();
+}
\ No newline at end of file
diff --git a/ReallifeGamemode.Client/Player/keys.ts b/ReallifeGamemode.Client/Player/keys.ts
index 79deaee0..010a86a1 100644
--- a/ReallifeGamemode.Client/Player/keys.ts
+++ b/ReallifeGamemode.Client/Player/keys.ts
@@ -141,6 +141,7 @@ export default function keys(globalData: GlobalData) {
//2 // Job Starten
mp.keys.bind(0x4A, false, () => {
+ mp.gui.chat.push("inchat: " + globalData.InChat + " inInput: " + globalData.InInput + " inMenu: " + globalData.InMenu + " LoggedIn: " + globalData.LoggedIn);
if (!globalData.InChat && !globalData.InInput && !globalData.InMenu && globalData.LoggedIn) {
mp.events.callRemote("CLIENT:JobManager_ShowJobMenu");
}
diff --git a/ReallifeGamemode.Client/assets/html/licenses/scheine.html b/ReallifeGamemode.Client/assets/html/licenses/scheine.html
index 0e8c6d3e..bef20299 100644
--- a/ReallifeGamemode.Client/assets/html/licenses/scheine.html
+++ b/ReallifeGamemode.Client/assets/html/licenses/scheine.html
@@ -16,6 +16,7 @@
+
diff --git a/ReallifeGamemode.Client/assets/js/licenses/scheine.js b/ReallifeGamemode.Client/assets/js/licenses/scheine.js
index 5b91b340..083c3a5c 100644
--- a/ReallifeGamemode.Client/assets/js/licenses/scheine.js
+++ b/ReallifeGamemode.Client/assets/js/licenses/scheine.js
@@ -11,13 +11,15 @@ function add_licenses(info) {
console.log(infoArr);
for (var i = 0; i < infoArr.length; i++) {
var Schein = "";
- if (infoArr[i] == true) {
- if (i == 0) {
+ if (infoArr[i] === true) {
+ if (i === 0) {
Schein = "Auto";
- } else if (i == 1) {
+ } else if (i === 1) {
Schein = "Motorrad";
- } else if (i == 2) {
+ } else if (i === 2) {
Schein = "Flugzeug";
+ } else if (i === 3) {
+ Schein = "Waffen";
}
}
$('#'+i).append(""+Schein);
diff --git a/ReallifeGamemode.Client/core/rage-mp/events.ts b/ReallifeGamemode.Client/core/rage-mp/events.ts
index f3197cea..f9200be0 100644
--- a/ReallifeGamemode.Client/core/rage-mp/events.ts
+++ b/ReallifeGamemode.Client/core/rage-mp/events.ts
@@ -32,7 +32,7 @@ export default class RageEvents implements IEvents {
}
callServer(event: string, args?: any[] | any): void {
- if (args) {
+ if (args !== null) {
if (typeof args === 'object') {
args.push(event);
} else {
@@ -41,7 +41,10 @@ export default class RageEvents implements IEvents {
} else {
args = [event];
}
- mp.events.callRemote('CLIENT:Event', JSON.stringify(args));
+
+ var params = JSON.stringify(args);
+
+ mp.events.callRemote('CLIENT:Event', params);
}
bindKey(key: Key, hold: boolean, callback: Function) {
diff --git a/ReallifeGamemode.Client/core/rage-mp/ui.ts b/ReallifeGamemode.Client/core/rage-mp/ui.ts
index 52ff1e11..8b8ea990 100644
--- a/ReallifeGamemode.Client/core/rage-mp/ui.ts
+++ b/ReallifeGamemode.Client/core/rage-mp/ui.ts
@@ -2,6 +2,14 @@ import { IUi, IBrowser } from "../../game";
import { Menu } from "../../libs/NativeUI/index";
export default class RageUi implements IUi {
+ setHelpText(text: string): void {
+ mp.game.ui.setTextComponentFormat('STRING');
+ mp.game.ui.addTextComponentSubstringPlayerName(text);
+ mp.game.ui.displayHelpTextFromStringLabel(0, true, true, -1);
+ }
+ clearHelpText(): void {
+ mp.game.ui.clearHelp(true);
+ }
private _inMenu: boolean = false;
private _activeMenu: Menu = null;
diff --git a/ReallifeGamemode.Client/game.ts b/ReallifeGamemode.Client/game.ts
index 3976caf4..3f164553 100644
--- a/ReallifeGamemode.Client/game.ts
+++ b/ReallifeGamemode.Client/game.ts
@@ -28,6 +28,8 @@ interface IUi {
openBrower(path: string): IBrowser;
setCursor(freeze: boolean, show: boolean): void;
toggleChat(toggle: boolean): void;
+ setHelpText(text: string): void;
+ clearHelpText(): void;
inMenu: boolean;
inChat: boolean;
}
@@ -98,7 +100,8 @@ enum Key {
ENTER = 0x0D,
M = 0x4D,
T = 0x54,
- X = 0x58
+ X = 0x58,
+ E = 0x45
}
enum VehicleSeat {
diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts
index 9e1b4e05..59e1737c 100644
--- a/ReallifeGamemode.Client/index.ts
+++ b/ReallifeGamemode.Client/index.ts
@@ -167,7 +167,7 @@ import smoothThrottle from './vehiclesync/smoothtrottle';
smoothThrottle();
import vehicleIndicators from './vehiclesync/vehicleindicators';
-vehicleIndicators();
+vehicleIndicators();
import reportList from './Player/reportmenu';
reportList(globalData);
@@ -202,6 +202,8 @@ itemShopList(globalData);
import taximeterInput from './Gui/taximeter';
taximeterInput(globalData);
+require('./Gui/policedepartment');
+
interface VehicleData {
EngineState: boolean;
Locked: boolean;
diff --git a/ReallifeGamemode.Database/Entities/User.cs b/ReallifeGamemode.Database/Entities/User.cs
index fec8b401..6a2ae0de 100644
--- a/ReallifeGamemode.Database/Entities/User.cs
+++ b/ReallifeGamemode.Database/Entities/User.cs
@@ -94,6 +94,8 @@ namespace ReallifeGamemode.Database.Entities
public bool DriverLicenseBike { get; set; } = false;
+ public bool WeaponLicense { get; set; } = false;
+
public bool IsAdmin(AdminLevel level) => AdminLevel >= level;
public IBankAccount GetBankAccount(DatabaseContext databaseContext = null)
diff --git a/ReallifeGamemode.Database/Migrations/20200313203304_UserWeaponLicense.Designer.cs b/ReallifeGamemode.Database/Migrations/20200313203304_UserWeaponLicense.Designer.cs
new file mode 100644
index 00000000..febbfbd5
--- /dev/null
+++ b/ReallifeGamemode.Database/Migrations/20200313203304_UserWeaponLicense.Designer.cs
@@ -0,0 +1,1428 @@
+//
+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("20200313203304_UserWeaponLicense")]
+ partial class UserWeaponLicense
+ {
+ 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.Property("WeaponDealTime");
+
+ 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("Ammount");
+
+ 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