mirror of
https://github.com/PixelGuys/Cubyz.git
synced 2025-08-03 11:17:05 -04:00
rename bounce to bounciness
This commit is contained in:
parent
134e8ca92c
commit
1aef45e9c9
@ -1,7 +1,7 @@
|
||||
.{
|
||||
.tags = .{.choppable, .cuttable},
|
||||
.blockHealth = 3,
|
||||
.bounce = 0.75,
|
||||
.bounciness = 0.75,
|
||||
.drops = .{
|
||||
.{.items = .{.auto}},
|
||||
},
|
||||
|
@ -1,7 +1,7 @@
|
||||
.{
|
||||
.tags = .{.choppable, .cuttable},
|
||||
.blockHealth = 3,
|
||||
.bounce = 0.5,
|
||||
.bounciness = 0.5,
|
||||
.drops = .{
|
||||
.{.items = .{.auto}},
|
||||
},
|
||||
|
@ -1,7 +1,7 @@
|
||||
.{
|
||||
.tags = .{.choppable, .cuttable},
|
||||
.blockHealth = 3,
|
||||
.bounce = 1.0,
|
||||
.bounciness = 1.0,
|
||||
.drops = .{
|
||||
.{.items = .{.auto}},
|
||||
},
|
||||
|
@ -79,7 +79,7 @@ var _lodReplacement: [maxBlockCount]u16 = undefined;
|
||||
var _opaqueVariant: [maxBlockCount]u16 = undefined;
|
||||
|
||||
var _friction: [maxBlockCount]f32 = undefined;
|
||||
var _bounce: [maxBlockCount]f32 = undefined;
|
||||
var _bounciness: [maxBlockCount]f32 = undefined;
|
||||
var _density: [maxBlockCount]f32 = undefined;
|
||||
var _terminalVelocity: [maxBlockCount]f32 = undefined;
|
||||
var _mobility: [maxBlockCount]f32 = undefined;
|
||||
@ -133,7 +133,7 @@ pub fn register(_: []const u8, id: []const u8, zon: ZonElement) u16 {
|
||||
_viewThrough[size] = zon.get(bool, "viewThrough", false) or _transparent[size] or _alwaysViewThrough[size];
|
||||
_hasBackFace[size] = zon.get(bool, "hasBackFace", false);
|
||||
_friction[size] = zon.get(f32, "friction", 20);
|
||||
_bounce[size] = zon.get(f32, "bounce", 0.0);
|
||||
_bounciness[size] = zon.get(f32, "bounciness", 0.0);
|
||||
_density[size] = zon.get(f32, "density", 0.001);
|
||||
_terminalVelocity[size] = zon.get(f32, "terminalVelocity", 90);
|
||||
_mobility[size] = zon.get(f32, "mobility", 1.0);
|
||||
@ -401,8 +401,8 @@ pub const Block = packed struct { // MARK: Block
|
||||
return _friction[self.typ];
|
||||
}
|
||||
|
||||
pub inline fn bounce(self: Block) f32 {
|
||||
return _bounce[self.typ];
|
||||
pub inline fn bounciness(self: Block) f32 {
|
||||
return _bounciness[self.typ];
|
||||
}
|
||||
|
||||
pub inline fn density(self: Block) f32 {
|
||||
|
22
src/game.zig
22
src/game.zig
@ -281,7 +281,7 @@ pub const collision = struct {
|
||||
|
||||
const SurfaceProperties = struct {
|
||||
friction: f32,
|
||||
bounce: f32,
|
||||
bounciness: f32,
|
||||
};
|
||||
|
||||
pub fn calculateSurfaceProperties(comptime side: main.utils.Side, pos: Vec3d, hitBox: Box, defaultFriction: f32) SurfaceProperties {
|
||||
@ -297,7 +297,7 @@ pub const collision = struct {
|
||||
const z: i32 = @intFromFloat(@floor(boundingBox.min[2] - 0.01));
|
||||
|
||||
var friction: f64 = 0;
|
||||
var bounce: f64 = 0;
|
||||
var bounciness: f64 = 0;
|
||||
var totalArea: f64 = 0;
|
||||
|
||||
var x = minX;
|
||||
@ -326,7 +326,7 @@ pub const collision = struct {
|
||||
if(block.collide()) {
|
||||
totalArea += area;
|
||||
friction += area*@as(f64, @floatCast(block.friction()));
|
||||
bounce += area*@as(f64, @floatCast(block.bounce()));
|
||||
bounciness += area*@as(f64, @floatCast(block.bounciness()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -334,15 +334,15 @@ pub const collision = struct {
|
||||
|
||||
if(totalArea == 0) {
|
||||
friction = defaultFriction;
|
||||
bounce = 0.0;
|
||||
bounciness = 0.0;
|
||||
} else {
|
||||
friction = friction/totalArea;
|
||||
bounce = bounce/totalArea;
|
||||
bounciness = bounciness/totalArea;
|
||||
}
|
||||
|
||||
return .{
|
||||
.friction = @floatCast(friction),
|
||||
.bounce = @floatCast(bounce),
|
||||
.bounciness = @floatCast(bounciness),
|
||||
};
|
||||
}
|
||||
|
||||
@ -1277,14 +1277,14 @@ pub fn update(deltaTime: f64) void { // MARK: update()
|
||||
} else {
|
||||
Player.super.pos[2] = box.min[2] - hitBox.max[2];
|
||||
}
|
||||
var bounce = if(Player.isFlying.load(.monotonic)) 0 else collision.calculateSurfaceProperties(.client, Player.super.pos, Player.outerBoundingBox, 0.0).bounce;
|
||||
var bounciness = if(Player.isFlying.load(.monotonic)) 0 else collision.calculateSurfaceProperties(.client, Player.super.pos, Player.outerBoundingBox, 0.0).bounciness;
|
||||
if(KeyBoard.key("crouch").pressed) {
|
||||
bounce *= 0.5;
|
||||
bounciness *= 0.5;
|
||||
}
|
||||
var velocityChange: f64 = undefined;
|
||||
if(bounce != 0.0 and Player.super.vel[2] < -3.0) {
|
||||
velocityChange = Player.super.vel[2]*@as(f64, @floatCast(1 - bounce));
|
||||
Player.super.vel[2] = -Player.super.vel[2]*bounce;
|
||||
if(bounciness != 0.0 and Player.super.vel[2] < -3.0) {
|
||||
velocityChange = Player.super.vel[2]*@as(f64, @floatCast(1 - bounciness));
|
||||
Player.super.vel[2] = -Player.super.vel[2]*bounciness;
|
||||
Player.jumpCoyote = Player.jumpCoyoteTimeConstant + deltaTime;
|
||||
} else {
|
||||
velocityChange = Player.super.vel[2];
|
||||
|
Loading…
x
Reference in New Issue
Block a user