Skip to content

Commit 81072f4

Browse files
committed
0.2.0
stable
1 parent 0cd4d50 commit 81072f4

File tree

11 files changed

+71
-39
lines changed

11 files changed

+71
-39
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ apply plugin: 'net.minecraftforge.gradle'
1212
apply plugin: 'eclipse'
1313
apply plugin: 'maven-publish'
1414

15-
version = '0.1.9'
15+
version = '0.2.0'
1616
group = 'com.calicraft.vrjester' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
1717
archivesBaseName = 'VRJesterAPI'
1818

libs/OptiFine-1.16.5_HD_U_G8.jar

3.13 MB
Binary file not shown.

src/main/java/com/calicraft/vrjester/config/Config.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public JSONObject readConfig() {
2626
while (myReader.hasNextLine()) {
2727
String data = myReader.nextLine();
2828
sb.append(data);
29-
System.out.println("CONFIG: " + data);
29+
// System.out.println("CONFIG: " + data);
3030
}
3131
myReader.close();
3232
return new JSONObject(sb.toString());

src/main/java/com/calicraft/vrjester/handlers/PlaceEventHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class PlaceEventHandler {
1414
@SubscribeEvent
1515
public void onPlaceEvent(BlockEvent.EntityPlaceEvent event) {
1616
String pos;
17-
VRData vrData = VrJesterApi.TRACKER.getVRData();
17+
VRData vrData = VrJesterApi.TRACKER.getVRDataRoomPre();
1818
VRPlayer vrPlayer = VrJesterApi.TRACKER.getVrPlayer();
1919
if (vrPlayer == null) {
2020
pos = "null";

src/main/java/com/calicraft/vrjester/handlers/PlayerInitHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) {
1313
PositionTracker tracker = new PositionTracker();
1414
VrJesterApi.TRACKER = tracker;
1515
String pos;
16-
if (tracker.getVRData() == null)
16+
if (tracker.getVRDataRoomPre() == null)
1717
pos = "null";
1818
else
1919
pos = tracker.vrPlayer.toString();

src/main/java/com/calicraft/vrjester/handlers/TriggerEventHandler.java

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
import com.calicraft.vrjester.config.Constants;
66
import com.calicraft.vrjester.utils.vrdata.VRDataAggregator;
77
import com.calicraft.vrjester.utils.vrdata.VRDataState;
8+
import com.calicraft.vrjester.utils.vrdata.VRDataType;
89
import com.calicraft.vrjester.utils.vrdata.VRDataWriter;
9-
import com.calicraft.vrjester.vox.Vattice;
10+
import com.calicraft.vrjester.vox.Vox;
1011
import net.minecraft.client.entity.player.ClientPlayerEntity;
1112
import net.minecraft.particles.BasicParticleType;
1213
import net.minecraft.particles.ParticleTypes;
@@ -22,9 +23,11 @@
2223
import static com.calicraft.vrjester.VrJesterApi.VIVECRAFTLOADED;
2324
import static com.calicraft.vrjester.VrJesterApi.getMCI;
2425
import static com.calicraft.vrjester.utils.tools.SpawnParticles.createParticles;
26+
import static com.calicraft.vrjester.utils.vrdata.VRDataType.VRDATA_ROOM_PRE;
2527

2628
public class TriggerEventHandler {
27-
private static final VRDataAggregator data_aggregator = new VRDataAggregator();
29+
private static final VRDataAggregator preRoomDataAggregator = new VRDataAggregator(VRDataType.VRDATA_ROOM_PRE, false);
30+
private static final VRDataAggregator preWorldDataAggregator = new VRDataAggregator(VRDataType.VRDATA_WORLD_PRE, false);
2831
private static Config config = new Config(Constants.DEV_CONFIG_PATH);
2932
// private static final VRDataWriter vrDataWriter = new VRDataWriter("VRJester_Data", new String[]{"rc"}, 0);
3033
// private static VRDataWriter voxDataWriter;
@@ -34,7 +37,7 @@ public class TriggerEventHandler {
3437
private long elapsed_time = 0;
3538

3639
private static Vector3d origin;
37-
private static Vattice activeVattice;
40+
private static Vox activeVox;
3841
private static int[] previousId;
3942
private static int particle = 0;
4043
private static final BasicParticleType[] particleTypes = new BasicParticleType[]{ParticleTypes.FLAME,
@@ -64,19 +67,19 @@ public void onJesterTrigger(InputEvent.KeyInputEvent event) {
6467
// for (Vox vox: voxList) {
6568
// // VOX ID: {3, 8 , 26}
6669
// System.out.println("VOX ID: " + Arrays.toString(vox.getId()));
67-
// for (VRDataState vrDataState : data_aggregator.getData()) {
70+
// for (VRDataState vrDataState : preRoomDataAggregator.getData()) {
6871
// System.out.println("VOX: " + vox.centroid);
6972
// System.out.println("RC: " + vrDataState.getRc()[0]);
7073
// if (vox.hasPoint(vrDataState.getRc()[0]))
7174
// createParticles(ParticleTypes.FLAME, vrDataState.getRc());
7275
// }
7376
// }
7477
// }
75-
origin = null; activeVattice = null; voxIds.clear();
78+
origin = null; activeVox = null; voxIds.clear();
7679
elapsed_time = System.nanoTime() - elapsed_time;
77-
// JesterRecognition recognizer = new JesterRecognition(data_aggregator.getData(), elapsed_time);
80+
// JesterRecognition recognizer = new JesterRecognition(preRoomDataAggregator.getData(), elapsed_time);
7881
// recognizer.isLinearGesture(VRDevice.RC);
79-
data_aggregator.clear(); elapsed_time = 0;
82+
preRoomDataAggregator.clear(); elapsed_time = 0;
8083
// Fire event or trigger something based on recognized gesture
8184
}
8285
}
@@ -90,24 +93,24 @@ public void onClientTick(TickEvent.ClientTickEvent event) throws IOException {
9093

9194
if (VrJesterApi.MOD_KEY.isDown() && !VIVECRAFTLOADED)
9295
createParticles(ParticleTypes.FLAME, null);
93-
// Listen for VR data after trigger
94-
if (listener) { // Capture data in real time
95-
VRDataState vrDataState = data_aggregator.listen();
96-
// * Single Vox Recognition Working
97-
if (origin == null && activeVattice == null) {
98-
origin = vrDataState.getRc()[0];
99-
activeVattice = new Vattice(origin);
100-
previousId = activeVattice.getId();
96+
97+
if (listener) { // Capture VR data in real time after trigger
98+
VRDataState vrDataRoomPre = preRoomDataAggregator.listen();
99+
VRDataState vrDataWorldPre = preWorldDataAggregator.listen();
100+
if (origin == null && activeVox == null) {
101+
origin = vrDataRoomPre.getRc()[0];
102+
activeVox = new Vox(origin, false);
103+
previousId = activeVox.getId();
101104
particle = 0; trace = "[0, 0, 0]";
102105
voxIds.add(previousId);
103106
// voxDataWriter = new VRDataWriter();
104107
// voxDataWriter.write("[0, 0, 0]");
105108
} else {
106-
// vrDataWriter.write(vrDataState);
109+
// vrDataWriter.write(vrDataRoomPre);
107110

108111
// Note: The getDeltaMovement() initially returns player position before returning the actual delta movement like a sussy baka
109-
activeVattice.updateVoxPosition(player.getDeltaMovement()); // Try hardcoding a set # of vox#.updateVox()
110-
int[] currentId = activeVattice.updateVox(vrDataState.getRc()[0]);
112+
// activeVox.updateVoxPosition(player.getDeltaMovement());
113+
int[] currentId = activeVox.updateVox(vrDataRoomPre.getRc()[0]);
111114
if (!Arrays.equals(previousId, currentId)) { // Update Vox Trace
112115
// voxDataWriter.write(Arrays.toString(currentId));
113116
voxIds.add(currentId);
@@ -119,8 +122,10 @@ public void onClientTick(TickEvent.ClientTickEvent event) throws IOException {
119122
particle = 0;
120123
System.out.println("TRACE: " + trace);
121124
} else {
122-
createParticles(particleTypes[particle], vrDataState.getRc());
125+
createParticles(particleTypes[particle], vrDataWorldPre.getRc());
123126
}
127+
128+
124129
// for (int i = 0; i < gestures.length; i++) { // CHECK SINGLE GESTURE (UPPERCUT PUNCH)
125130
// if (trace.equals(gestures[i])) {
126131
// particle = particleTypes.length - 1; trace = "[0, 0, 0]";
@@ -139,8 +144,7 @@ public void onClientTick(TickEvent.ClientTickEvent event) throws IOException {
139144
}
140145

141146

142-
// * Write data to file(s) to debug/analyze
143-
// vrDataWriter.write(vrDataState);
147+
144148
// if (sleep % 20 == 0) // Print every 1 second
145149
// System.out.println("JESTER LISTENING");
146150
// if (sleep == 0) { // Reset trigger when done

src/main/java/com/calicraft/vrjester/tracker/PositionTracker.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@ public PositionTracker() {
3636
}
3737
}
3838

39-
public VRData getVRData() {
39+
// Note: VR data getters must be called later after initialization to avoid NullPointerException (i.e.: ExceptionInInitializerError: null)
40+
public VRData getVRDataRoomPre() { // Return real world VR data pre-tick
41+
return vrPlayer.vrdata_room_pre;
42+
}
43+
44+
public VRData getVRDataWorldPre() { // Return in-game world VR data pre-tick
4045
return vrPlayer.vrdata_world_pre;
4146
}
4247

src/main/java/com/calicraft/vrjester/utils/vrdata/VRDataAggregator.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,33 @@ public class VRDataAggregator {
1010
// Class for consuming VR Data from Vivecraft Tracker
1111
// to later pass to gesture recognition phase
1212
private final List<VRDataState> data = new ArrayList<>();
13+
private VRDataType vrDataType;
14+
private boolean saveState;
1315
public Context ctx;
1416

15-
public VRDataAggregator() {
17+
public VRDataAggregator(VRDataType vrDataType, boolean saveState) {
18+
this.vrDataType = vrDataType;
19+
this.saveState = saveState;
1620
}
1721

1822
public List<VRDataState> getData() {
1923
return data;
2024
}
2125

22-
public VRDataState listen() { // Consume VRDevicePose data from TRACKER
23-
VRData vrData = VrJesterApi.TRACKER.getVRData();
26+
public VRDataState listen() { // Consume Vivecraft VRDevicePose data from TRACKER
27+
VRData vrData;
28+
switch(vrDataType) {
29+
case VRDATA_ROOM_PRE:
30+
vrData = VrJesterApi.TRACKER.getVRDataRoomPre(); break;
31+
case VRDATA_WORLD_PRE:
32+
vrData = VrJesterApi.TRACKER.getVRDataWorldPre(); break;
33+
default:
34+
vrData = null;
35+
}
2436
assert vrData != null;
2537
VRDataState dataState = new VRDataState(vrData.hmd, vrData.c0, vrData.c1, vrData.c2);
26-
data.add(dataState);
38+
if (saveState)
39+
data.add(dataState);
2740
return dataState;
2841
}
2942

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.calicraft.vrjester.utils.vrdata;
2+
3+
public enum VRDataType {
4+
VRDATA_ROOM_PRE,
5+
VRDATA_ROOM_POST,
6+
VRDATA_WORLD_PRE,
7+
VRDATA_WORLD_POST
8+
}

src/main/java/com/calicraft/vrjester/vox/Vattice.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
import net.minecraft.util.math.vector.Vector3d;
44

5-
public class Vattice extends Vox {
5+
public class Vattice {
66

77
public Vattice(Vector3d centroid) {
8-
super(centroid);
98
}
109
}

0 commit comments

Comments
 (0)