Skip to content

Commit 3c42d07

Browse files
committed
door direction fix after opened with pressure plate
1 parent 284ba48 commit 3c42d07

File tree

3 files changed

+26
-22
lines changed

3 files changed

+26
-22
lines changed

src/MiNET/MiNET/Blocks/Block.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,18 @@ public virtual BlockStateContainer GetState()
9191
return null;
9292
}
9393

94+
public virtual int GetDirection()
95+
{
96+
foreach (var state in GetState().States)
97+
{
98+
if (state is BlockStateInt s && s.Name == "direction")
99+
{
100+
return s.Value;
101+
}
102+
}
103+
return 0;
104+
}
105+
94106
public virtual BlockStateContainer GetGlobalState()
95107
{
96108
BlockStateContainer currentState = GetState();

src/MiNET/MiNET/Blocks/IronDoor.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
#endregion
2525

2626
using System.Numerics;
27-
using MiNET.Utils;
2827
using MiNET.Utils.Vectors;
2928
using MiNET.Worlds;
3029

@@ -61,13 +60,6 @@ public override void BreakBlock(Level level, BlockFace face, bool silent = false
6160

6261
public override bool Interact(Level world, Player player, BlockCoordinates blockCoordinates, BlockFace face, Vector3 faceCoord)
6362
{
64-
Block block = this;
65-
// Remove door
66-
if (UpperBlockBit) block = world.GetBlock(GetNewCoordinatesFromFace(blockCoordinates, BlockFace.Down));
67-
68-
OpenBit = !OpenBit;
69-
world.SetBlock(block);
70-
7163
return true;
7264
}
7365
}

src/MiNET/MiNET/Blocks/PressurePlateBase.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ public override void OnTick(Level level, bool isRandom)
5050
if (i == 4) { cord = this.Coordinates.BlockDown(); }
5151
var blockk = level.GetBlock(cord);
5252
if (blockk is RedstoneLamp) { level.SetBlock(new LitRedstoneLamp { Coordinates = new BlockCoordinates(cord) }); }
53-
if (blockk is WoodenDoor) { level.SetBlock(new WoodenDoor { Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
54-
if (blockk is SpruceDoor) { level.SetBlock(new SpruceDoor { Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
55-
if (blockk is BirchDoor) { level.SetBlock(new BirchDoor { Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
56-
if (blockk is JungleDoor) { level.SetBlock(new JungleDoor { Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
57-
if (blockk is AcaciaDoor) { level.SetBlock(new AcaciaDoor { Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
58-
if (blockk is DarkOakDoor) { level.SetBlock(new DarkOakDoor { Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
59-
if (blockk is IronDoor) { level.SetBlock(new IronDoor { Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
53+
if (blockk is WoodenDoor) { level.SetBlock(new WoodenDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
54+
if (blockk is SpruceDoor) { level.SetBlock(new SpruceDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
55+
if (blockk is BirchDoor) { level.SetBlock(new BirchDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
56+
if (blockk is JungleDoor) { level.SetBlock(new JungleDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
57+
if (blockk is AcaciaDoor) { level.SetBlock(new AcaciaDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
58+
if (blockk is DarkOakDoor) { level.SetBlock(new DarkOakDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
59+
if (blockk is IronDoor) { level.SetBlock(new IronDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = true }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
6060
}
6161
}
6262
}
@@ -74,13 +74,13 @@ public override void OnTick(Level level, bool isRandom)
7474
if (i == 4) { cord = this.Coordinates.BlockDown(); }
7575
var blockk = level.GetBlock(cord);
7676
if (blockk is LitRedstoneLamp) { level.SetBlock(new RedstoneLamp { Coordinates = new BlockCoordinates(cord) });}
77-
if (blockk is WoodenDoor) { level.SetBlock(new WoodenDoor { Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
78-
if (blockk is SpruceDoor) { level.SetBlock(new SpruceDoor { Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
79-
if (blockk is BirchDoor) { level.SetBlock(new BirchDoor { Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
80-
if (blockk is JungleDoor) { level.SetBlock(new JungleDoor { Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
81-
if (blockk is AcaciaDoor) { level.SetBlock(new AcaciaDoor { Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
82-
if (blockk is DarkOakDoor) { level.SetBlock(new DarkOakDoor { Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
83-
if (blockk is IronDoor) { level.SetBlock(new IronDoor { Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
77+
if (blockk is WoodenDoor) { level.SetBlock(new WoodenDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
78+
if (blockk is SpruceDoor) { level.SetBlock(new SpruceDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
79+
if (blockk is BirchDoor) { level.SetBlock(new BirchDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
80+
if (blockk is JungleDoor) { level.SetBlock(new JungleDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
81+
if (blockk is AcaciaDoor) { level.SetBlock(new AcaciaDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
82+
if (blockk is DarkOakDoor) { level.SetBlock(new DarkOakDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
83+
if (blockk is IronDoor) { level.SetBlock(new IronDoor { Direction = blockk.GetDirection(), Coordinates = new BlockCoordinates(cord), OpenBit = false }); var sound = new Sound((short) LevelEventType.SoundOpenDoor, Coordinates); sound.Spawn(level);}
8484
}
8585
}
8686
}

0 commit comments

Comments
 (0)