diff options
author | lapayo94@gmail.com <lapayo94@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2011-12-25 18:47:01 +0100 |
---|---|---|
committer | lapayo94@gmail.com <lapayo94@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2011-12-25 18:47:01 +0100 |
commit | 62abd8f29bbaec6da00b277d0bf4ced54ccab921 (patch) | |
tree | 4921dcb6892e2c5be5e61aedc47a399743a1327f /source | |
parent | Refactored both simulators (water and lava) to make them more flexible and easier to modify (diff) | |
download | cuberite-62abd8f29bbaec6da00b277d0bf4ced54ccab921.tar cuberite-62abd8f29bbaec6da00b277d0bf4ced54ccab921.tar.gz cuberite-62abd8f29bbaec6da00b277d0bf4ced54ccab921.tar.bz2 cuberite-62abd8f29bbaec6da00b277d0bf4ced54ccab921.tar.lz cuberite-62abd8f29bbaec6da00b277d0bf4ced54ccab921.tar.xz cuberite-62abd8f29bbaec6da00b277d0bf4ced54ccab921.tar.zst cuberite-62abd8f29bbaec6da00b277d0bf4ced54ccab921.zip |
Diffstat (limited to '')
-rw-r--r-- | source/Defines.h | 32 | ||||
-rw-r--r-- | source/cBlockToPickup.cpp | 10 | ||||
-rw-r--r-- | source/cFluidSimulator.cpp | 3 |
3 files changed, 43 insertions, 2 deletions
diff --git a/source/Defines.h b/source/Defines.h index 838eb1340..fb76c5bc7 100644 --- a/source/Defines.h +++ b/source/Defines.h @@ -140,3 +140,35 @@ inline float GetSpecialSignf( float a_Val ) {
return (a_Val <= 0.f)?-1.f:1.f;
}
+
+
+
+namespace ItemCategory
+{
+ inline bool IsPickaxe(ENUM_ITEM_ID a_ItemID)
+ {
+ return a_ItemID == E_ITEM_WOODEN_PICKAXE
+ || a_ItemID == E_ITEM_STONE_PICKAXE
+ || a_ItemID == E_ITEM_IRON_PICKAXE
+ || a_ItemID == E_ITEM_GOLD_PICKAXE
+ || a_ItemID == E_ITEM_DIAMOND_PICKAXE;
+ }
+
+ inline bool IsAxe(ENUM_ITEM_ID a_ItemID)
+ {
+ return a_ItemID == E_ITEM_WOODEN_AXE
+ || a_ItemID == E_ITEM_STONE_AXE
+ || a_ItemID == E_ITEM_IRON_AXE
+ || a_ItemID == E_ITEM_GOLD_AXE
+ || a_ItemID == E_ITEM_DIAMOND_AXE;
+ }
+
+ inline bool IsSword(ENUM_ITEM_ID a_ItemID)
+ {
+ return a_ItemID == E_ITEM_WOODEN_SWORD
+ || a_ItemID == E_ITEM_STONE_SWORD
+ || a_ItemID == E_ITEM_IRON_SWORD
+ || a_ItemID == E_ITEM_GOLD_SWORD
+ || a_ItemID == E_ITEM_DIAMOND_SWORD;
+ }
+}
\ No newline at end of file diff --git a/source/cBlockToPickup.cpp b/source/cBlockToPickup.cpp index c0597d005..fb7a898ae 100644 --- a/source/cBlockToPickup.cpp +++ b/source/cBlockToPickup.cpp @@ -1,4 +1,5 @@ #include "cBlockToPickup.h"
+#include "Defines.h"
#include "BlockID.h"
#include "stdlib.h"
@@ -10,8 +11,11 @@ ENUM_ITEM_ID cBlockToPickup::ToPickup( unsigned char a_BlockID, ENUM_ITEM_ID a_U {
case E_BLOCK_AIR:
return E_ITEM_EMPTY;
+ case E_BLOCK_COBBLESTONE:
case E_BLOCK_STONE:
- return E_ITEM_COBBLESTONE;
+ if(ItemCategory::IsPickaxe(a_UsedItemID))
+ return E_ITEM_COBBLESTONE;
+ return E_ITEM_EMPTY;
case E_BLOCK_GRASS:
return E_ITEM_DIRT;
case E_BLOCK_GLASS:
@@ -54,6 +58,8 @@ ENUM_ITEM_ID cBlockToPickup::ToPickup( unsigned char a_BlockID, ENUM_ITEM_ID a_U return E_ITEM_WOODEN_DOOR;
case E_BLOCK_IRON_DOOR:
return E_ITEM_IRON_DOOR;
+ case E_BLOCK_GLOWSTONE:
+ return E_ITEM_GLOWSTONE_DUST;
default:
return (ENUM_ITEM_ID)a_BlockID;
}
@@ -66,6 +72,8 @@ char cBlockToPickup::PickupCount(unsigned char a_BlockID) case E_BLOCK_REDSTONE_ORE_GLOWING:
case E_BLOCK_REDSTONE_ORE:
return rand() % 2 + 4;
+ case E_BLOCK_GLOWSTONE:
+ return rand() % 3 + 2;
case E_BLOCK_MELON:
return rand() % 8 + 3;
case E_BLOCK_LAPIS_ORE:
diff --git a/source/cFluidSimulator.cpp b/source/cFluidSimulator.cpp index acbb19f56..6eb5dbb0a 100644 --- a/source/cFluidSimulator.cpp +++ b/source/cFluidSimulator.cpp @@ -73,8 +73,9 @@ public: cFluidSimulator::cFluidSimulator( cWorld* a_World )
: m_World(a_World)
- , m_Data(new FluidData(a_World, this))
+ , m_Data(0)
{
+ m_Data = new FluidData(a_World, this);
}
cFluidSimulator::~cFluidSimulator()
|