Prechádzať zdrojové kódy

support changing block models

Kolja Strohm 2 rokov pred
rodič
commit
6aff13b9e7
2 zmenil súbory, kde vykonal 12 pridanie a 1 odobranie
  1. 10 1
      FactoryCraft/Block.cpp
  2. 2 0
      FactoryCraft/Dimension.cpp

+ 10 - 1
FactoryCraft/Block.cpp

@@ -10,7 +10,8 @@ Block::Block(const BlockType* zType,
     Framework::Vec3<int> pos,
     Model3DData* model,
     Model3DTextur* texture,
-    int maxHP, bool transparent)
+    int maxHP,
+    bool transparent)
     : Model3D(),
       zType(zType),
       location(pos),
@@ -76,6 +77,14 @@ void Block::api(char* message)
     case 0: // hp change
         hp = *(float*)(message + 1);
         break;
+    case 1: // model change
+        {
+            ByteArrayReader reader(message + 1, 10000, 0);
+            ModelInfo info(&reader);
+            setModelDaten(info.getModel());
+            setModelTextur(info.getTexture());
+            break;
+        }
     }
 }
 

+ 2 - 0
FactoryCraft/Dimension.cpp

@@ -179,9 +179,11 @@ void Dimension::removeDistantChunks(Punkt wPos)
     }
     for (int i : removed)
     {
+        cs.lock();
         Chunk* chunk = chunkList.get(i);
         World::INSTANCE->setVisibility(chunk, 0);
         setChunk(0, chunk->getCenter());
+        cs.unlock();
     }
 }