|
@@ -1,6 +1,6 @@
|
|
#include "client/rendering/renderer/WorldRenderer.h"
|
|
#include "client/rendering/renderer/WorldRenderer.h"
|
|
|
|
|
|
-WorldRenderer::WorldRenderer(const World& world) : world(world), texture("resources/textures.png") {
|
|
+WorldRenderer::WorldRenderer(const World& world) : world(world), texture("resources/textures.png", 4) {
|
|
TypedBuffer<Triangle> buffer(100);
|
|
TypedBuffer<Triangle> buffer(100);
|
|
for(int x = 0; x < world.getSize(); x++) {
|
|
for(int x = 0; x < world.getSize(); x++) {
|
|
for(int y = 0; y < world.getHeight(); y++) {
|
|
for(int y = 0; y < world.getHeight(); y++) {
|
|
@@ -18,7 +18,12 @@ void WorldRenderer::render(float lag, Renderer& renderer) {
|
|
(void)lag;
|
|
(void)lag;
|
|
(void)renderer;
|
|
(void)renderer;
|
|
texture.bindTo(0);
|
|
texture.bindTo(0);
|
|
- mesh.draw();
|
|
+ for(int x = -1; x <= 1; x++) {
|
|
|
|
+ for(int z = -1; z <= 1; z++) {
|
|
|
|
+ renderer.translateTo(world.getSize() * x, 0.0f, world.getSize() * z).update();
|
|
|
|
+ mesh.draw();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
bool WorldRenderer::isAir(int x, int y, int z) const {
|
|
bool WorldRenderer::isAir(int x, int y, int z) const {
|
|
@@ -35,10 +40,11 @@ void WorldRenderer::addCube(TypedBuffer<Triangle>& buffer, float x, float y, flo
|
|
Vector3 v110(x + 1, y + 1, z);
|
|
Vector3 v110(x + 1, y + 1, z);
|
|
Vector3 v111(x + 1, y + 1, z + 1);
|
|
Vector3 v111(x + 1, y + 1, z + 1);
|
|
|
|
|
|
- Vector2 t1(0.1875f, 0.0f);
|
|
+ const float ERROR = 0.0001f;
|
|
- Vector2 t2(0.25f, 0.0f);
|
|
+ Vector2 t1(0.1875f + ERROR, 0.0f + ERROR);
|
|
- Vector2 t3(0.25f, 0.0625f);
|
|
+ Vector2 t2(0.25f - ERROR, 0.0f + ERROR);
|
|
- Vector2 t4(0.1875f, 0.0625f);
|
|
+ Vector2 t3(0.25f - ERROR, 0.0625f - ERROR);
|
|
|
|
+ Vector2 t4(0.1875f + ERROR, 0.0625f - ERROR);
|
|
|
|
|
|
if(isAir(x, y - 1, z)) {
|
|
if(isAir(x, y - 1, z)) {
|
|
Vector2 tb(0.125f, 0.0625f);
|
|
Vector2 tb(0.125f, 0.0625f);
|