diff --git a/assets/cubyz/items/textures/food/raw_meat.png b/assets/cubyz/items/textures/food/raw_meat.png index d7780ba4..62eb231c 100644 Binary files a/assets/cubyz/items/textures/food/raw_meat.png and b/assets/cubyz/items/textures/food/raw_meat.png differ diff --git a/assets/cubyz/shaders/block_drop.fs b/assets/cubyz/shaders/block_drop.fs deleted file mode 100644 index d33ddb45..00000000 --- a/assets/cubyz/shaders/block_drop.fs +++ /dev/null @@ -1,43 +0,0 @@ -#version 430 - -in vec3 outTexCoord; -in vec3 mvVertexPos; -in vec3 outLight; - -out vec4 fragColor; - -struct Fog { - bool activ; - vec3 color; - float density; -}; - -uniform sampler2DArray texture_sampler; -uniform sampler2DArray emissionSampler; -uniform Fog fog; - -vec4 ambientC; - -void setupColors(vec3 textCoord) { - ambientC = texture(texture_sampler, textCoord); -} - -vec4 calcFog(vec3 pos, vec4 color, Fog fog) { - float distance = length(pos); - float fogFactor = 1.0/exp((distance*fog.density)*(distance*fog.density)); - fogFactor = clamp(fogFactor, 0.0, 1.0); - vec3 resultColor = mix(fog.color, color.xyz, fogFactor); - return vec4(resultColor.xyz, color.w); -} - -void main() { - setupColors(outTexCoord); - - fragColor = ambientC*vec4(outLight, 1); - fragColor.rgb += texture(emissionSampler, outTexCoord).rgb; - - if (fog.activ) { - fragColor = calcFog(mvVertexPos, fragColor, fog); - } - fragColor.rgb /= 4; -} diff --git a/assets/cubyz/shaders/block_drop.vs b/assets/cubyz/shaders/block_drop.vs deleted file mode 100644 index d8e26aae..00000000 --- a/assets/cubyz/shaders/block_drop.vs +++ /dev/null @@ -1,61 +0,0 @@ -#version 430 - -layout (location=0) in vec3 position; -layout (location=1) in vec2 texCoord; -layout (location=2) in vec3 vertexNormal; - -out vec3 outTexCoord; -out vec3 mvVertexPos; -out float outSelected; -out vec3 outLight; - -uniform mat4 projectionMatrix; -uniform mat4 viewMatrix; - -uniform int light; -uniform vec3 ambientLight; -uniform vec3 directionalLight; - -uniform int texPosX; -uniform int texNegX; -uniform int texPosY; -uniform int texNegY; -uniform int texPosZ; -uniform int texNegZ; - -vec3 calcLight(int srgb) { - float s = (srgb >> 24) & 255; - float r = (srgb >> 16) & 255; - float g = (srgb >> 8) & 255; - float b = (srgb >> 0) & 255; - s = s*(1 - dot(directionalLight, vertexNormal)); - r = max(s*ambientLight.x, r); - g = max(s*ambientLight.y, g); - b = max(s*ambientLight.z, b); - return vec3(r, g, b); -} - -void main() -{ - vec4 mvPos = viewMatrix * vec4(position, 1); - gl_Position = projectionMatrix * mvPos; - int texture = 0; - if (vertexNormal == vec3(1, 0, 0)) { - texture = texPosX; - } else if (vertexNormal == vec3(-1, 0, 0)) { - texture = texNegX; - } else if (vertexNormal == vec3(0, 1, 0)) { - texture = texPosY; - } else if (vertexNormal == vec3(0, -1, 0)) { - texture = texNegY; - } else if (vertexNormal == vec3(0, 0, 1)) { - texture = texPosZ; - } else if (vertexNormal == vec3(0, 0, -1)) { - texture = texNegZ; - } else { - texture = texNegX; - } - outLight = calcLight(light)/255; - outTexCoord = vec3(texCoord, float(texture)); - mvVertexPos = mvPos.xyz; -} \ No newline at end of file diff --git a/assets/cubyz/shaders/item_drop.vs b/assets/cubyz/shaders/item_drop.vs index d3d9fbe3..5891a130 100644 --- a/assets/cubyz/shaders/item_drop.vs +++ b/assets/cubyz/shaders/item_drop.vs @@ -56,7 +56,7 @@ void main() { voxelModel = voxelModelIndex; blockType = block; - startPosition = lower + vec3(upper)*0.999*pos; + startPosition = lower + vec3(upper - lower)*0.999*pos; vec4 worldSpace = modelMatrix*vec4(pos*(upper - lower)*sizeScale + sizeScale/2, 1); direction = (transpose(mat3(modelMatrix))*worldSpace.xyz).xyz; diff --git a/src/itemdrop.zig b/src/itemdrop.zig index 8ffb7421..64c54cfe 100644 --- a/src/itemdrop.zig +++ b/src/itemdrop.zig @@ -531,25 +531,6 @@ pub const ClientItemDropManager = struct { }; pub const ItemDropRenderer = struct { -// -// // uniform locations: -// private static ShaderProgram shader; -// public static int loc_projectionMatrix; -// public static int loc_viewMatrix; -// public static int loc_texture_sampler; -// public static int loc_emissionSampler; -// public static int loc_fog_activ; -// public static int loc_fog_color; -// public static int loc_fog_density; -// public static int loc_ambientLight; -// public static int loc_directionalLight; -// public static int loc_light; -// public static int loc_texPosX; -// public static int loc_texNegX; -// public static int loc_texPosY; -// public static int loc_texNegY; -// public static int loc_texPosZ; -// public static int loc_texNegZ; var itemShader: graphics.Shader = undefined; var itemUniforms: struct { projectionMatrix: c_int, @@ -643,12 +624,6 @@ pub const ItemDropRenderer = struct { }; pub fn init() !void { -// if (shader != null) { -// shader.cleanup(); -// } -// shader = new ShaderProgram(Utils.loadResource(shaders + "/block_drop.vs"), -// Utils.loadResource(shaders + "/block_drop.fs"), -// BlockDropRenderer.class); itemShader = try graphics.Shader.create("assets/cubyz/shaders/item_drop.vs", "assets/cubyz/shaders/item_drop.fs"); itemUniforms = itemShader.bulkGetUniformLocation(@TypeOf(itemUniforms)); itemModelSSBO = graphics.SSBO.init(); @@ -793,58 +768,4 @@ pub const ItemDropRenderer = struct { } } } -}; - -//public final class BlockDropRenderer { -// -// private static void renderBlockDrops(FrustumIntersection frustumInt, Vector3f ambientLight, DirectionalLight directionalLight, Vector3d playerPosition) { -// glActiveTexture(GL_TEXTURE0); -// Meshes.blockTextureArray.bind(); -// glActiveTexture(GL_TEXTURE1); -// Meshes.emissionTextureArray.bind(); -// shader.bind(); -// shader.setUniform(loc_fog_activ, Cubyz.fog.isActive()); -// shader.setUniform(loc_fog_color, Cubyz.fog.getColor()); -// shader.setUniform(loc_fog_density, Cubyz.fog.getDensity()); -// shader.setUniform(loc_projectionMatrix, Window.getProjectionMatrix()); -// shader.setUniform(loc_texture_sampler, 0); -// shader.setUniform(loc_emissionSampler, 1); -// shader.setUniform(loc_ambientLight, ambientLight); -// shader.setUniform(loc_directionalLight, directionalLight.getDirection()); -// ItemEntityManager manager = Cubyz.world.itemEntityManager; -// for(int ii = 0; ii < manager.size; ii++) { -// int i = manager.indices[ii] & 0xffff; -// if (manager.itemStacks[i].getItem() instanceof ItemBlock) { -// int index = i; -// int index3 = 3*i; -// int x = (int)(manager.posxyz[index3] + 1.0f); -// int y = (int)(manager.posxyz[index3+1] + 1.0f); -// int z = (int)(manager.posxyz[index3+2] + 1.0f); -// int block = ((ItemBlock)manager.itemStacks[i].getItem()).getBlock(); -// Mesh mesh = BlockMeshes.mesh(block & Blocks.TYPE_MASK); -// mesh.setTexture(null); -// shader.setUniform(loc_texNegX, BlockMeshes.textureIndices(block)[Neighbors.DIR_NEG_X]); -// shader.setUniform(loc_texPosX, BlockMeshes.textureIndices(block)[Neighbors.DIR_POS_X]); -// shader.setUniform(loc_texNegY, BlockMeshes.textureIndices(block)[Neighbors.DIR_DOWN]); -// shader.setUniform(loc_texPosY, BlockMeshes.textureIndices(block)[Neighbors.DIR_UP]); -// shader.setUniform(loc_texNegZ, BlockMeshes.textureIndices(block)[Neighbors.DIR_NEG_Z]); -// shader.setUniform(loc_texPosZ, BlockMeshes.textureIndices(block)[Neighbors.DIR_POS_Z]); -// if (mesh != null) { -// shader.setUniform(loc_light, Cubyz.world.getLight(x, y, z, ambientLight, ClientSettings.easyLighting)); -// Vector3d position = manager.getPosition(index).sub(playerPosition); -// Matrix4f modelMatrix = Transformation.getModelMatrix(new Vector3f((float)position.x, (float)position.y, (float)position.z), manager.getRotation(index), ItemEntityManager.DIAMETER); -// Matrix4f modelViewMatrix = Transformation.getModelViewMatrix(modelMatrix, Camera.getViewMatrix()); -// shader.setUniform(loc_viewMatrix, modelViewMatrix); -// glBindVertexArray(mesh.vaoId); -// mesh.render(); -// } -// } -// } -// } -// -// public static void render(FrustumIntersection frustumInt, Vector3f ambientLight, DirectionalLight directionalLight, Vector3d playerPosition) { -// ((InterpolatedItemEntityManager)Cubyz.world.itemEntityManager).updateInterpolationData(); -// renderBlockDrops(frustumInt, ambientLight, directionalLight, playerPosition); -// renderItemDrops(frustumInt, ambientLight, directionalLight, playerPosition); -// } -//} \ No newline at end of file +}; \ No newline at end of file diff --git a/src/main.zig b/src/main.zig index 2ef463a0..6d8fefca 100644 --- a/src/main.zig +++ b/src/main.zig @@ -31,7 +31,7 @@ pub var threadPool: utils.ThreadPool = undefined; var logFile: std.fs.File = undefined; // overwrite the log function: pub const std_options = struct { - pub const log_level = .info; + pub const log_level = .debug; pub fn logFn( comptime level: std.log.Level, comptime _: @Type(.EnumLiteral), diff --git a/src/network.zig b/src/network.zig index acc20ae4..b745a9db 100644 --- a/src/network.zig +++ b/src/network.zig @@ -97,6 +97,10 @@ const Address = struct { ip: u32, port: u16, isSymmetricNAT: bool = false, + + pub fn format(self: Address, _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { + try writer.print("{}.{}.{}.{}:{}", .{self.ip & 255, self.ip >> 8 & 255, self.ip >> 16 & 255, self.ip >> 24, self.port}); + } }; const Request = struct { @@ -280,7 +284,7 @@ const STUN = struct { continue; }; if(oldAddress) |other| { - std.log.info("{}.{}.{}.{}:{}", .{result.ip & 255, result.ip >> 8 & 255, result.ip >> 16 & 255, result.ip >> 24, result.port}); + std.log.info("{}", .{result}); if(other.ip == result.ip and other.port == result.port) { return result; } else { diff --git a/src/settings.zig b/src/settings.zig index 0688d91c..37b66f31 100644 --- a/src/settings.zig +++ b/src/settings.zig @@ -29,7 +29,7 @@ pub var bloom: bool = true; pub var playerName: []const u8 = "quanturmdoelvloper"; -pub var lastUsedIPAddress: []const u8 = "localhost"; +pub var lastUsedIPAddress: []const u8 = "127.0.0.1"; pub fn init() !void {