mirror of
https://github.com/PixelGuys/Cubyz.git
synced 2025-09-08 11:44:21 -04:00
itemdrop cleanup and some small fixes.
This commit is contained in:
parent
c1fac3ff3e
commit
be52c1054d
Binary file not shown.
Before Width: | Height: | Size: 778 B After Width: | Height: | Size: 2.7 KiB |
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -56,7 +56,7 @@ void main() {
|
|||||||
voxelModel = voxelModelIndex;
|
voxelModel = voxelModelIndex;
|
||||||
blockType = block;
|
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);
|
vec4 worldSpace = modelMatrix*vec4(pos*(upper - lower)*sizeScale + sizeScale/2, 1);
|
||||||
direction = (transpose(mat3(modelMatrix))*worldSpace.xyz).xyz;
|
direction = (transpose(mat3(modelMatrix))*worldSpace.xyz).xyz;
|
||||||
|
@ -531,25 +531,6 @@ pub const ClientItemDropManager = struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub const ItemDropRenderer = 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 itemShader: graphics.Shader = undefined;
|
||||||
var itemUniforms: struct {
|
var itemUniforms: struct {
|
||||||
projectionMatrix: c_int,
|
projectionMatrix: c_int,
|
||||||
@ -643,12 +624,6 @@ pub const ItemDropRenderer = struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub fn init() !void {
|
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");
|
itemShader = try graphics.Shader.create("assets/cubyz/shaders/item_drop.vs", "assets/cubyz/shaders/item_drop.fs");
|
||||||
itemUniforms = itemShader.bulkGetUniformLocation(@TypeOf(itemUniforms));
|
itemUniforms = itemShader.bulkGetUniformLocation(@TypeOf(itemUniforms));
|
||||||
itemModelSSBO = graphics.SSBO.init();
|
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);
|
|
||||||
// }
|
|
||||||
//}
|
|
@ -31,7 +31,7 @@ pub var threadPool: utils.ThreadPool = undefined;
|
|||||||
var logFile: std.fs.File = undefined;
|
var logFile: std.fs.File = undefined;
|
||||||
// overwrite the log function:
|
// overwrite the log function:
|
||||||
pub const std_options = struct {
|
pub const std_options = struct {
|
||||||
pub const log_level = .info;
|
pub const log_level = .debug;
|
||||||
pub fn logFn(
|
pub fn logFn(
|
||||||
comptime level: std.log.Level,
|
comptime level: std.log.Level,
|
||||||
comptime _: @Type(.EnumLiteral),
|
comptime _: @Type(.EnumLiteral),
|
||||||
|
@ -97,6 +97,10 @@ const Address = struct {
|
|||||||
ip: u32,
|
ip: u32,
|
||||||
port: u16,
|
port: u16,
|
||||||
isSymmetricNAT: bool = false,
|
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 {
|
const Request = struct {
|
||||||
@ -280,7 +284,7 @@ const STUN = struct {
|
|||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
if(oldAddress) |other| {
|
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) {
|
if(other.ip == result.ip and other.port == result.port) {
|
||||||
return result;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
|
@ -29,7 +29,7 @@ pub var bloom: bool = true;
|
|||||||
|
|
||||||
pub var playerName: []const u8 = "quanturmdoelvloper";
|
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 {
|
pub fn init() !void {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user