[BUG-94] Türen immer öffnen
This commit is contained in:
@@ -22,6 +22,7 @@ namespace ReallifeGamemode.Database.Entities
|
||||
public float Y { get; set; }
|
||||
public float Z { get; set; }
|
||||
public float Radius { get; set; }
|
||||
public bool AlwaysOpen { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public Vector3 Position => new Vector3(X, Y, Z);
|
||||
|
||||
2180
ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.Designer.cs
generated
Normal file
2180
ReallifeGamemode.Database/Migrations/20210429134927_AddDoorAlwaysOpenFlag.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
namespace ReallifeGamemode.Database.Migrations
|
||||
{
|
||||
public partial class AddDoorAlwaysOpenFlag : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "AlwaysOpen",
|
||||
table: "Doors",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "AlwaysOpen",
|
||||
table: "Doors");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -398,6 +398,9 @@ namespace ReallifeGamemode.Database.Migrations
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<bool>("AlwaysOpen")
|
||||
.HasColumnType("tinyint(1)");
|
||||
|
||||
b.Property<string>("Category")
|
||||
.HasColumnType("longtext CHARACTER SET utf8mb4");
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
foreach (Door door in dbContext.Doors)
|
||||
{
|
||||
_doorColShapes[door.Id] = NAPI.ColShape.CreateSphereColShape(door.Position, 30f);
|
||||
_doorColShapes[door.Id] = NAPI.ColShape.CreateSphereColShape(door.Position, door.AlwaysOpen ? 200f : 30f);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -63,7 +63,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
player.SendNotification(notStr, true);
|
||||
|
||||
NAPI.Pools.GetAllPlayers().ForEach(p => p.TriggerEvent("changeDoorState", d.Model, d.X, d.Y, d.Z, (d.Locked ? 1 : 0), 0.0f, 0.0f, 0.0f));
|
||||
NAPI.Pools.GetAllPlayers().ForEach(p => UpdateDoorState(p, d));
|
||||
}
|
||||
}
|
||||
dbContext.SaveChanges();
|
||||
@@ -80,9 +80,14 @@ namespace ReallifeGamemode.Server.Managers
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
Door door = dbContext.Doors.Where(d => d.Id == doorId).First();
|
||||
player.TriggerEvent("changeDoorState", door.Model, door.X, door.Y, door.Z, (door.Locked ? 1 : 0), 0.0f, 0.0f, 0.0f);
|
||||
UpdateDoorState(player, door);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void UpdateDoorState(Player player, Door door)
|
||||
{
|
||||
player.TriggerEvent("changeDoorState", door.Model, door.X, door.Y, door.Z, (door.Locked || door.AlwaysOpen ? 1 : 0), 0.0f, 0.0f, door.AlwaysOpen ? 1.0f : 0.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user