Skip to content

Commit 95cfc35

Browse files
committed
rot
1 parent 3b38060 commit 95cfc35

File tree

4 files changed

+50
-21
lines changed

4 files changed

+50
-21
lines changed

blocks_compressed.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

generators/javascript/minecraft.js

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,25 @@ Blockly.JavaScript.minecraft = function() {
144144
" }\n"+
145145
"}\n"+
146146
"\n"+
147+
"MCPI.turtleYaw = function(angleDegrees) {\n"+
148+
" MCPI.matrix = mmMultiply(MCPI.matrix, MCPI.yawMatrix(angleDegrees));\n"+
149+
"};\n"+
150+
"\n"+
151+
"MCPI.turtlePitch = function(angleDegrees) {\n"+
152+
" MCPI.matrix = mmMultiply(MCPI.matrix, MCPI.pitchMatrix(angleDegrees));\n"+
153+
"};\n"+
154+
"\n"+
155+
"MCPI.turtleRoll = function(angleDegrees) {\n"+
156+
" MCPI.matrix = mmMultiply(MCPI.matrix, MCPI.rollMatrix(angleDegrees));\n"+
157+
"};\n"+
158+
"\n"+
147159
"MCPI.turtleGo = function(distance) {\n"+
148-
" var heading = [MCPI.curMatrix[0][2],MCPI.curMatrix[1][2],MCPI.curMatrix[2][2]]\n"+
149-
" var newX = MCPI.curX + MCPI.curMatrix[0][2] * distance;\n"+
150-
" var newY = MCPI.curY + MCPI.curMatrix[1][2] * distance;\n"+
151-
" var newZ = MCPI.curZ + MCPI.curMatrix[2][2] * distance;\n"+
152-
" MCPI.drawLine(MCPI.curX,MCPI.curY,MCPI.curZ,newX,newY,newZ);\n"+
160+
" var heading = [MCPI.matrix[0][2],MCPI.matrix[1][2],MCPI.matrix[2][2]]\n"+
161+
" var newX = MCPI.curX + MCPI.matrix[0][2] * distance;\n"+
162+
" var newY = MCPI.curY + MCPI.matrix[1][2] * distance;\n"+
163+
" var newZ = MCPI.curZ + MCPI.matrix[2][2] * distance;\n"+
164+
" if (MCPI.penDown)\n"+
165+
" MCPI.drawLine(MCPI.curX,MCPI.curY,MCPI.curZ,newX,newY,newZ);\n"+
153166
" MCPI.curX = newX;\n"+
154167
" MCPI.curY = newY;\n"+
155168
" MCPI.curZ = newZ;\n"+
@@ -172,9 +185,8 @@ Blockly.JavaScript.minecraft = function() {
172185
"\n"+
173186
" MCPI.socket.onmessage = function(event) {\n"+
174187
" var pitch = parseFloat(event.data.trim());\n"+
175-
" MCPI.curMatrix = MCPI.mmMultiply(MCPI.yawMatrix(yaw), MCPI.pitchMatrix(-pitch));\n"+
176-
"\n"+
177-
" MCPI.turtleGo(20);\n";
188+
" MCPI.matrix = MCPI.mmMultiply(MCPI.yawMatrix(yaw), MCPI.pitchMatrix(-pitch));\n"+
189+
"\n";
178190
Blockly.JavaScript.cleanups_['minecraft'] = "MCPI.socket.close();\n"+
179191
"}; // end MCPI.socket.onmessage for player.getRotation()\n"+
180192
"MCPI.socket.send(\"player.getPitch()\");\n"+
@@ -199,13 +211,15 @@ Blockly.JavaScript['minecraft_set_block'] = function(block) {
199211
};
200212

201213
Blockly.JavaScript['minecraft_turtle_go'] = function(block) {
214+
Blockly.JavaScript.minecraft();
202215
var value_distance = Blockly.JavaScript.valueToCode(block, 'DISTANCE', Blockly.JavaScript.ORDER_ATOMIC);
203216
// TODO: Assemble JavaScript into code variable.
204217
var code = 'MCPI.turtleGo('+value_distance+');\n';
205218
return code;
206219
};
207220

208221
Blockly.JavaScript['minecraft_turtle_yaw'] = function(block) {
222+
Blockly.JavaScript.minecraft();
209223
var dropdown_direction = block.getFieldValue('DIRECTION');
210224
var angle_angle = block.getFieldValue('ANGLE');
211225
var value_name = Blockly.JavaScript.valueToCode(block, 'NAME', Blockly.JavaScript.ORDER_ATOMIC);
@@ -214,6 +228,7 @@ Blockly.JavaScript['minecraft_turtle_yaw'] = function(block) {
214228
};
215229

216230
Blockly.JavaScript['minecraft_turtle_pitch'] = function(block) {
231+
Blockly.JavaScript.minecraft();
217232
var dropdown_direction = block.getFieldValue('DIRECTION');
218233
var angle_angle = block.getFieldValue('ANGLE');
219234
var value_name = Blockly.JavaScript.valueToCode(block, 'NAME', Blockly.JavaScript.ORDER_ATOMIC);
@@ -222,6 +237,7 @@ Blockly.JavaScript['minecraft_turtle_pitch'] = function(block) {
222237
};
223238

224239
Blockly.JavaScript['minecraft_turtle_roll'] = function(block) {
240+
Blockly.JavaScript.minecraft();
225241
var dropdown_direction = block.getFieldValue('DIRECTION');
226242
var angle_angle = block.getFieldValue('ANGLE');
227243
var value_name = Blockly.JavaScript.valueToCode(block, 'NAME', Blockly.JavaScript.ORDER_ATOMIC);

generators/javascript/source/mcinit.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,25 @@ MCPI.drawLine = function(x1,y1,z1,x2,y2,z2) {
143143
}
144144
}
145145

146+
MCPI.turtleYaw = function(angleDegrees) {
147+
MCPI.matrix = mmMultiply(MCPI.matrix, MCPI.yawMatrix(angleDegrees));
148+
};
149+
150+
MCPI.turtlePitch = function(angleDegrees) {
151+
MCPI.matrix = mmMultiply(MCPI.matrix, MCPI.pitchMatrix(angleDegrees));
152+
};
153+
154+
MCPI.turtleRoll = function(angleDegrees) {
155+
MCPI.matrix = mmMultiply(MCPI.matrix, MCPI.rollMatrix(angleDegrees));
156+
};
157+
146158
MCPI.turtleGo = function(distance) {
147-
var heading = [MCPI.curMatrix[0][2],MCPI.curMatrix[1][2],MCPI.curMatrix[2][2]]
148-
var newX = MCPI.curX + MCPI.curMatrix[0][2] * distance;
149-
var newY = MCPI.curY + MCPI.curMatrix[1][2] * distance;
150-
var newZ = MCPI.curZ + MCPI.curMatrix[2][2] * distance;
151-
MCPI.drawLine(MCPI.curX,MCPI.curY,MCPI.curZ,newX,newY,newZ);
159+
var heading = [MCPI.matrix[0][2],MCPI.matrix[1][2],MCPI.matrix[2][2]]
160+
var newX = MCPI.curX + MCPI.matrix[0][2] * distance;
161+
var newY = MCPI.curY + MCPI.matrix[1][2] * distance;
162+
var newZ = MCPI.curZ + MCPI.matrix[2][2] * distance;
163+
if (MCPI.penDown)
164+
MCPI.drawLine(MCPI.curX,MCPI.curY,MCPI.curZ,newX,newY,newZ);
152165
MCPI.curX = newX;
153166
MCPI.curY = newY;
154167
MCPI.curZ = newZ;
@@ -171,6 +184,5 @@ MCPI.socket.onopen = function(event) {
171184

172185
MCPI.socket.onmessage = function(event) {
173186
var pitch = parseFloat(event.data.trim());
174-
MCPI.curMatrix = MCPI.mmMultiply(MCPI.yawMatrix(yaw), MCPI.pitchMatrix(-pitch));
187+
MCPI.matrix = MCPI.mmMultiply(MCPI.yawMatrix(yaw), MCPI.pitchMatrix(-pitch));
175188

176-
MCPI.turtleGo(20);

0 commit comments

Comments
 (0)