diff --git a/SubstrateCS/Source/AlphaBlockCollection.cs b/SubstrateCS/Source/AlphaBlockCollection.cs
index 9c1b331..6f05a2d 100644
--- a/SubstrateCS/Source/AlphaBlockCollection.cs
+++ b/SubstrateCS/Source/AlphaBlockCollection.cs
@@ -677,15 +677,9 @@ namespace Substrate
}
///
- public TileEntity GetTileEntity(int x, int y, int z)
+ public TileEntity GetTileEntity (int x, int y, int z)
{
- return GetTileEntity(x, y, z, false);
- }
-
- ///
- public TileEntity GetTileEntity(int x, int y, int z, bool unregistered)
- {
- return _tileEntityManager.GetTileEntity(x, y, z, unregistered);
+ return _tileEntityManager.GetTileEntity(x, y, z);
}
internal TileEntity GetTileEntity (int index)
@@ -693,7 +687,7 @@ namespace Substrate
int x, y, z;
_blocks.GetMultiIndex(index, out x, out y, out z);
- return GetTileEntity(x, y, z, false);
+ return _tileEntityManager.GetTileEntity(x, y, z);
}
///
diff --git a/SubstrateCS/Source/Core/BlockTileEntities.cs b/SubstrateCS/Source/Core/BlockTileEntities.cs
index 0790add..a934a3b 100644
--- a/SubstrateCS/Source/Core/BlockTileEntities.cs
+++ b/SubstrateCS/Source/Core/BlockTileEntities.cs
@@ -31,7 +31,7 @@ namespace Substrate.Core
BuildTileEntityCache();
}
- public TileEntity GetTileEntity (int x, int y, int z, bool unregistered)
+ public TileEntity GetTileEntity (int x, int y, int z)
{
BlockKey key = (TranslateCoordinates != null)
? TranslateCoordinates(x, y, z)
@@ -43,7 +43,7 @@ namespace Substrate.Core
return null;
}
- return unregistered ? TileEntityFactory.CreateAlways(te) : TileEntityFactory.Create(te);
+ return TileEntityFactory.CreateGeneric(te);
}
public void SetTileEntity (int x, int y, int z, TileEntity te)
diff --git a/SubstrateCS/Source/TileEntityFactory.cs b/SubstrateCS/Source/TileEntityFactory.cs
index 5d7865a..6704c64 100644
--- a/SubstrateCS/Source/TileEntityFactory.cs
+++ b/SubstrateCS/Source/TileEntityFactory.cs
@@ -52,27 +52,23 @@ namespace Substrate
}
///
- /// Create a new instance of a type by NBT node, or a blank TileEntity otherwise.
+ /// Create a new instance of a concrete type by NBT node.
///
/// A representing a single Tile Entity, containing an 'id' field of the Tile Entity's registered name.
/// A new instance of a concrete type, or null if no type was registered with the given name.
- public static TileEntity CreateAlways(TagNodeCompound tree)
+ public static TileEntity CreateGeneric(TagNodeCompound tree)
{
string type = tree["id"].ToTagString();
Type t;
- TileEntity te;
-
if (!_registry.TryGetValue(type, out t))
{
- te = new TileEntity("");
- }
- else
- {
- te = Activator.CreateInstance(t) as TileEntity;
+ t = typeof (TileEntity);
}
+ TileEntity te = Activator.CreateInstance(t, true) as TileEntity;
+
return te.LoadTreeSafe(tree);
}