diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index 3ef46f22..535c0ac0 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -639,6 +639,93 @@ var code = { return JSON.stringify(code); */; +nameMap_m + : '文件别名设置 此项可对每个素材(背景音乐、音效、使用图片、使用动画)进行一个别名设置,然后可以游戏中使用此别名代替原始文件名。' BGNL? Newline nameMapList+ BEND + +/* nameMap_m +tooltip : 文件别名设置 +helpUrl : /_docs/#/instruction +var value = doorKeyList_0.trim(); +if (value.startsWith(',')) value = value.substring(1); +return '{'+value+'}'; +*/; + +nameMapList + : nameMapBgm + | nameMapSoundKnown + | nameMapSoundUnknown + | nameMapImage + | nameMapAnimate + | nameMapUnknown + | nameMapEmpty; + +nameMapBgm + : '映射背景音乐' '名称' EvalString '映射到文件' EvalString BEND + +/* nameMapBgm +tooltip : 映射背景音乐 +default : ['背景音乐', 'bgm.mp3'] +helpUrl : /_docs/#/instruction +return ',"'+EvalString_0+'":"'+EvalString_1+'"'; +*/; + +nameMapSound1 + : '映射系统音效' '名称' NameMap_List '映射到文件' EvalString BEND + +/* nameMapSound1 +tooltip : 映射系统音效 +default : ['确定', 'confirm.mp3'] +helpUrl : /_docs/#/instruction +return ',"'+NameMap_List_0+'":"'+EvalString_0+'"'; +*/; + +nameMapSound2 + : '映射音效' '名称' EvalString '映射到文件' EvalString BEND + +/* nameMapSound2 +tooltip : 映射音效 +default : ['攻击', 'attack.mp3'] +helpUrl : /_docs/#/instruction +return ',"'+EvalString_0+'":"'+EvalString_1+'"'; +*/; + +nameMapImage + : '映射图片' '名称' EvalString '映射到文件' EvalString BEND + +/* nameMapImage +tooltip : 映射图片 +default : ['背景图', 'bg.jpg'] +helpUrl : /_docs/#/instruction +return ',"'+EvalString_0+'":"'+EvalString_1+'"'; +*/; + +nameMapImage + : '映射动画' '名称' EvalString '映射到文件' IdString BEND + +/* nameMapImage +tooltip : 映射图片 +default : ['剑技', 'jianji'] +helpUrl : /_docs/#/instruction +return ',"'+EvalString_0+'":"'+IdString_0+'"'; +*/; + +nameMapUnknown + : '未知映射' '名称' EvalString '映射到文件' EvalString BEND + +/* nameMapUnknown +tooltip : 未知映射 +default : ['文件名', 'test.jpg'] +helpUrl : /_docs/#/instruction +return ',"'+EvalString_0+'":"'+EvalString_1+'"'; +*/; + +nameMapEmpty + : Newline + +/* nameMapEmpty +return ''; +*/; + //为了避免关键字冲突,全部加了_s //动作 action @@ -1903,11 +1990,11 @@ return code; */; animate_1_s - : '显示角色动画' IdString '不等待执行完毕' Bool Newline + : '显示动画并跟随角色' IdString '不等待执行完毕' Bool Newline /* animate_1_s -tooltip : animate:显示角色动画 +tooltip : animate:显示动画并跟随角色 helpUrl : /_docs/#/instruction default : ["zone",false] allAnimates : ['IdString_0'] @@ -3686,6 +3773,10 @@ Move_List : '上'|'下'|'左'|'右'|'前'|'后'|'左上'|'左下'|'右上'|'右下' /*Move_List ['up','down','left','right','forward','backward','leftup','leftdown','rightup','rightdown']*/; +NameMap_List + : '确定'|'取消'|'操作失败'|'光标移动'|'打开界面'|'读档'|'存档'|'获得道具'|'回血'|'炸弹'|'飞行器'|'开关门'|'上下楼'|'跳跃'|'破墙镐'|'阻激夹域'|'穿脱装备' + /*NameMap_List ['确定','取消','操作失败','光标移动','打开界面','读档','存档','获得道具','回血','炸弹','飞行器','开关门','上下楼','跳跃','破墙镐','阻激夹域','穿脱装备']*/; + //转blockly后不保留需要加" EvalString : Equote_double (ESC_double | ~["\\])* Equote_double diff --git a/_server/MotaActionParser.js b/_server/MotaActionParser.js index b0fce8c7..e1efcedf 100644 --- a/_server/MotaActionParser.js +++ b/_server/MotaActionParser.js @@ -123,6 +123,23 @@ ActionParser.prototype.parse = function (obj,type) { obj.selectColor, 'rgba(' + obj.selectColor + ')', obj.font ]); + case 'nameMap': + if (!obj) obj={}; + var items = Object.keys(obj); + var result = null; + for (var ii=items.length,one;one=items[ii];ii--) { + var knownItems = MotaActionBlocks['NameMap_List'].options.map(function (one) {return one[1];}) + if (knownItems.indexOf(one) >= 0) { + result = MotaActionBlocks['nameMapSound1'].xmlText([ + + ]) + } + var value = obj[ii]; + + + } + + case 'shop': var buildsub = function(obj,parser,next){ var text_choices = null; diff --git a/_server/editor_blocklyconfig.js b/_server/editor_blocklyconfig.js index 53ce390a..2491a28d 100644 --- a/_server/editor_blocklyconfig.js +++ b/_server/editor_blocklyconfig.js @@ -87,6 +87,9 @@ editor_blocklyconfig=(function(){ }, 'doorInfo'), MotaActionBlocks['faceIds_m'].xmlText(), MotaActionBlocks['mainStyle_m'].xmlText(), + MotaActionFunctions.actionParser.parse({ + "背景音乐": "bgm.mp3", "确定": "confirm.mp3", "攻击": "attack.mp3", "背景图": "bg.jpg", "剑技": "jianji" + }, 'nameMap') ], '显示文字':[ MotaActionBlocks['text_0_s'].xmlText(), diff --git a/_server/table/data.comment.js b/_server/table/data.comment.js index bbb709c7..5df3ea85 100644 --- a/_server/table/data.comment.js +++ b/_server/table/data.comment.js @@ -116,9 +116,10 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { }, "nameMap": { "_leaf": true, - "_type": "textarea", - "_docs": "文件映射", - "_data": "文件名映射,目前仅对images, animates, bgms, sounds有效。\n例如定义 {\"精灵石.mp3\":\"jinglingshi.mp3\"} 就可以使用\ncore.playBgm(\"精灵石.mp3\") 或对应的事件来播放该bgm。" + "_type": "event", + "_event": "nameMap", + "_docs": "文件别名", + "_data": "文件别名设置,目前仅对images, animates, bgms, sounds有效。" }, "levelChoose": { "_leaf": true, diff --git a/project/data.js b/project/data.js index 64c0e047..af86e83d 100644 --- a/project/data.js +++ b/project/data.js @@ -47,24 +47,23 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = ], "fonts": [], "nameMap": { - "普攻": "attack.mp3", + "确定": "confirm.mp3", + "取消": "cancel.mp3", + "操作失败": "error.mp3", + "光标移动": "cursor.mp3", + "打开界面": "open_ui.mp3", + "读档": "load.mp3", + "存档": "save.mp3", + "获得道具": "item.mp3", + "回血": "recovery.mp3", "炸弹": "bomb.mp3", "飞行器": "centerFly.mp3", "开关门": "door.mp3", "上下楼": "floor.mp3", - "获得道具": "item.mp3", "跳跃": "jump.mp3", "破墙镐": "pickaxe.mp3", "阻激夹域": "zone.mp3", - "操作失败": "error.mp3", - "取消": "cancel.mp3", - "光标移动": "cursor.mp3", - "确定": "confirm.mp3", - "穿脱装备": "equip.mp3", - "打开界面": "open_ui.mp3", - "读档": "load.mp3", - "回血": "recovery.mp3", - "存档": "save.mp3" + "穿脱装备": "equip.mp3" }, "levelChoose": [ {