X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2Fblock.cpp;h=c8618939e825bebf690a9f52903493d862b0ccad;hb=2ad195d00eea2c4d48f3f1a3ccc60a8176e7da20;hp=937291810c5f0557a8d52d1b862316a601ce28ba;hpb=b94a7dc7daad9ae9be90a39d723e332dae375325;p=blank.git diff --git a/src/world/block.cpp b/src/world/block.cpp index 9372918..c861893 100644 --- a/src/world/block.cpp +++ b/src/world/block.cpp @@ -74,8 +74,8 @@ std::ostream &operator <<(std::ostream &out, const Block::Turn &turn) { BlockType::BlockType() noexcept : shape(nullptr) , textures() -, hsl_mod(0.0f, 1.0f, 1.0f) -, rgb_mod(1.0f, 1.0f, 1.0f) +, hsl_mod(0, 255, 255) +, rgb_mod(255, 255, 255) , outline_color(-1, -1, -1) , gravity() , name("anonymous") @@ -142,15 +142,18 @@ void BlockType::Read( ) { std::string name; in.Skip(Token::ANGLE_BRACKET_OPEN); + glm::vec3 color_conv; while (in.Peek().type != Token::ANGLE_BRACKET_CLOSE) { in.ReadIdentifier(name); in.Skip(Token::EQUALS); if (name == "visible") { visible = in.GetBool(); } else if (name == "texture") { + textures.clear(); in.ReadString(name); textures.push_back(tex_index.GetID(name)); } else if (name == "textures") { + textures.clear(); in.Skip(Token::BRACKET_OPEN); while (in.Peek().type != Token::BRACKET_CLOSE) { in.ReadString(name); @@ -161,11 +164,14 @@ void BlockType::Read( } in.Skip(Token::BRACKET_CLOSE); } else if (name == "rgb_mod") { - in.ReadVec(rgb_mod); + in.ReadVec(color_conv); + rgb_mod = glm::tvec3(color_conv * 255.0f); } else if (name == "hsl_mod") { - in.ReadVec(hsl_mod); + in.ReadVec(color_conv); + hsl_mod = glm::tvec3(color_conv * 255.0f); } else if (name == "outline") { - in.ReadVec(outline_color); + in.ReadVec(color_conv); + outline_color = glm::tvec3(color_conv * 255.0f); } else if (name == "gravity") { gravity = BlockGravity::Read(in); } else if (name == "label") { @@ -250,7 +256,7 @@ void BlockType::FillBlockMesh( void BlockType::OutlinePrimitiveMesh(PrimitiveMesh::Buffer &buf) const noexcept { if (!shape) return; shape->Outline(buf); - buf.colors.insert(buf.colors.end(), shape->OutlineCount(), glm::vec4(outline_color, 1.0f)); + buf.colors.insert(buf.colors.end(), shape->OutlineCount(), glm::tvec4(outline_color, 255)); }