, collision(true)
, collide_block(true)
, generate(false)
-, min_solidity(0.5f)
-, mid_solidity(0.75f)
-, max_solidity(1.0f)
-, min_humidity(-1.0f)
-, mid_humidity(0.0f)
-, max_humidity(1.0f)
-, min_temperature(-1.0f)
-, mid_temperature(0.0f)
-, max_temperature(1.0f)
-, min_richness(-1.0f)
-, mid_richness(0.0f)
-, max_richness(1.0f)
+, solidity(0.5f, 0.75f, 1.0f)
+, humidity(-1.0f, 0.0f, 1.0f)
+, temperature(-1.0f, 0.0f, 1.0f)
+, richness(-1.0f, 0.0f, 1.0f)
, commonness(1.0f) {
}
collision = other.collision;
collide_block = collide_block;
generate = other.generate;
- min_solidity = other.min_solidity;
- mid_solidity = other.mid_solidity;
- max_solidity = other.max_solidity;
- min_humidity = other.min_humidity;
- mid_humidity = other.mid_humidity;
- max_humidity = other.max_humidity;
- min_temperature = other.min_temperature;
- mid_temperature = other.mid_temperature;
- max_temperature = other.max_temperature;
- min_richness = other.min_richness;
- mid_richness = other.mid_richness;
- max_richness = other.max_richness;
+ solidity = other.solidity;
+ humidity = other.humidity;
+ temperature = other.temperature;
+ richness = other.richness;
commonness = other.commonness;
}
in.Skip(Token::BRACKET_CLOSE);
} else if (name == "rgb_mod") {
in.ReadVec(color_conv);
- rgb_mod = glm::tvec3<unsigned char>(color_conv * 255.0f);
+ rgb_mod = BlockMesh::ColorMod(color_conv * 255.0f);
} else if (name == "hsl_mod") {
in.ReadVec(color_conv);
- hsl_mod = glm::tvec3<unsigned char>(color_conv * 255.0f);
+ hsl_mod = BlockMesh::ColorMod(color_conv * 255.0f);
} else if (name == "outline") {
in.ReadVec(color_conv);
- outline_color = glm::tvec3<unsigned char>(color_conv * 255.0f);
+ outline_color = BlockMesh::ColorMod(color_conv * 255.0f);
} else if (name == "gravity") {
gravity = BlockGravity::Read(in);
} else if (name == "label") {
} else if (name == "generate") {
generate = in.GetBool();
} else if (name == "min_solidity") {
- min_solidity = in.GetFloat();
+ solidity.Min(in.GetFloat());
} else if (name == "mid_solidity") {
- mid_solidity = in.GetFloat();
+ solidity.Mid(in.GetFloat());
} else if (name == "max_solidity") {
- max_solidity = in.GetFloat();
+ solidity.Max(in.GetFloat());
} else if (name == "min_humidity") {
- min_humidity = in.GetFloat();
+ humidity.Min(in.GetFloat());
} else if (name == "mid_humidity") {
- mid_humidity = in.GetFloat();
+ humidity.Mid(in.GetFloat());
} else if (name == "max_humidity") {
- max_humidity = in.GetFloat();
+ humidity.Max(in.GetFloat());
} else if (name == "min_temperature") {
- min_temperature = in.GetFloat();
+ temperature.Min(in.GetFloat());
} else if (name == "mid_temperature") {
- mid_temperature = in.GetFloat();
+ temperature.Mid(in.GetFloat());
} else if (name == "max_temperature") {
- max_temperature = in.GetFloat();
+ temperature.Max(in.GetFloat());
} else if (name == "min_richness") {
- min_richness = in.GetFloat();
+ richness.Min(in.GetFloat());
} else if (name == "mid_richness") {
- mid_richness = in.GetFloat();
+ richness.Mid(in.GetFloat());
} else if (name == "max_richness") {
- max_richness = in.GetFloat();
+ richness.Max(in.GetFloat());
} else if (name == "commonness") {
commonness = in.GetFloat();
} else if (name == "shape") {
void BlockType::OutlinePrimitiveMesh(PrimitiveMesh::Buffer &buf) const noexcept {
if (!shape) return;
shape->Outline(buf);
- buf.colors.insert(buf.colors.end(), shape->OutlineCount(), glm::tvec4<unsigned char>(outline_color, 255));
+ buf.colors.insert(buf.colors.end(), shape->OutlineCount(), PrimitiveMesh::Color(outline_color, 255));
}
: strength(strength) { }
glm::vec3 GetGravity(const glm::vec3 &diff, const glm::mat4 &) const noexcept override {
- float dist2 = length2(diff);
- glm::vec3 dir = -normalize(diff);
+ float dist2 = glm::length2(diff);
+ glm::vec3 dir = -glm::normalize(diff);
return dir * (strength / dist2);
}