Skip to content
This repository was archived by the owner on Dec 24, 2023. It is now read-only.

Commit e278bf1

Browse files
Merge branch 'development' into main
2 parents cf57ad3 + 42930a6 commit e278bf1

File tree

8 files changed

+33
-12
lines changed

8 files changed

+33
-12
lines changed

rayon-core/src/main/java/dev/lazurite/rayon/core/impl/physics/space/body/shape/BoundingBoxShape.java

+6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package dev.lazurite.rayon.core.impl.physics.space.body.shape;
22

3+
import com.jme3.bounding.BoundingBox;
34
import com.jme3.bullet.collision.shapes.BoxCollisionShape;
45
import com.jme3.math.Vector3f;
6+
import dev.lazurite.rayon.core.impl.util.math.BoxHelper;
57
import net.minecraft.util.math.Box;
68

79
/**
@@ -21,6 +23,10 @@ public BoundingBoxShape(Box box) {
2123
this.box = box;
2224
}
2325

26+
public BoundingBoxShape(BoundingBox box) {
27+
this(BoxHelper.bulletToMinecraft(box));
28+
}
29+
2430
public Box getBox() {
2531
return this.box;
2632
}

rayon-core/src/main/java/dev/lazurite/rayon/core/impl/physics/space/environment/TerrainManager.java

+19-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.google.common.collect.Lists;
44
import com.jme3.bullet.collision.shapes.CollisionShape;
55
import com.jme3.bullet.objects.PhysicsRigidBody;
6+
import com.jme3.math.Vector3f;
67
import dev.lazurite.rayon.core.impl.RayonCoreCommon;
78
import dev.lazurite.rayon.core.impl.physics.space.body.BlockRigidBody;
89
import dev.lazurite.rayon.core.impl.physics.space.body.shape.BoundingBoxShape;
@@ -118,16 +119,20 @@ public void load(TerrainLoading terrainLoading, Box box) {
118119

119120
BlockEntity blockEntity = world.getBlockEntity(blockPos);
120121

121-
if (blockEntity != null) {
122-
pattern = Disassembler.getBlockEntity(blockEntity, transformation);
123-
} else {
124-
pattern = Disassembler.getBlock(blockState, blockPos, world, transformation);
122+
try {
123+
if (blockEntity != null) {
124+
pattern = Disassembler.getBlockEntity(blockEntity, transformation);
125+
} else {
126+
pattern = Disassembler.getBlock(blockState, blockPos, world, transformation);
127+
}
128+
} catch (Exception e) {
129+
pattern = null;
125130
}
126131
} else {
127132
pattern = PatternBuffer.getBlockBuffer(world).get(blockPos);
128133
}
129134

130-
if (pattern != null) {
135+
if (pattern != null && !blockState.getBlock().equals(Blocks.GRASS_PATH)) {
131136
if (body.getCollisionShape() instanceof PatternShape) {
132137
if (!pattern.equals(((PatternShape) body.getCollisionShape()).getPattern())) {
133138
body.setCollisionShape(new PatternShape(pattern));
@@ -143,6 +148,15 @@ public void load(TerrainLoading terrainLoading, Box box) {
143148
PatternBuffer.getBlockBuffer(world).put(pattern);
144149
}
145150
}
151+
} else {
152+
VoxelShape voxel = blockState.getCollisionShape(world, blockPos);
153+
154+
if (!voxel.isEmpty()) {
155+
body.setCollisionShape(new BoundingBoxShape(voxel.getBoundingBox()));
156+
body.setPhysicsLocation(new Vector3f(blockPos.getX() + 0.5f, blockPos.getY() + (float) voxel.getBoundingBox().getCenter().y, blockPos.getZ() + 0.5f));
157+
} else {
158+
body.setCollisionShape(new BoundingBoxShape(new Box(-0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f)));
159+
}
146160
}
147161
} else if (body.getCollisionShape() instanceof PatternShape) {
148162
VoxelShape voxel = blockState.getCollisionShape(world, blockPos);

rayon-core/src/main/java/dev/lazurite/rayon/core/impl/util/supplier/player/ClientPlayerSupplier.java

-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
package dev.lazurite.rayon.core.impl.util.supplier.player;
22

3-
import net.fabricmc.api.EnvType;
4-
import net.fabricmc.api.Environment;
53
import net.minecraft.client.MinecraftClient;
64
import net.minecraft.client.network.ClientPlayerEntity;
75

86
/**
97
* This was created because {@link MinecraftClient} is not
108
* allowed in server-side code.
119
*/
12-
@Environment(EnvType.CLIENT)
1310
public interface ClientPlayerSupplier {
1411
static ClientPlayerEntity get() {
1512
return MinecraftClient.getInstance().player;

rayon-core/src/main/resources/fabric.mod.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
"hermes": true,
3333
"modmenu": {
3434
"links": { "modmenu.discord": "https://discord.gg/NNPPHN7b3P" },
35-
"badges": [ "library" ]
35+
"badges": [ "library" ],
36+
"parent": "rayon"
3637
}
3738
}
3839
}

rayon-entity/src/main/java/dev/lazurite/rayon/entity/impl/RayonEntityCommon.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public void onInitialize() {
6767

6868
/* Movement Updates */
6969
if (rigidBody.isActive() && rigidBody.needsMovementUpdate()) {
70-
if ((space.isServer() && rigidBody.getPriorityPlayer() == null) || ClientPlayerSupplier.get().equals(rigidBody.getPriorityPlayer())) {
70+
if ((space.isServer() && rigidBody.getPriorityPlayer() == null) || (!space.isServer() && ClientPlayerSupplier.get().equals(rigidBody.getPriorityPlayer()))) {
7171
element.sendMovementUpdate(false);
7272
}
7373
}

rayon-entity/src/main/resources/fabric.mod.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535
"hermes": true,
3636
"modmenu": {
3737
"links": { "modmenu.discord": "https://discord.gg/NNPPHN7b3P" },
38-
"badges": [ "library" ]
38+
"badges": [ "library" ],
39+
"parent": "rayon"
3940
}
4041
}
4142
}

rayon-entity/src/testmod/java/dev/lazurite/rayon/entity/testmod/common/item/WandItem.java

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand han
3030

3131
if (!world.isClient()) {
3232
CubeEntity entity = new CubeEntity(EntityTestMod.SMOL_CUBE_ENTITY, world);
33+
entity.getRigidBody().prioritize(user);
3334

3435
if (user.isSneaking()) {
3536
Vec3d unit = hitResult.getPos().subtract(user.getPos()).normalize();

rayon-particle/src/main/resources/fabric.mod.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
"hermes": true,
3131
"modmenu": {
3232
"links": { "modmenu.discord": "https://discord.gg/NNPPHN7b3P" },
33-
"badges": [ "library" ]
33+
"badges": [ "library" ],
34+
"parent": "rayon"
3435
}
3536
}
3637
}

0 commit comments

Comments
 (0)