diff --git a/Commands/World/CmdImport.cs b/Commands/World/CmdImport.cs
index cb98a1ad5..d4911a8b7 100644
--- a/Commands/World/CmdImport.cs
+++ b/Commands/World/CmdImport.cs
@@ -35,15 +35,17 @@ namespace MCGalaxy.Commands {
if (!Directory.Exists("extra/import"))
Directory.CreateDirectory("extra/import");
- if (File.Exists(file + ".dat")) { Import(p, file + ".dat", message, false); return; }
- if (File.Exists(file + ".mcf")) { Import(p, file + ".mcf", message, true); return; }
- Player.SendMessage(p, "No .dat or .mcf file with the given name was found in the imports directory.");
+ if (File.Exists(file + ".dat")) { Import(p, file + ".dat", message, FileType.Dat); return; }
+ if (File.Exists(file + ".mcf")) { Import(p, file + ".mcf", message, FileType.Mcf); return; }
+ if (File.Exists(file + ".fcm")) { Import(p, file + ".fcm", message, FileType.Fcm); return; }
+ Player.SendMessage(p, "No .dat, .mcf or .fcm file with the given name was found in the imports directory.");
}
- void Import(Player p, string fileName, string message, bool mcf) {
+ void Import(Player p, string fileName, string message, FileType type) {
using (FileStream fs = File.OpenRead(fileName)) {
try {
- if (mcf) McfFile.Load(fs, message);
+ if (type == FileType.Mcf) McfFile.Load(fs, message);
+ else if (type == FileType.Fcm) FcmFile.Load(fs, message);
else DatFile.Load(fs, message);
} catch (Exception ex) {
Server.ErrorLog(ex);
@@ -54,10 +56,12 @@ namespace MCGalaxy.Commands {
}
}
+ enum FileType { Mcf, Fcm, Dat };
+
public override void Help(Player p) {
Player.SendMessage(p, "%T/import [name]");
- Player.SendMessage(p, "%HImports the .dat or .mcf file with the given name.");
- Player.SendMessage(p, "%HNote this command only loads .dat/.mcf files from the /extra/import/ folder");
+ Player.SendMessage(p, "%HImports the .dat, .mcf or .fcm file with the given name.");
+ Player.SendMessage(p, "%HNote this command only loads .dat/.mcf/.fcm files from the /extra/import/ folder");
}
}
}
diff --git a/Levels/Block.Convert.cs b/Levels/Block.Convert.cs
index b6213ed99..0ec83e5ad 100644
--- a/Levels/Block.Convert.cs
+++ b/Levels/Block.Convert.cs
@@ -106,17 +106,17 @@ namespace MCGalaxy
case lava_sponge: return "lava_sponge";
case wood_float: return "wood_float"; //TODO
- case door: return "door_wood";
+ case door_tree: return "door_wood";
case lava_fast: return "lava_fast";
- case door2: return "door_obsidian";
- case door3: return "door_glass";
- case door4: return "door_stone";
- case door5: return "door_leaves";
- case door6: return "door_sand";
- case door7: return "door_wood";
- case door8: return "door_green";
- case door9: return "door_tnt";
- case door10: return "door_stair";
+ case door_obsidian: return "door_obsidian";
+ case door_glass: return "door_glass";
+ case door_stone: return "door_stone";
+ case door_leaves: return "door_leaves";
+ case door_sand: return "door_sand";
+ case door_wood: return "door_wood";
+ case door_green: return "door_green";
+ case door_tnt: return "door_tnt";
+ case door_stair: return "door_stair";
case door_iron: return "door_iron";
case door_gold: return "door_gold";
case door_cobblestone: return "door_cobblestone";
@@ -232,23 +232,23 @@ namespace MCGalaxy
//Blocks after this are converted before saving
case air_flood: return "air_flood";
- case door_air: return "door_air";
+ case door_tree__air: return "door_air";
case air_flood_layer: return "air_flood_layer";
case air_flood_down: return "air_flood_down";
case air_flood_up: return "air_flood_up";
- case door2_air: return "door2_air";
- case door3_air: return "door3_air";
- case door4_air: return "door4_air";
- case door5_air: return "door5_air";
- case door6_air: return "door6_air";
- case door7_air: return "door7_air";
- case door8_air: return "door8_air";
- case door9_air: return "door9_air";
- case door10_air: return "door10_air";
- case door11_air: return "door11_air";
- case door12_air: return "door12_air";
- case door13_air: return "door13_air";
- case door14_air: return "door14_air";
+ case door_obsidian_air: return "door2_air";
+ case door_glass_air: return "door3_air";
+ case door_stone_air: return "door4_air";
+ case door_leaves_air: return "door5_air";
+ case door_sand_air: return "door6_air";
+ case door_wood_air: return "door7_air";
+ case door_green_air: return "door8_air";
+ case door_tnt_air: return "door9_air";
+ case door_stair_air: return "door10_air";
+ case air_switch_air: return "door11_air";
+ case water_door_air: return "door12_air";
+ case lava_door_air: return "door13_air";
+ case air_door_air: return "door14_air";
case door_iron_air: return "door_iron_air";
case door_gold_air: return "door_gold_air";
case door_dirt_air: return "door_dirt_air";
@@ -387,26 +387,26 @@ namespace MCGalaxy
case "wood_float": return wood_float; //TODO
case "lava_fast": return lava_fast;
- case "door_tree":
- case "door": return door;
- case "door_obsidian":
- case "door2": return door2;
- case "door_glass":
- case "door3": return door3;
- case "door_stone":
- case "door4": return door4;
- case "door_leaves":
- case "door5": return door5;
- case "door_sand":
- case "door6": return door6;
- case "door_wood":
- case "door7": return door7;
- case "door_green":
- case "door8": return door8;
- case "door_tnt":
- case "door9": return door9;
- case "door_stair":
- case "door10": return door10;
+ case "door":
+ case "door_tree": return door_tree;
+ case "door2":
+ case "door_obsidian": return door_obsidian;
+ case "door3":
+ case "door_glass": return door_glass;
+ case "door4":
+ case "door_stone": return door_stone;
+ case "door5":
+ case "door_leaves": return door_leaves;
+ case "door6":
+ case "door_sand": return door_sand;
+ case "door7":
+ case "door_wood": return door_wood;
+ case "door8":
+ case "door_green": return door_green;
+ case "door9":
+ case "door_tnt": return door_tnt;
+ case "door10":
+ case "door_stair": return door_stair;
case "door11":
case "door_iron": return door_iron;
case "door12":
@@ -550,20 +550,20 @@ namespace MCGalaxy
case "air_flood_layer": return air_flood_layer;
case "air_flood_down": return air_flood_down;
case "air_flood_up": return air_flood_up;
- case "door_air": return door_air;
- case "door2_air": return door2_air;
- case "door3_air": return door3_air;
- case "door4_air": return door4_air;
- case "door5_air": return door5_air;
- case "door6_air": return door6_air;
- case "door7_air": return door7_air;
- case "door8_air": return door8_air;
- case "door9_air": return door9_air;
- case "door10_air": return door10_air;
- case "door11_air": return door11_air;
- case "door12_air": return door12_air;
- case "door13_air": return door13_air;
- case "door14_air": return door14_air;
+ case "door_air": return door_tree__air;
+ case "door2_air": return door_obsidian_air;
+ case "door3_air": return door_glass_air;
+ case "door4_air": return door_stone_air;
+ case "door5_air": return door_leaves_air;
+ case "door6_air": return door_sand_air;
+ case "door7_air": return door_wood_air;
+ case "door8_air": return door_green_air;
+ case "door9_air": return door_tnt_air;
+ case "door10_air": return door_stair_air;
+ case "door11_air": return air_switch_air;
+ case "door12_air": return water_door_air;
+ case "door13_air": return lava_door_air;
+ case "door14_air": return air_door_air;
case "door_iron_air": return door_iron_air;
case "door_dirt_air": return door_dirt_air;
case "door_grass_air": return door_grass_air;
@@ -650,16 +650,16 @@ namespace MCGalaxy
case 71:
case 72:
return Block.white;
- case door: return trunk;//door show by treetype
- case door2: return obsidian;//door show by obsidian
- case door3: return glass;//door show by glass
- case door4: return rock;//door show by stone
- case door5: return leaf;//door show by leaves
- case door6: return sand;//door show by sand
- case door7: return wood;//door show by wood
- case door8: return green;
- case door9: return tnt;//door show by TNT
- case door10: return staircasestep;//door show by Stair
+ case door_tree: return trunk;//door show by treetype
+ case door_obsidian: return obsidian;//door show by obsidian
+ case door_glass: return glass;//door show by glass
+ case door_stone: return rock;//door show by stone
+ case door_leaves: return leaf;//door show by leaves
+ case door_sand: return sand;//door show by sand
+ case door_wood: return wood;//door show by wood
+ case door_green: return green;
+ case door_tnt: return tnt;//door show by TNT
+ case door_stair: return staircasestep;//door show by Stair
case door_iron: return iron;
case door_dirt: return dirt;
case door_grass: return grass;
@@ -762,21 +762,21 @@ namespace MCGalaxy
case Block.checkpoint: return Block.air;
case air_flood:
- case door_air:
+ case door_tree__air:
case air_flood_layer:
case air_flood_down:
case air_flood_up:
- case door2_air:
- case door3_air:
- case door4_air:
- case door5_air:
- case door6_air:
- case door7_air:
- case door10_air:
- case door11_air:
- case door12_air:
- case door13_air:
- case door14_air:
+ case door_obsidian_air:
+ case door_glass_air:
+ case door_stone_air:
+ case door_leaves_air:
+ case door_sand_air:
+ case door_wood_air:
+ case door_stair_air:
+ case air_switch_air:
+ case water_door_air:
+ case lava_door_air:
+ case air_door_air:
case door_iron_air:
case door_gold_air:
case door_cobblestone_air:
@@ -790,8 +790,8 @@ namespace MCGalaxy
case door_lightgrey_air:
case door_white_air:
return air;
- case door8_air: return red;
- case door9_air: return lava;
+ case door_green_air: return red;
+ case door_tnt_air: return lava;
case odoor1_air:
case odoor2_air:
@@ -845,20 +845,20 @@ namespace MCGalaxy
case air_flood_down:
case air_flood_up:
return air; //air_flood must be converted to air on save to prevent issues
- case door_air: return door;
- case door2_air: return door2;
- case door3_air: return door3;
- case door4_air: return door4;
- case door5_air: return door5;
- case door6_air: return door6;
- case door7_air: return door7;
- case door8_air: return door8;
- case door9_air: return door9;
- case door10_air: return door10;
- case door11_air: return air_switch;
- case door12_air: return water_door;
- case door13_air: return lava_door;
- case door14_air: return air_door;
+ case door_tree__air: return door_tree;
+ case door_obsidian_air: return door_obsidian;
+ case door_glass_air: return door_glass;
+ case door_stone_air: return door_stone;
+ case door_leaves_air: return door_leaves;
+ case door_sand_air: return door_sand;
+ case door_wood_air: return door_wood;
+ case door_green_air: return door_green;
+ case door_tnt_air: return door_tnt;
+ case door_stair_air: return door_stair;
+ case air_switch_air: return air_switch;
+ case water_door_air: return water_door;
+ case lava_door_air: return lava_door;
+ case air_door_air: return air_door;
case door_iron_air: return door_iron;
case door_gold_air: return door_gold;
case door_dirt_air: return door_dirt;
diff --git a/Levels/Block.ID.cs b/Levels/Block.ID.cs
index f4589e1d7..291e42753 100644
--- a/Levels/Block.ID.cs
+++ b/Levels/Block.ID.cs
@@ -141,17 +141,17 @@ namespace MCGalaxy
public const byte lava_sponge = (byte)109;
public const byte wood_float = (byte)110;
- public const byte door = (byte)111;
+ public const byte door_tree = (byte)111;
public const byte lava_fast = (byte)112;
- public const byte door2 = (byte)113;
- public const byte door3 = (byte)114;
- public const byte door4 = (byte)115;
- public const byte door5 = (byte)116;
- public const byte door6 = (byte)117;
- public const byte door7 = (byte)118;
- public const byte door8 = (byte)119;
- public const byte door9 = (byte)120;
- public const byte door10 = (byte)121;
+ public const byte door_obsidian = (byte)113;
+ public const byte door_glass = (byte)114;
+ public const byte door_stone = (byte)115;
+ public const byte door_leaves = (byte)116;
+ public const byte door_sand = (byte)117;
+ public const byte door_wood = (byte)118;
+ public const byte door_green = (byte)119;
+ public const byte door_tnt = (byte)120;
+ public const byte door_stair = (byte)121;
public const byte tdoor = (byte)122;
public const byte tdoor2 = (byte)123;
@@ -255,23 +255,23 @@ namespace MCGalaxy
public const byte checkpoint = (byte)197;
public const byte air_flood = (byte)200;
- public const byte door_air = (byte)201;
+ public const byte door_tree__air = (byte)201;
public const byte air_flood_layer = (byte)202;
public const byte air_flood_down = (byte)203;
public const byte air_flood_up = (byte)204;
- public const byte door2_air = (byte)205;
- public const byte door3_air = (byte)206;
- public const byte door4_air = (byte)207;
- public const byte door5_air = (byte)208;
- public const byte door6_air = (byte)209;
- public const byte door7_air = (byte)210;
- public const byte door8_air = (byte)211;
- public const byte door9_air = (byte)212;
- public const byte door10_air = (byte)213;
- public const byte door11_air = (byte)214;
- public const byte door12_air = (byte)215;
- public const byte door13_air = (byte)216;
- public const byte door14_air = (byte)217;
+ public const byte door_obsidian_air = (byte)205;
+ public const byte door_glass_air = (byte)206;
+ public const byte door_stone_air = (byte)207;
+ public const byte door_leaves_air = (byte)208;
+ public const byte door_sand_air = (byte)209;
+ public const byte door_wood_air = (byte)210;
+ public const byte door_green_air = (byte)211;
+ public const byte door_tnt_air = (byte)212;
+ public const byte door_stair_air = (byte)213;
+ public const byte air_switch_air = (byte)214;
+ public const byte water_door_air = (byte)215;
+ public const byte lava_door_air = (byte)216;
+ public const byte air_door_air = (byte)217;
public const byte door_iron = (byte)220;
public const byte door_dirt = (byte)221;
diff --git a/Levels/Block.Permissions.cs b/Levels/Block.Permissions.cs
index 540d2cc9f..bc1439f1a 100644
--- a/Levels/Block.Permissions.cs
+++ b/Levels/Block.Permissions.cs
@@ -122,20 +122,20 @@ namespace MCGalaxy
case wood_float:
case lava_sponge:
- case door_air:
- case door2_air:
- case door3_air:
- case door4_air:
- case door5_air:
- case door6_air:
- case door7_air:
- case door8_air:
- case door9_air:
- case door10_air:
- case door11_air:
- case door12_air:
- case door13_air:
- case door14_air:
+ case door_tree__air:
+ case door_obsidian_air:
+ case door_glass_air:
+ case door_stone_air:
+ case door_leaves_air:
+ case door_sand_air:
+ case door_wood_air:
+ case door_green_air:
+ case door_tnt_air:
+ case door_stair_air:
+ case air_switch_air:
+ case water_door_air:
+ case lava_door_air:
+ case air_door_air:
case door_iron_air:
case door_gold_air:
case door_cobblestone_air:
@@ -208,16 +208,16 @@ namespace MCGalaxy
b.lowestRank = LevelPermission.AdvBuilder;
break;
- case door:
- case door2:
- case door3:
- case door4:
- case door5:
- case door6:
- case door7:
- case door8:
- case door9:
- case door10:
+ case door_tree:
+ case door_obsidian:
+ case door_glass:
+ case door_stone:
+ case door_leaves:
+ case door_sand:
+ case door_wood:
+ case door_green:
+ case door_tnt:
+ case door_stair:
case air_door:
case air_switch:
case water_door:
diff --git a/Levels/Block.cs b/Levels/Block.cs
index f2cfc510a..16071d2ee 100644
--- a/Levels/Block.cs
+++ b/Levels/Block.cs
@@ -50,16 +50,16 @@ namespace MCGalaxy
case Block.MsgWhite:
case Block.MsgBlack:
- case Block.door:
- case Block.door2:
- case Block.door3:
- case Block.door4:
- case Block.door5:
- case Block.door6:
- case Block.door7:
- case Block.door8:
- case Block.door9:
- case Block.door10:
+ case Block.door_tree:
+ case Block.door_obsidian:
+ case Block.door_glass:
+ case Block.door_stone:
+ case Block.door_leaves:
+ case Block.door_sand:
+ case Block.door_wood:
+ case Block.door_green:
+ case Block.door_tnt:
+ case Block.door_stair:
case door_iron:
case door_gold:
case door_dirt:
@@ -392,16 +392,16 @@ namespace MCGalaxy
case Block.op_air:
case Block.op_water:
- case Block.door:
- case Block.door2:
- case Block.door3:
- case Block.door4:
- case Block.door5:
- case Block.door6:
- case Block.door7:
- case Block.door8:
- case Block.door9:
- case Block.door10:
+ case Block.door_tree:
+ case Block.door_obsidian:
+ case Block.door_glass:
+ case Block.door_stone:
+ case Block.door_leaves:
+ case Block.door_sand:
+ case Block.door_wood:
+ case Block.door_green:
+ case Block.door_tnt:
+ case Block.door_stair:
case door_iron:
case door_gold:
case door_dirt:
@@ -472,20 +472,20 @@ namespace MCGalaxy
{
switch (b)
{
- case door: return door_air;
- case door2: return door2_air;
- case door3: return door3_air;
- case door4: return door4_air;
- case door5: return door5_air;
- case door6: return door6_air;
- case door7: return door7_air;
- case door8: return door8_air;
- case door9: return door9_air;
- case door10: return door10_air;
- case air_switch: return door11_air;
- case water_door: return door12_air;
- case lava_door: return door13_air;
- case air_door: return door14_air;
+ case door_tree: return door_tree__air;
+ case door_obsidian: return door_obsidian_air;
+ case door_glass: return door_glass_air;
+ case door_stone: return door_stone_air;
+ case door_leaves: return door_leaves_air;
+ case door_sand: return door_sand_air;
+ case door_wood: return door_wood_air;
+ case door_green: return door_green_air;
+ case door_tnt: return door_tnt_air;
+ case door_stair: return door_stair_air;
+ case air_switch: return air_switch_air;
+ case water_door: return water_door_air;
+ case lava_door: return lava_door_air;
+ case air_door: return air_door_air;
case door_iron: return door_iron_air;
case door_gold: return door_gold_air;
case door_dirt: return door_dirt_air;
diff --git a/Levels/IO/FcmFile.cs b/Levels/IO/FcmFile.cs
new file mode 100644
index 000000000..8b871dd35
--- /dev/null
+++ b/Levels/IO/FcmFile.cs
@@ -0,0 +1,83 @@
+/*
+ Copyright 2015 MCGalaxy
+
+ Dual-licensed under the Educational Community License, Version 2.0 and
+ the GNU General Public License, Version 3 (the "Licenses"); you may
+ not use this file except in compliance with the Licenses. You may
+ obtain a copy of the Licenses at
+
+ http://www.opensource.org/licenses/ecl2.php
+ http://www.gnu.org/licenses/gpl-3.0.html
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the Licenses are distributed on an "AS IS"
+ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ or implied. See the Licenses for the specific language governing
+ permissions and limitations under the Licenses.
+ */
+using System;
+using System.IO;
+using System.IO.Compression;
+using System.Net;
+using System.Text;
+
+namespace MCGalaxy.Levels.IO {
+
+ public static class FcmFile {
+
+ public static Level Load(Stream stream, string name) {
+ BinaryReader reader = new BinaryReader(stream);
+ if (reader.ReadInt32() != 0x0FC2AF40 || reader.ReadByte() != 13) {
+ throw new InvalidDataException( "Unexpected constant in .fcm file" );
+ }
+
+ ushort width = reader.ReadUInt16();
+ ushort height = reader.ReadUInt16();
+ ushort length = reader.ReadUInt16();
+ Level lvl = new Level(name, width, height, length, "full_empty");
+
+ lvl.spawnx = (ushort)(reader.ReadInt32() / 32);
+ lvl.spawny = (ushort)(reader.ReadInt32() / 32);
+ lvl.spawnz = (ushort)(reader.ReadInt32() / 32);
+ lvl.rotx = reader.ReadByte();
+ lvl.roty = reader.ReadByte();
+
+ reader.ReadUInt32(); // date modified
+ reader.ReadUInt32(); // date created
+ reader.ReadBytes(16); // uuid
+ reader.ReadBytes(26); // layer index
+ int metaSize = reader.ReadInt32();
+
+ using (DeflateStream ds = new DeflateStream(stream, CompressionMode.Decompress)) {
+ reader = new BinaryReader(ds);
+ for (int i = 0; i < metaSize; i++) {
+ string group = ReadString(reader);
+ string key = ReadString(reader);
+ string value = ReadString(reader);
+ }
+ int read = ds.Read(lvl.blocks, 0, lvl.blocks.Length);
+ }
+ Upgrade(lvl);
+ lvl.Save(true);
+ return lvl;
+ }
+
+ static void Upgrade(Level lvl) {
+ ushort x, y, z;
+ for (int i = 0; i < lvl.blocks.Length; i++) {
+ byte block = lvl.blocks[i];
+ if (block <= Block.CpeMaxBlock) continue;
+
+ lvl.blocks[i] = Block.custom_block;
+ lvl.IntToPos(i, out x, out y, out z);
+ lvl.SetExtTile(x, y, z, block);
+ }
+ }
+
+ static string ReadString(BinaryReader reader) {
+ int length = reader.ReadUInt16();
+ byte[] data = reader.ReadBytes(length);
+ return Encoding.ASCII.GetString(data);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Levels/Level.Physics.cs b/Levels/Level.Physics.cs
index ed4bc1bff..96fc120b1 100644
--- a/Levels/Level.Physics.cs
+++ b/Levels/Level.Physics.cs
@@ -510,18 +510,18 @@ namespace MCGalaxy {
case Block.air_flood_down:
case Block.air_flood_up:
blocks[C.b] = 0; break;
- case Block.door_air:
+ case Block.door_tree__air:
//blocks[C.b] = 111;
- Blockchange(x, y, z, Block.door); break;
- case Block.door2_air:
+ Blockchange(x, y, z, Block.door_tree); break;
+ case Block.door_obsidian_air:
//blocks[C.b] = 113;
- Blockchange(x, y, z, Block.door2); break;
- case Block.door3_air:
+ Blockchange(x, y, z, Block.door_obsidian); break;
+ case Block.door_glass_air:
//blocks[C.b] = 114;
- Blockchange(x, y, z, Block.door3); break;
- case Block.door4_air:
+ Blockchange(x, y, z, Block.door_glass); break;
+ case Block.door_stone_air:
//blocks[C.b] = 115;
- Blockchange(x, y, z, Block.door4); break;
+ Blockchange(x, y, z, Block.door_stone); break;
}
try {
diff --git a/Levels/Physics/DoorPhysics.cs b/Levels/Physics/DoorPhysics.cs
index 67b0b3dad..e02996eee 100644
--- a/Levels/Physics/DoorPhysics.cs
+++ b/Levels/Physics/DoorPhysics.cs
@@ -29,17 +29,17 @@ namespace MCGalaxy.BlockPhysics {
switch (lvl.blocks[C.b]) {
//Change any door blocks nearby into door_air
- case Block.door_air:
- case Block.door2_air:
- case Block.door3_air:
- case Block.door4_air:
- case Block.door5_air:
- case Block.door6_air:
- case Block.door7_air:
- case Block.door8_air:
- case Block.door10_air:
- case Block.door12_air:
- case Block.door13_air:
+ case Block.door_tree__air:
+ case Block.door_obsidian_air:
+ case Block.door_glass_air:
+ case Block.door_stone_air:
+ case Block.door_leaves_air:
+ case Block.door_sand_air:
+ case Block.door_wood_air:
+ case Block.door_green_air:
+ case Block.door_stair_air:
+ case Block.water_door_air:
+ case Block.lava_door_air:
case Block.door_iron_air:
case Block.door_gold_air:
case Block.door_cobblestone_air:
@@ -55,11 +55,11 @@ namespace MCGalaxy.BlockPhysics {
case Block.door_book_air:
AnyDoor(lvl, C, x, y, z, 16);
break;
- case Block.door11_air:
- case Block.door14_air:
+ case Block.air_switch_air:
+ case Block.air_door_air:
AnyDoor(lvl, C, x, y, z, 4, true);
break;
- case Block.door9_air:
+ case Block.door_tnt_air:
AnyDoor(lvl, C, x, y, z, 4);
break;
@@ -133,7 +133,7 @@ namespace MCGalaxy.BlockPhysics {
PhysDoor(lvl, x, (ushort)(y - 1), z, instaUpdate);
PhysDoor(lvl, x, (ushort)(y + 1), z, instaUpdate);
- if (lvl.blocks[C.b] != Block.door8_air) {
+ if (lvl.blocks[C.b] != Block.door_green_air) {
CheckDoorRevert(lvl, C, timer);
return;
}
diff --git a/MCGalaxy_.csproj b/MCGalaxy_.csproj
index fbf67e2ee..3eb3299c3 100644
--- a/MCGalaxy_.csproj
+++ b/MCGalaxy_.csproj
@@ -414,6 +414,7 @@
+
diff --git a/Player/Player.Handlers.cs b/Player/Player.Handlers.cs
index f2a512f14..9d2cbc5f4 100644
--- a/Player/Player.Handlers.cs
+++ b/Player/Player.Handlers.cs
@@ -742,16 +742,16 @@ namespace MCGalaxy {
}
switch ( b ) {
- case Block.door_air: //Door_air
- case Block.door2_air:
- case Block.door3_air:
- case Block.door4_air:
- case Block.door5_air:
- case Block.door6_air:
- case Block.door7_air:
- case Block.door8_air:
- case Block.door9_air:
- case Block.door10_air:
+ case Block.door_tree__air: //Door_air
+ case Block.door_obsidian_air:
+ case Block.door_glass_air:
+ case Block.door_stone_air:
+ case Block.door_leaves_air:
+ case Block.door_sand_air:
+ case Block.door_wood_air:
+ case Block.door_green_air:
+ case Block.door_tnt_air:
+ case Block.door_stair_air:
case Block.door_iron_air:
case Block.door_gold_air:
case Block.door_cobblestone_air: