Skip to content

Commit 1dc884c

Browse files
committed
Add set block x,y,z,type
Add math blocks to toolbox
1 parent db903b1 commit 1dc884c

File tree

3 files changed

+82
-3
lines changed

3 files changed

+82
-3
lines changed

blockly/src/minecraft/api.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ exports.setSpeed = function(id, speedValue) {
1919
BlocklyApps.highlight(id);
2020
window.game.controls.walk_max_speed = speedValue;
2121
};
22+
23+
exports.setBlock = function(value, x, y, z, id) {
24+
BlocklyApps.highlight(id);
25+
window.game.setBlock([x,y,z], value);
26+
};

blockly/src/minecraft/blocks.js

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,76 @@ exports.install = function(blockly, blockInstallOptions) {
119119
return generateSetterCode(this, 'setSpeed');
120120
};
121121

122-
};
122+
generator.minecraft_setBlock = function() {
123+
var value = Blockly.JavaScript.valueToCode(this, 'VALUE', Blockly.JavaScript.ORDER_NONE);
124+
var x = Blockly.JavaScript.valueToCode(this, 'VALUE_X', Blockly.JavaScript.ORDER_NONE);
125+
var y = Blockly.JavaScript.valueToCode(this, 'VALUE_Y', Blockly.JavaScript.ORDER_NONE);
126+
var z = Blockly.JavaScript.valueToCode(this, 'VALUE_Z', Blockly.JavaScript.ORDER_NONE);
127+
return 'Minecraft.setBlock(' + value + ', ' + x + ', ' + y + ', ' + z + ', \'block_id_' + this.id + '\');\n';
128+
};
129+
130+
var MINECRAFT_BLOCKS =
131+
[
132+
['Empty', '0'],
133+
['1', '1'],
134+
['2', '2'],
135+
['3', '3'],
136+
['4', '4'],
137+
['5', '5'],
138+
['6', '6'],
139+
['7', '7'],
140+
['8', '8'],
141+
['9', '9'],
142+
['10', '10'],
143+
['11', '11'],
144+
['12', '12'],
145+
['13', '13'],
146+
['14', '14'],
147+
['15', '15'],
148+
['16', '16'],
149+
['17', '17'],
150+
['18', '18'],
151+
['19', '19'],
152+
['20', '20'],
153+
['21', '21'],
154+
['22', '22'],
155+
['23', '23'],
156+
['24', '24'],
157+
['25', '25'],
158+
['26', '26'],
159+
['27', '27'],
160+
['28', '28'],
161+
['29', '29'],
162+
['30', '30'],
163+
['31', '31'],
164+
['32', '32'],
165+
['33', '33'],
166+
['34', '34'],
167+
['35', '35'],
168+
['36', '36'],
169+
['37', '37']
170+
];
123171

124-
//game.controls.walk_max_speed
172+
blockly.Blocks.minecraft_setBlock = {
173+
helpUrl: '',
174+
init: function() {
175+
this.setHSV(184, 1.00, 0.74);
176+
this.appendDummyInput()
177+
.appendTitle('set block at');
178+
this.appendValueInput('VALUE_X');
179+
this.appendDummyInput()
180+
.appendTitle(',');
181+
this.appendValueInput('VALUE_Y');
182+
this.appendDummyInput()
183+
.appendTitle(',');
184+
this.appendValueInput('VALUE_Z');
185+
this.appendDummyInput()
186+
.appendTitle('to');
187+
this.appendValueInput('VALUE');
188+
this.setPreviousStatement(true);
189+
this.setNextStatement(true);
190+
this.setTooltip('set block');
191+
//this.setInputsInline(true);
192+
}
193+
};
194+
};

blockly/src/minecraft/levels.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ module.exports = {
1212
blockUtils.blockOfType('minecraft_playSound') +
1313
blockUtils.blockOfType('minecraft_log') +
1414
blockUtils.blockOfType('minecraft_setGravity') +
15-
blockUtils.blockOfType('minecraft_setSpeed')
15+
blockUtils.blockOfType('minecraft_setSpeed') +
16+
blockUtils.blockOfType('minecraft_setBlock') +
17+
'<block type="controls_repeat"><title name="TIMES">4</title></block><block type="controls_repeat_dropdown"><title name="TIMES" config="3-10">???</title></block><block type="controls_repeat_ext"><value name="TIMES"></value><statement name="DO"></statement></block>' +
18+
'<block type="math_number"></block><block type="math_number_dropdown"><title name="NUM" config="1-10">5</title></block><block type="math_arithmetic" inline="true"></block><block type="math_random_int"><value name="FROM"><block type="math_number"><title name="NUM">1</title></block></value><value name="TO"><block type="math_number"><title name="NUM">100</title></block></value></block><block type="math_random_float"></block>' +
19+
'<block type="variables_set" inline="false"><title name="VAR">x</title><value name="VALUE"><block type="math_number"><title name="NUM">???</title></block></value></block><block type="variables_get"><title name="VAR">x</title></block>'
1620
),
1721
startBlocks: '',
1822
requiredBlocks: '',

0 commit comments

Comments
 (0)