diff --git a/TrueCraft.Core/Logic/BlockProvider.cs b/TrueCraft.Core/Logic/BlockProvider.cs
index 8638d48..7b9429f 100644
--- a/TrueCraft.Core/Logic/BlockProvider.cs
+++ b/TrueCraft.Core/Logic/BlockProvider.cs
@@ -36,6 +36,20 @@ namespace TrueCraft.Core.Logic
///
public virtual byte Luminance { get { return 0; } }
+ ///
+ /// Whether or not the block is opaque
+ ///
+ public virtual bool Opaque { get { return true; } }
+
+ ///
+ /// The amount removed from the light level as it passes through this block.
+ /// 255 - Let no light pass through(this may change)
+ /// Notes:
+ /// - This isn't needed for opaque blocks
+ /// - This is needed since some "partial" transparent blocks remove more than 1 level from light passing through such as Ice.
+ ///
+ public virtual byte LightModifier { get { return 1; } }
+
///
/// The name of the block as it would appear to players.
///
diff --git a/TrueCraft.Core/Logic/Blocks/BedBlock.cs b/TrueCraft.Core/Logic/Blocks/BedBlock.cs
index a97e585..7ac1390 100644
--- a/TrueCraft.Core/Logic/Blocks/BedBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/BedBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.2; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Bed"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/ButtonBlock.cs b/TrueCraft.Core/Logic/Blocks/ButtonBlock.cs
index 5db4fbe..71e8577 100644
--- a/TrueCraft.Core/Logic/Blocks/ButtonBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/ButtonBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Button"; } }
}
diff --git a/TrueCraft.Core/Logic/Blocks/CactusBlock.cs b/TrueCraft.Core/Logic/Blocks/CactusBlock.cs
index e321a61..ed9d9c9 100644
--- a/TrueCraft.Core/Logic/Blocks/CactusBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/CactusBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.4; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Cactus"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/CakeBlock.cs b/TrueCraft.Core/Logic/Blocks/CakeBlock.cs
index 234ce64..2ec9c24 100644
--- a/TrueCraft.Core/Logic/Blocks/CakeBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/CakeBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Cake"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/ChestBlock.cs b/TrueCraft.Core/Logic/Blocks/ChestBlock.cs
index 5c55c10..2c5f560 100644
--- a/TrueCraft.Core/Logic/Blocks/ChestBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/ChestBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 2.5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Chest"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/CobwebBlock.cs b/TrueCraft.Core/Logic/Blocks/CobwebBlock.cs
index 26fc3e0..e926975 100644
--- a/TrueCraft.Core/Logic/Blocks/CobwebBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/CobwebBlock.cs
@@ -14,6 +14,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 4; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
+
+ //TODO: Mark this as a block that diffuses sun light.
public override string DisplayName { get { return "Cobweb"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/CropsBlock.cs b/TrueCraft.Core/Logic/Blocks/CropsBlock.cs
index 40a728e..687ccc9 100644
--- a/TrueCraft.Core/Logic/Blocks/CropsBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/CropsBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Crops"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/DeadBushBlock.cs b/TrueCraft.Core/Logic/Blocks/DeadBushBlock.cs
index d5c177f..e47cb07 100644
--- a/TrueCraft.Core/Logic/Blocks/DeadBushBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/DeadBushBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Dead Bush"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/DetectorRailBlock.cs b/TrueCraft.Core/Logic/Blocks/DetectorRailBlock.cs
deleted file mode 100644
index 220f8c3..0000000
--- a/TrueCraft.Core/Logic/Blocks/DetectorRailBlock.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using TrueCraft.API.Logic;
-
-namespace TrueCraft.Core.Logic.Blocks
-{
- public class DetectorRailBlock : BlockProvider
- {
- public static readonly byte BlockID = 0x1C;
-
- public override byte ID { get { return 0x1C; } }
-
- public override double BlastResistance { get { return 3.5; } }
-
- public override double Hardness { get { return 0.7; } }
-
- public override byte Luminance { get { return 0; } }
-
- public override string DisplayName { get { return "Detector Rail"; } }
-
- public override Tuple GetTextureMap(byte metadata)
- {
- return new Tuple(3, 12);
- }
- }
-}
\ No newline at end of file
diff --git a/TrueCraft.Core/Logic/Blocks/FarmlandBlock.cs b/TrueCraft.Core/Logic/Blocks/FarmlandBlock.cs
index 3a9b1c9..de8c435 100644
--- a/TrueCraft.Core/Logic/Blocks/FarmlandBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/FarmlandBlock.cs
@@ -14,6 +14,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.6; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
+
+ public override byte LightModifier { get { return 255; } }
public override string DisplayName { get { return "Farmland"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/FenceBlock.cs b/TrueCraft.Core/Logic/Blocks/FenceBlock.cs
index d620f64..cb2de36 100644
--- a/TrueCraft.Core/Logic/Blocks/FenceBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/FenceBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 2; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Fence"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/FireBlock.cs b/TrueCraft.Core/Logic/Blocks/FireBlock.cs
index a626810..c9d59db 100644
--- a/TrueCraft.Core/Logic/Blocks/FireBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/FireBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 15; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Fire"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/FlowerBlock.cs b/TrueCraft.Core/Logic/Blocks/FlowerBlock.cs
index 6ea2283..d7927cd 100644
--- a/TrueCraft.Core/Logic/Blocks/FlowerBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/FlowerBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Flower"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs b/TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs
index 9b1272a..97d6fe8 100644
--- a/TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/FurnaceBlock.cs
@@ -31,6 +31,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override byte Luminance { get { return 13; } }
+ public override bool Opaque { get { return false; } }
+
public override string DisplayName { get { return "Furnace (lit)"; } }
}
}
\ No newline at end of file
diff --git a/TrueCraft.Core/Logic/Blocks/GlassBlock.cs b/TrueCraft.Core/Logic/Blocks/GlassBlock.cs
index ae32ce8..add413d 100644
--- a/TrueCraft.Core/Logic/Blocks/GlassBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/GlassBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.3; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Glass"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/GlowstoneBlock.cs b/TrueCraft.Core/Logic/Blocks/GlowstoneBlock.cs
index f1ff65e..d0ff127 100644
--- a/TrueCraft.Core/Logic/Blocks/GlowstoneBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/GlowstoneBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.3; } }
public override byte Luminance { get { return 15; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Glowstone"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/GrassBlock.cs b/TrueCraft.Core/Logic/Blocks/GrassBlock.cs
index a8762e5..04575c6 100644
--- a/TrueCraft.Core/Logic/Blocks/GrassBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/GrassBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.6; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Grass"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/IceBlock.cs b/TrueCraft.Core/Logic/Blocks/IceBlock.cs
index d415b4e..6309cf3 100644
--- a/TrueCraft.Core/Logic/Blocks/IceBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/IceBlock.cs
@@ -14,6 +14,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
+
+ public override byte LightModifier { get { return 3; } }
public override string DisplayName { get { return "Ice"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/IronDoorBlock.cs b/TrueCraft.Core/Logic/Blocks/IronDoorBlock.cs
index 0c4d5ad..419c1b5 100644
--- a/TrueCraft.Core/Logic/Blocks/IronDoorBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/IronDoorBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Iron Door"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/JackoLanternBlock.cs b/TrueCraft.Core/Logic/Blocks/JackoLanternBlock.cs
index 7ef7a83..f841225 100644
--- a/TrueCraft.Core/Logic/Blocks/JackoLanternBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/JackoLanternBlock.cs
@@ -14,6 +14,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 1; } }
public override byte Luminance { get { return 15; } }
+
+ public override bool Opaque { get { return false; } }
+
+ public override byte LightModifier { get { return 255; } }
public override string DisplayName { get { return "Jack 'o' Lantern"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/LadderBlock.cs b/TrueCraft.Core/Logic/Blocks/LadderBlock.cs
index 6b1b46f..bca580b 100644
--- a/TrueCraft.Core/Logic/Blocks/LadderBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/LadderBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.4; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Ladder"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/LavaBlock.cs b/TrueCraft.Core/Logic/Blocks/LavaBlock.cs
index 52fb6c6..1cf2b55 100644
--- a/TrueCraft.Core/Logic/Blocks/LavaBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/LavaBlock.cs
@@ -15,6 +15,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override byte Luminance { get { return 15; } }
+ public override bool Opaque { get { return false; } }
+
+ public override byte LightModifier { get { return 255; } }
+
public override string DisplayName { get { return "Lava"; } }
}
diff --git a/TrueCraft.Core/Logic/Blocks/LeavesBlock.cs b/TrueCraft.Core/Logic/Blocks/LeavesBlock.cs
index 141f21e..fc1931b 100644
--- a/TrueCraft.Core/Logic/Blocks/LeavesBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/LeavesBlock.cs
@@ -14,6 +14,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.2; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
+
+ //TODO: Mark this as a block that diffuses sun light.
public override string DisplayName { get { return "Leaves"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/LeverBlock.cs b/TrueCraft.Core/Logic/Blocks/LeverBlock.cs
index 419580f..07ed2c5 100644
--- a/TrueCraft.Core/Logic/Blocks/LeverBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/LeverBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Lever"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs b/TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs
index 1b8be0e..bbb4a08 100644
--- a/TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/LockedChestBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Locked Chest"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/MonsterSpawnerBlock.cs b/TrueCraft.Core/Logic/Blocks/MonsterSpawnerBlock.cs
index 3d7eea2..6f35932 100644
--- a/TrueCraft.Core/Logic/Blocks/MonsterSpawnerBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/MonsterSpawnerBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Monster Spawner"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/MushroomBlock.cs b/TrueCraft.Core/Logic/Blocks/MushroomBlock.cs
index 5507465..16e8938 100644
--- a/TrueCraft.Core/Logic/Blocks/MushroomBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/MushroomBlock.cs
@@ -18,6 +18,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override byte ID { get { return 0x27; } }
public override byte Luminance { get { return 1; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Brown Mushroom"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/PistonBlock.cs b/TrueCraft.Core/Logic/Blocks/PistonBlock.cs
index 1abda7a..b23ef5c 100644
--- a/TrueCraft.Core/Logic/Blocks/PistonBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/PistonBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Piston"; } }
@@ -35,6 +37,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override byte Luminance { get { return 0; } }
+ public override bool Opaque { get { return false; } }
+
public override string DisplayName { get { return "Sticky Piston"; } }
public override Tuple GetTextureMap(byte metadata)
diff --git a/TrueCraft.Core/Logic/Blocks/PortalBlock.cs b/TrueCraft.Core/Logic/Blocks/PortalBlock.cs
index 83c137b..f3468f5 100644
--- a/TrueCraft.Core/Logic/Blocks/PortalBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/PortalBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return -1; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Portal"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/PoweredRailBlock.cs b/TrueCraft.Core/Logic/Blocks/PoweredRailBlock.cs
deleted file mode 100644
index 3893821..0000000
--- a/TrueCraft.Core/Logic/Blocks/PoweredRailBlock.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using TrueCraft.API.Logic;
-
-namespace TrueCraft.Core.Logic.Blocks
-{
- public class PoweredRailBlock : BlockProvider
- {
- public static readonly byte BlockID = 0x1B;
-
- public override byte ID { get { return 0x1B; } }
-
- public override double BlastResistance { get { return 3.5; } }
-
- public override double Hardness { get { return 0.7; } }
-
- public override byte Luminance { get { return 0; } }
-
- public override string DisplayName { get { return "Powered Rail"; } }
-
- public override Tuple GetTextureMap(byte metadata)
- {
- return new Tuple(3, 11);
- }
- }
-}
\ No newline at end of file
diff --git a/TrueCraft.Core/Logic/Blocks/PressurePlateBlock.cs b/TrueCraft.Core/Logic/Blocks/PressurePlateBlock.cs
index c5930ec..d13d69e 100644
--- a/TrueCraft.Core/Logic/Blocks/PressurePlateBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/PressurePlateBlock.cs
@@ -10,6 +10,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.5; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
}
public class WoodenPressurePlateBlock : PressurePlateBlock
diff --git a/TrueCraft.Core/Logic/Blocks/RailBlock.cs b/TrueCraft.Core/Logic/Blocks/RailBlock.cs
index ba2bef3..f205154 100644
--- a/TrueCraft.Core/Logic/Blocks/RailBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/RailBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0.7; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Rail"; } }
@@ -22,4 +24,32 @@ namespace TrueCraft.Core.Logic.Blocks
return new Tuple(0, 8);
}
}
+
+ public class PoweredRailBlock : RailBlock
+ {
+ public static readonly new byte BlockID = 0x1B;
+
+ public override byte ID { get { return 0x1B; } }
+
+ public override string DisplayName { get { return "Powered Rail"; } }
+
+ public override Tuple GetTextureMap(byte metadata)
+ {
+ return new Tuple(3, 11);
+ }
+ }
+
+ public class DetectorRailBlock : RailBlock
+ {
+ public static readonly new byte BlockID = 0x1C;
+
+ public override byte ID { get { return 0x1C; } }
+
+ public override string DisplayName { get { return "Detector Rail"; } }
+
+ public override Tuple GetTextureMap(byte metadata)
+ {
+ return new Tuple(3, 12);
+ }
+ }
}
\ No newline at end of file
diff --git a/TrueCraft.Core/Logic/Blocks/RedstoneDustBlock.cs b/TrueCraft.Core/Logic/Blocks/RedstoneDustBlock.cs
index 5bb5811..0e89783 100644
--- a/TrueCraft.Core/Logic/Blocks/RedstoneDustBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/RedstoneDustBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Redstone Dust"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs b/TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs
index 3025b28..2e84873 100644
--- a/TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/RedstoneOreBlock.cs
@@ -30,6 +30,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override byte ID { get { return 0x4A; } }
public override byte Luminance { get { return 9; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Redstone Ore (glowing)"; } }
}
diff --git a/TrueCraft.Core/Logic/Blocks/RedstoneRepeaterBlock.cs b/TrueCraft.Core/Logic/Blocks/RedstoneRepeaterBlock.cs
index 8ff457c..015b86b 100644
--- a/TrueCraft.Core/Logic/Blocks/RedstoneRepeaterBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/RedstoneRepeaterBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Redstone Repeater"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/RedstoneTorchBlock.cs b/TrueCraft.Core/Logic/Blocks/RedstoneTorchBlock.cs
index 891b9df..7c1fbe6 100644
--- a/TrueCraft.Core/Logic/Blocks/RedstoneTorchBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/RedstoneTorchBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 7; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Redstone Torch"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/RoseBlock.cs b/TrueCraft.Core/Logic/Blocks/RoseBlock.cs
index 87a2b6f..31c8e1f 100644
--- a/TrueCraft.Core/Logic/Blocks/RoseBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/RoseBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Rose"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/SaplingBlock.cs b/TrueCraft.Core/Logic/Blocks/SaplingBlock.cs
index 24e3266..d9598b4 100644
--- a/TrueCraft.Core/Logic/Blocks/SaplingBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/SaplingBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Sapling"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/SignBlock.cs b/TrueCraft.Core/Logic/Blocks/SignBlock.cs
index 372eb7f..72bb142 100644
--- a/TrueCraft.Core/Logic/Blocks/SignBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/SignBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 1; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Sign"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/SnowBlock.cs b/TrueCraft.Core/Logic/Blocks/SnowBlock.cs
index 3ced615..6fd8da3 100644
--- a/TrueCraft.Core/Logic/Blocks/SnowBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/SnowBlock.cs
@@ -35,6 +35,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override byte Luminance { get { return 0; } }
+ public override bool Opaque { get { return false; } }
+
public override string DisplayName { get { return "Snow"; } }
public override Tuple GetTextureMap(byte metadata)
diff --git a/TrueCraft.Core/Logic/Blocks/StoneSlabBlock.cs b/TrueCraft.Core/Logic/Blocks/StoneSlabBlock.cs
index 4f57bbf..d639653 100644
--- a/TrueCraft.Core/Logic/Blocks/StoneSlabBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/StoneSlabBlock.cs
@@ -14,7 +14,11 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 2; } }
public override byte Luminance { get { return 0; } }
-
+
+ public override bool Opaque { get { return false; } }
+
+ public override byte LightModifier { get { return 255; } }
+
public override string DisplayName { get { return "Stone Slab"; } }
public override Tuple GetTextureMap(byte metadata)
diff --git a/TrueCraft.Core/Logic/Blocks/StoneStairsBlock.cs b/TrueCraft.Core/Logic/Blocks/StoneStairsBlock.cs
index 5413e15..e6aa611 100644
--- a/TrueCraft.Core/Logic/Blocks/StoneStairsBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/StoneStairsBlock.cs
@@ -14,6 +14,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
+
+ public override byte LightModifier { get { return 255; } }
public override string DisplayName { get { return "Stone Stairs"; } }
}
diff --git a/TrueCraft.Core/Logic/Blocks/SugarcaneBlock.cs b/TrueCraft.Core/Logic/Blocks/SugarcaneBlock.cs
index a486ded..995f6e2 100644
--- a/TrueCraft.Core/Logic/Blocks/SugarcaneBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/SugarcaneBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Sugar cane"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/TallGrassBlock.cs b/TrueCraft.Core/Logic/Blocks/TallGrassBlock.cs
index 92c6b3e..dc0fb97 100644
--- a/TrueCraft.Core/Logic/Blocks/TallGrassBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/TallGrassBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Tall Grass"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/TorchBlock.cs b/TrueCraft.Core/Logic/Blocks/TorchBlock.cs
index 0550c60..eca22d0 100644
--- a/TrueCraft.Core/Logic/Blocks/TorchBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/TorchBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 13; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Torch"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs b/TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs
index b6dd4d9..85a8348 100644
--- a/TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/TrapdoorBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 3; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Trapdoor"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/WaterBlock.cs b/TrueCraft.Core/Logic/Blocks/WaterBlock.cs
index 150cebc..28fc2d4 100644
--- a/TrueCraft.Core/Logic/Blocks/WaterBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/WaterBlock.cs
@@ -14,6 +14,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 100; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
+
+ public override byte LightModifier { get { return 3; } }
public override string DisplayName { get { return "Water"; } }
}
diff --git a/TrueCraft.Core/Logic/Blocks/WoodenDoorBlock.cs b/TrueCraft.Core/Logic/Blocks/WoodenDoorBlock.cs
index d1c421d..4adb34b 100644
--- a/TrueCraft.Core/Logic/Blocks/WoodenDoorBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/WoodenDoorBlock.cs
@@ -14,6 +14,8 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 3; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
public override string DisplayName { get { return "Wooden Door"; } }
diff --git a/TrueCraft.Core/Logic/Blocks/WoodenStairsBlock.cs b/TrueCraft.Core/Logic/Blocks/WoodenStairsBlock.cs
index a632d69..83186c7 100644
--- a/TrueCraft.Core/Logic/Blocks/WoodenStairsBlock.cs
+++ b/TrueCraft.Core/Logic/Blocks/WoodenStairsBlock.cs
@@ -14,6 +14,10 @@ namespace TrueCraft.Core.Logic.Blocks
public override double Hardness { get { return 0; } }
public override byte Luminance { get { return 0; } }
+
+ public override bool Opaque { get { return false; } }
+
+ public override byte LightModifier { get { return 255; } }
public override string DisplayName { get { return "Wooden Stairs"; } }
}
diff --git a/TrueCraft.Core/TrueCraft.Core.csproj b/TrueCraft.Core/TrueCraft.Core.csproj
index dccb590..ebdf719 100644
--- a/TrueCraft.Core/TrueCraft.Core.csproj
+++ b/TrueCraft.Core/TrueCraft.Core.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -123,7 +123,6 @@
-
@@ -155,7 +154,6 @@
-
@@ -209,11 +207,5 @@
-
-
-
-
-
-
\ No newline at end of file