Spaces:
Running
Running
2410232053
Browse files- app.py +4 -4
- public/data.js +124 -0
- public/func.js +17 -0
- public/index.html +38 -0
- public/mmp4.zip +2 -2
- public/script.js +1 -0
app.py
CHANGED
|
@@ -82,12 +82,12 @@ async def sb3(req_data: TextRequest):
|
|
| 82 |
|
| 83 |
names = StringGenerator('[a-f\\d]{32}').render_list(len(data) - 1, unique=True)
|
| 84 |
for i in range(1, len(data)):
|
| 85 |
-
name = f'{names[i-1]}.png'
|
| 86 |
image_data = base64.b64decode(data[i].split(',', 1)[1])
|
| 87 |
|
| 88 |
# 画像をリサイズ
|
| 89 |
img = Image.open(BytesIO(image_data))
|
| 90 |
-
img_resized = img.resize((
|
| 91 |
img_buffer = BytesIO()
|
| 92 |
img_resized.save(img_buffer, format='PNG')
|
| 93 |
img_buffer.seek(0)
|
|
@@ -99,8 +99,8 @@ async def sb3(req_data: TextRequest):
|
|
| 99 |
"name": str(i),
|
| 100 |
"bitmapResolution": 2,
|
| 101 |
"dataFormat": "png",
|
| 102 |
-
"assetId": names[i-1],
|
| 103 |
-
"md5ext": f"{names[i-1]}.png",
|
| 104 |
"rotationCenterX": 40,
|
| 105 |
"rotationCenterY": 40
|
| 106 |
})
|
|
|
|
| 82 |
|
| 83 |
names = StringGenerator('[a-f\\d]{32}').render_list(len(data) - 1, unique=True)
|
| 84 |
for i in range(1, len(data)):
|
| 85 |
+
name = f'{names[i - 1]}.png'
|
| 86 |
image_data = base64.b64decode(data[i].split(',', 1)[1])
|
| 87 |
|
| 88 |
# 画像をリサイズ
|
| 89 |
img = Image.open(BytesIO(image_data))
|
| 90 |
+
img_resized = img.resize((80, 80))
|
| 91 |
img_buffer = BytesIO()
|
| 92 |
img_resized.save(img_buffer, format='PNG')
|
| 93 |
img_buffer.seek(0)
|
|
|
|
| 99 |
"name": str(i),
|
| 100 |
"bitmapResolution": 2,
|
| 101 |
"dataFormat": "png",
|
| 102 |
+
"assetId": names[i - 1],
|
| 103 |
+
"md5ext": f"{names[i - 1]}.png",
|
| 104 |
"rotationCenterX": 40,
|
| 105 |
"rotationCenterY": 40
|
| 106 |
})
|
public/data.js
CHANGED
|
@@ -4492,5 +4492,129 @@ Blockly.defineBlocksWithJsonArray([
|
|
| 4492 |
"tooltip": "",
|
| 4493 |
"helpUrl": "",
|
| 4494 |
"style": "data"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4495 |
}
|
| 4496 |
]);
|
|
|
|
| 4492 |
"tooltip": "",
|
| 4493 |
"helpUrl": "",
|
| 4494 |
"style": "data"
|
| 4495 |
+
},
|
| 4496 |
+
{
|
| 4497 |
+
"type": "add_tool",
|
| 4498 |
+
"message0": "ツールデータ追加 %1 ツール名: %2 %3 画像ID: %4 %5 採掘速度: %6 %7 タイプ: %8 の %9 %10 攻撃力: %11 %12 耐久力: %13",
|
| 4499 |
+
"args0": [
|
| 4500 |
+
{
|
| 4501 |
+
"type": "input_end_row"
|
| 4502 |
+
},
|
| 4503 |
+
{
|
| 4504 |
+
"type": "input_value",
|
| 4505 |
+
"name": "1"
|
| 4506 |
+
},
|
| 4507 |
+
{
|
| 4508 |
+
"type": "input_end_row"
|
| 4509 |
+
},
|
| 4510 |
+
{
|
| 4511 |
+
"type": "input_value",
|
| 4512 |
+
"name": "7"
|
| 4513 |
+
},
|
| 4514 |
+
{
|
| 4515 |
+
"type": "input_end_row"
|
| 4516 |
+
},
|
| 4517 |
+
{
|
| 4518 |
+
"type": "input_value",
|
| 4519 |
+
"name": "2"
|
| 4520 |
+
},
|
| 4521 |
+
{
|
| 4522 |
+
"type": "input_end_row"
|
| 4523 |
+
},
|
| 4524 |
+
{
|
| 4525 |
+
"type": "field_dropdown",
|
| 4526 |
+
"name": "4",
|
| 4527 |
+
"options": [
|
| 4528 |
+
[
|
| 4529 |
+
"木",
|
| 4530 |
+
"1"
|
| 4531 |
+
],
|
| 4532 |
+
[
|
| 4533 |
+
"石",
|
| 4534 |
+
"2"
|
| 4535 |
+
],
|
| 4536 |
+
[
|
| 4537 |
+
"鉄",
|
| 4538 |
+
"3"
|
| 4539 |
+
],
|
| 4540 |
+
[
|
| 4541 |
+
"ダイヤ",
|
| 4542 |
+
"4"
|
| 4543 |
+
],
|
| 4544 |
+
[
|
| 4545 |
+
"金",
|
| 4546 |
+
"5"
|
| 4547 |
+
],
|
| 4548 |
+
[
|
| 4549 |
+
"ネザライト",
|
| 4550 |
+
"6"
|
| 4551 |
+
]
|
| 4552 |
+
]
|
| 4553 |
+
},
|
| 4554 |
+
{
|
| 4555 |
+
"type": "field_dropdown",
|
| 4556 |
+
"name": "3",
|
| 4557 |
+
"options": [
|
| 4558 |
+
[
|
| 4559 |
+
"剣",
|
| 4560 |
+
"W"
|
| 4561 |
+
],
|
| 4562 |
+
[
|
| 4563 |
+
"つるはし",
|
| 4564 |
+
"P"
|
| 4565 |
+
],
|
| 4566 |
+
[
|
| 4567 |
+
"斧",
|
| 4568 |
+
"A"
|
| 4569 |
+
],
|
| 4570 |
+
[
|
| 4571 |
+
"シャベル",
|
| 4572 |
+
"S"
|
| 4573 |
+
],
|
| 4574 |
+
[
|
| 4575 |
+
"くわ",
|
| 4576 |
+
"H"
|
| 4577 |
+
]
|
| 4578 |
+
]
|
| 4579 |
+
},
|
| 4580 |
+
{
|
| 4581 |
+
"type": "input_end_row"
|
| 4582 |
+
},
|
| 4583 |
+
{
|
| 4584 |
+
"type": "input_value",
|
| 4585 |
+
"name": "5"
|
| 4586 |
+
},
|
| 4587 |
+
{
|
| 4588 |
+
"type": "input_end_row"
|
| 4589 |
+
},
|
| 4590 |
+
{
|
| 4591 |
+
"type": "input_value",
|
| 4592 |
+
"name": "6"
|
| 4593 |
+
}
|
| 4594 |
+
],
|
| 4595 |
+
"previousStatement": null,
|
| 4596 |
+
"nextStatement": null,
|
| 4597 |
+
"tooltip": "",
|
| 4598 |
+
"helpUrl": "",
|
| 4599 |
+
"style": "motion"
|
| 4600 |
+
},
|
| 4601 |
+
{
|
| 4602 |
+
"type": "join",
|
| 4603 |
+
"message0": "%1 と %2",
|
| 4604 |
+
"args0": [
|
| 4605 |
+
{
|
| 4606 |
+
"type": "input_value",
|
| 4607 |
+
"name": "value"
|
| 4608 |
+
},
|
| 4609 |
+
{
|
| 4610 |
+
"type": "input_value",
|
| 4611 |
+
"name": "value2"
|
| 4612 |
+
}
|
| 4613 |
+
],
|
| 4614 |
+
"inputsInline": true,
|
| 4615 |
+
"output": null,
|
| 4616 |
+
"tooltip": "",
|
| 4617 |
+
"helpUrl": "",
|
| 4618 |
+
"style": "operators"
|
| 4619 |
}
|
| 4620 |
]);
|
public/func.js
CHANGED
|
@@ -362,4 +362,21 @@ javascript.javascriptGenerator.forBlock[`material`] = (block, generator) => {
|
|
| 362 |
javascript.javascriptGenerator.forBlock[`dye`] = (block, generator) => {
|
| 363 |
const type = block.getFieldValue(`type`);
|
| 364 |
return type;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 365 |
};
|
|
|
|
| 362 |
javascript.javascriptGenerator.forBlock[`dye`] = (block, generator) => {
|
| 363 |
const type = block.getFieldValue(`type`);
|
| 364 |
return type;
|
| 365 |
+
};
|
| 366 |
+
|
| 367 |
+
javascript.javascriptGenerator.forBlock[`add_tool`] = (block, generator) => {
|
| 368 |
+
const v1 = stc(block, generator, `1`);
|
| 369 |
+
const v7 = stc(block, generator, `7`);
|
| 370 |
+
const v2 = stc(block, generator, `2`);
|
| 371 |
+
const v4 = block.getFieldValue(`4`);
|
| 372 |
+
const v3 = block.getFieldValue(`3`);
|
| 373 |
+
const v5 = stc(block, generator, `5`);
|
| 374 |
+
const v6 = stc(block, generator, `6`);
|
| 375 |
+
return `at[${v1}][${v7}][${v2}][${v3}${v4}][${v5}][${v6}]`;
|
| 376 |
+
};
|
| 377 |
+
|
| 378 |
+
javascript.javascriptGenerator.forBlock[`join`] = (block, generator) => {
|
| 379 |
+
const value = stc(block, generator, `value`);
|
| 380 |
+
const value2 = stc(block, generator, `value2`);
|
| 381 |
+
return `jo[${value}][${value2}]`;
|
| 382 |
};
|
public/index.html
CHANGED
|
@@ -156,6 +156,30 @@
|
|
| 156 |
</value>
|
| 157 |
</block>
|
| 158 |
<sep gap="10"></sep>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 159 |
<block type="add_food">
|
| 160 |
<value name="1">
|
| 161 |
<shadow type="input"></shadow>
|
|
@@ -359,6 +383,19 @@
|
|
| 359 |
<sep gap="10"></sep>
|
| 360 |
<block type="not"></block>
|
| 361 |
<sep gap="30"></sep>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 362 |
<block type="place">
|
| 363 |
<value name="x">
|
| 364 |
<shadow type="input"></shadow>
|
|
@@ -480,6 +517,7 @@
|
|
| 480 |
<script src="https://unpkg.com/blockly/msg/ja.js"></script>
|
| 481 |
<script src="data.js"></script>
|
| 482 |
<script src="func.js"></script>
|
|
|
|
| 483 |
<script src="script.js"></script>
|
| 484 |
</body>
|
| 485 |
|
|
|
|
| 156 |
</value>
|
| 157 |
</block>
|
| 158 |
<sep gap="10"></sep>
|
| 159 |
+
<block type="add_tool">
|
| 160 |
+
<value name="1">
|
| 161 |
+
<shadow type="input"></shadow>
|
| 162 |
+
</value>
|
| 163 |
+
<value name="2">
|
| 164 |
+
<shadow type="input">
|
| 165 |
+
<field name="value">6</field>
|
| 166 |
+
</shadow>
|
| 167 |
+
</value>
|
| 168 |
+
<value name="5">
|
| 169 |
+
<shadow type="input">
|
| 170 |
+
<field name="value">7</field>
|
| 171 |
+
</shadow>
|
| 172 |
+
</value>
|
| 173 |
+
<value name="6">
|
| 174 |
+
<shadow type="input">
|
| 175 |
+
<field name="value">1000</field>
|
| 176 |
+
</shadow>
|
| 177 |
+
</value>
|
| 178 |
+
<value name="7">
|
| 179 |
+
<shadow type="input"></shadow>
|
| 180 |
+
</value>
|
| 181 |
+
</block>
|
| 182 |
+
<sep gap="10"></sep>
|
| 183 |
<block type="add_food">
|
| 184 |
<value name="1">
|
| 185 |
<shadow type="input"></shadow>
|
|
|
|
| 383 |
<sep gap="10"></sep>
|
| 384 |
<block type="not"></block>
|
| 385 |
<sep gap="30"></sep>
|
| 386 |
+
<block type="join">
|
| 387 |
+
<value name="value">
|
| 388 |
+
<shadow type="input">
|
| 389 |
+
<field name="value">りんご</field>
|
| 390 |
+
</shadow>
|
| 391 |
+
</value>
|
| 392 |
+
<value name="value2">
|
| 393 |
+
<shadow type="input">
|
| 394 |
+
<field name="value">バナナ</field>
|
| 395 |
+
</shadow>
|
| 396 |
+
</value>
|
| 397 |
+
</block>
|
| 398 |
+
<sep gap="30"></sep>
|
| 399 |
<block type="place">
|
| 400 |
<value name="x">
|
| 401 |
<shadow type="input"></shadow>
|
|
|
|
| 517 |
<script src="https://unpkg.com/blockly/msg/ja.js"></script>
|
| 518 |
<script src="data.js"></script>
|
| 519 |
<script src="func.js"></script>
|
| 520 |
+
<script src="eel.js"></script>
|
| 521 |
<script src="script.js"></script>
|
| 522 |
</body>
|
| 523 |
|
public/mmp4.zip
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c631bc11a539f9cfa027d2682c42bafbeb9a928f75978d7d83234c4b1f7e487a
|
| 3 |
+
size 11144356
|
public/script.js
CHANGED
|
@@ -105,6 +105,7 @@ const reloadCos = () => {
|
|
| 105 |
|
| 106 |
const addCos = () => {
|
| 107 |
const file = document.createElement(`input`);
|
|
|
|
| 108 |
file.type = `file`;
|
| 109 |
file.click();
|
| 110 |
file.addEventListener(`change`, () => {
|
|
|
|
| 105 |
|
| 106 |
const addCos = () => {
|
| 107 |
const file = document.createElement(`input`);
|
| 108 |
+
file.accept = `.png`;
|
| 109 |
file.type = `file`;
|
| 110 |
file.click();
|
| 111 |
file.addEventListener(`change`, () => {
|