添加 'DragonCore/MiaoDragonCoreEditor.yml'

master
502647092 2021-12-04 19:13:43 +00:00
parent 0e25ed014f
commit 8b89888c57
1 changed files with 303 additions and 0 deletions

View File

@ -0,0 +1,303 @@
Functions_edit:
open: |-
界面变量.当前组件索引 = -1;
界面变量.所有组件数组 = 方法.取所有组件;
界面变量.当前组件名称 = "main";
方法.执行方法('保存鼠标位置');
方法.执行方法('设置当前组件');
方法.消息('&a已切换到编辑模式!');
return 方法.执行方法('操作提示');
高精度数值相加: |-
return (方法.取成员(局部变量.参数, 0) * 100000 + 方法.取成员(局部变量.参数, 1) * 100000) / 100000
高精度数值相减: |-
return (方法.取成员(局部变量.参数, 0) * 100000 - 方法.取成员(局部变量.参数, 1) * 100000) / 100000
设置当前组件为鼠标悬浮组件: |-
局部变量.x = 方法.取鼠标x;
局部变量.y = 方法.取鼠标y;
界面变量.当前组件 = 方法.取悬浮组件;
界面变量.当前组件名称 == 界面变量.当前组件.name ? return 0 : 0;
界面变量.当前组件名称 = 界面变量.当前组件.name;
方法.执行方法('设置当前组件');
设置当前组件: |-
界面变量.当前组件名称 == "" ? return 方法.消息('未选取组件') : 0;
界面变量.当前组件 = 方法.取组件(界面变量.当前组件名称);
界面变量.当前组件X偏移变量 = 方法.合并文本(界面变量.当前组件名称, '_offsetX');
界面变量.当前组件Y偏移变量 = 方法.合并文本(界面变量.当前组件名称, '_offsetY');
方法.设置变量值(界面变量.当前组件X偏移变量, 方法.取组件值(界面变量.当前组件名称, 'x')-界面变量.x);
方法.设置变量值(界面变量.当前组件Y偏移变量, 方法.取组件值(界面变量.当前组件名称, 'y')-界面变量.y);
界面变量.当前组件.x = 方法.合并文本("界面变量.x+方法.取变量('", 界面变量.当前组件X偏移变量, "');");
界面变量.当前组件.y = 方法.合并文本("界面变量.y+方法.取变量('", 界面变量.当前组件Y偏移变量, "');");
方法.消息(方法.合并文本('&6已选择组件: &a', 界面变量.当前组件名称));
方法.执行方法('操作提示');
打印当前组件: |-
界面变量.当前组件名称 == "" ? return 方法.消息('未选取组件') : 0;
方法.消息('&6当前组件信息: ');
方法.消息(方法.合并文本('&6名称: &c', 界面变量.当前组件名称));
方法.消息(方法.合并文本('&6宽: &3', 方法.取组件值(界面变量.当前组件名称, 'width'), ' &6高: &3', 方法.取组件值(界面变量.当前组件名称, 'width')));
方法.消息(方法.合并文本('&6X: &3', 方法.取组件值(界面变量.当前组件名称, 'x')-界面变量.x, ' &6Y: &3', 方法.取组件值(界面变量.当前组件名称, 'y')-界面变量.y));
方法.消息(方法.合并文本('&6scale: &3', 界面变量.当前组件.scale));
放大缩小组件: |-
界面变量.当前组件名称 == "" ? return 方法.消息('未选取组件') : 0;
界面变量.当前组件.scale = 方法.执行方法('高精度数值相加', 界面变量.当前组件.scale , 方法.取滚轮值 * 0.1);
方法.执行方法('操作提示');
mouse_move: |-
方法.执行方法('鼠标移动', 方法.取鼠标X - 界面变量.当前鼠标X, 方法.取鼠标Y - 界面变量.当前鼠标Y);
方法.执行方法('保存鼠标位置');
保存鼠标位置: |-
界面变量.当前鼠标X = 方法.取鼠标X;
界面变量.当前鼠标Y = 方法.取鼠标Y;
鼠标移动: |-
界面变量.当前组件名称 == "" ? return 0 : 0;
方法.键位是否按下('mouse_left') == 1 ? {
(界面变量.当前组件名称 == "" || 界面变量.当前组件名称 == "main")? return 0 : 0;
局部变量.偏移X = 方法.取成员(局部变量.参数, 0);
局部变量.偏移Y = 方法.取成员(局部变量.参数, 1);
局部变量.偏移X != 0 ? 方法.设置变量值(界面变量.当前组件X偏移变量, 方法.取变量(界面变量.当前组件X偏移变量) + 局部变量.偏移X) : 0;
局部变量.偏移Y != 0 ? 方法.设置变量值(界面变量.当前组件Y偏移变量, 方法.取变量(界面变量.当前组件Y偏移变量) + 局部变量.偏移Y) : 0;
方法.执行方法('操作提示');
} : 0;
click_left: |-
局部变量.组件名称 = 方法.取鼠标悬浮组件名;
局部变量.组件名称 == "" ? return 1 : 0;
方法.是否存在前缀(局部变量.组件名称, 'MiaoDragonCoreEditor') ? 0 : {
方法.执行方法('设置当前组件为鼠标悬浮组件');
return 1;
};
局部变量.组件名称 == 'MiaoDragonCoreEditorexit_label' ? return 方法.执行方法('退出编辑') : 0;
局部变量.组件名称 == 'MiaoDragonCoreEditorupload_label' ? {
方法.键位是否按下('LCONTROL') == 0 ? return 方法.消息('&c配置上传后将会覆盖服务器配置', '&d如需继续 请按住 &4Ctrl &d点击上传!') : 0;
return 方法.执行方法('上传界面');
} : 0;
局部变量.组件名称 == 'MiaoDragonCoreEditorcreate_label' ? return 方法.执行方法('创建组件') : 0;
局部变量.组件名称 == 'MiaoDragonCoreEditordelete_label' ? {
界面变量.当前组件名称 == "main" ? return 方法.消息('&c删除失败 main 组件不允许删除!') : 0;
方法.键位是否按下('LCONTROL') == 0 ? return 方法.消息(方法.合并文本('&6是否需要删除 &b', 界面变量.当前组件名称,' &6组件?'), '&c如需继续 请按住 &4Ctrl &c点击删除!') : 0;
方法.消息(方法.合并文本('&6组件 &b', 界面变量.当前组件名称,' &c已删除!'));
方法.删除组件(界面变量.当前组件名称);
界面变量.当前组件名称 = "main";
方法.执行方法('设置当前组件');
return 1;
} : 0;
方法.是否存在前缀(局部变量.组件名称, 'MiaoDragonCoreEditor_') ? {
局部变量.组件名称数组 = 方法.分割(局部变量.组件名称, '_');
局部变量.操作属性 = 方法.取成员(局部变量.组件名称数组, 1);
return 方法.执行方法('编辑组件', 局部变量.操作属性);
} : 0;
return 1;
click_right: |-
return 1;
编辑组件: |-
方法.切换方法集('Functions_getInput');
方法.执行方法('open', 'Functions_edit', '设置组件', 方法.取组件值(界面变量.当前组件名称, 局部变量.参数[0]), 局部变量.参数[0]);
return 1;
组件居中: |-
界面变量.当前组件名称 == "" ? return 方法.消息('未选取组件') : 0;
界面变量.当前组件.center ? {
方法.消息(方法.合并文本('&6组件: &3', 界面变量.当前组件名称, ' &c已取消居中...'))
} : {
方法.消息(方法.合并文本('&6组件: &3', 界面变量.当前组件名称, ' &a已居中...'))
}
界面变量.当前组件.center = !界面变量.当前组件.center;
操作提示: |-
方法.执行方法(
'绘制操作提示',
'exit=&6组件属性编辑模式 &c&l退出',
'_name=&3组件名称: &r',
'create=&3点击此行新增一个组件 &a&l新增',
'delete=&c点击此行删除此组件 &4&l删除',
'_x=&3位置 X: &r',
'_y=&3位置 Y: &r',
'_width=&3组件宽度: &r',
'_height=&3组件高度: &r',
'_scale=&3组件缩放: &r',
'_texture=&3材质地址: &r',
'_texts=&3文本内容: &r',
'_identifier=&3插槽名称: &r',
'_text=&3文本框内容: &r',
'2=&c点击其他组件可进行切换',
'3=&aWASD 移动位置 默认移动1像素',
'31=&a按住Shift移动0.1像素 按住Ctrl移动10像素',
'4=&2Ctrl + 鼠标滚轮 缩放组件',
'upload=&d点击此处 上传配置到服务器 &a&l上传'
);
绘制操作提示: |-
局部变量.起始偏移X = 80;
局部变量.起始偏移Y = 80;
局部变量.文本偏移 = 12;
局部变量.组件Y偏移 = 局部变量.起始偏移Y;
for_each(局部变量.提示, 局部变量.参数, {
局部变量.组件名称数组 = 方法.分割(局部变量.提示, '=');
局部变量.组件名称 = 局部变量.组件名称数组[0];
局部变量.组件提示 = 局部变量.组件名称数组[1];
局部变量.组件 = 方法.新建组件(方法.合并文本('MiaoDragonCoreEditor', 局部变量.组件名称, '_label'));
局部变量.组件Y偏移 = 局部变量.组件Y偏移 + 局部变量.文本偏移;
局部变量.组件.x = 局部变量.起始偏移X;
局部变量.组件.y = 局部变量.组件Y偏移;
方法.是否存在前缀(局部变量.组件名称, '_') ? {
局部变量.属性名称 = 方法.分割(局部变量.组件名称, '_');
局部变量.属性值 = 方法.取组件值(界面变量.当前组件, 局部变量.属性名称[1]);
局部变量.组件.texts = 方法.合并文本(局部变量.组件提示, 局部变量.属性值, ' &b编辑');
} : {
局部变量.组件.texts = 局部变量.组件提示;
};
方法.添加组件(局部变量.组件);
});
return 1;
设置组件: |-
方法.设置组件值(界面变量.当前组件名称, 局部变量.参数[1], 局部变量.参数[0]);
方法.执行方法('操作提示');
return 1
上传界面: |-
界面变量.上传中 == 1 ? return 方法.消息('&c组件上传中 请稍候...') : 0;
界面变量.上传中 = 1;
方法.消息(方法.合并文本('&a开始上传 &3', 方法.取当前界面名, ' &a请稍候...'));
方法.发包('MiaoDragonCoreEditor', 'upload', 'start', 方法.取当前界面名);
上传组件: |-
for_each(局部变量.组件, 方法.取所有组件, {
方法.是否存在前缀(局部变量.组件.name, 'MiaoDragonCoreEditor') ? 0 : {
方法.发包(
'MiaoDragonCoreEditor',
'upload',
'component',
方法.取当前界面名,
局部变量.组件.name_,
局部变量.组件.width_,
局部变量.组件.height_,
局部变量.组件.x_,
局部变量.组件.y_,
局部变量.组件.scale_
);
}
});
方法.执行方法('上传结束');
上传结束: |-
方法.发包('MiaoDragonCoreEditor', 'upload', 'end', 方法.取当前界面名);
界面变量.上传中 = 0;
方法.消息(方法.合并文本('&a上传成功 重载龙核后即可生效...'));
wheel: |-
方法.键位是否按下('LCONTROL') == 1 ? return 方法.执行方法('放大缩小组件') : 0;
移动组件: |-
界面变量.当前组件名称 == "" ? return 方法.消息('未选取组件') : 0;
局部变量.移动距离 = 1;
局部变量.移动距离 = 方法.键位是否按下("LCONTROL") ? 10 : 局部变量.移动距离;
局部变量.移动距离 = 方法.键位是否按下("LSHIFT") ? 0.1 : 局部变量.移动距离;
方法.取当前按下键 == "A" ? 方法.设置变量值(界面变量.当前组件X偏移变量, 方法.执行方法('高精度数值相减', 方法.取变量(界面变量.当前组件X偏移变量), 局部变量.移动距离)) : 0;
方法.取当前按下键 == "W" ? 方法.设置变量值(界面变量.当前组件Y偏移变量, 方法.执行方法('高精度数值相减', 方法.取变量(界面变量.当前组件Y偏移变量), 局部变量.移动距离)) : 0;
方法.取当前按下键 == "D" ? 方法.设置变量值(界面变量.当前组件X偏移变量, 方法.执行方法('高精度数值相加', 方法.取变量(界面变量.当前组件X偏移变量), 局部变量.移动距离)) : 0;
方法.取当前按下键 == "S" ? 方法.设置变量值(界面变量.当前组件Y偏移变量, 方法.执行方法('高精度数值相加', 方法.取变量(界面变量.当前组件Y偏移变量), 局部变量.移动距离)) : 0;
方法.执行方法('操作提示');
keyPress: |-
方法.取当前按下键 == "ESCAPE" ? {
方法.键位是否按下('LCONTROL') == 1 ? 方法.执行方法('退出编辑') : 方法.消息("&c请先退出编辑模式后关闭界面! &4Ctrl + ESC 强制退出!");
return 1;
} : 0;
界面变量.当前组件名称 != "" ? return 方法.执行方法('移动组件') : 0;
return 1;
创建组件: |-
方法.切换方法集('Functions_create', 0);
方法.执行方法('open')};
return 1;
退出编辑: |-
方法.删除组件('MiaoDragonCoreEditor', 1);
方法.消息('&c已退出编辑组件模式!');
方法.切换方法集('Functions', 1);
return 1
Functions_create:
open: |-
方法.消息('&a已切换到新建组件模式!');
方法.消息('&6请按键选择需要新建的组件:');
方法.消息('&61: &a新建 &3界面(texture)');
方法.消息('&62: &a新建 &3插槽(slot)');
方法.消息('&63: &a新建 &3文本(label)');
方法.消息('&64: &a新建 &3文本框(textbox)');
keyPress: |-
方法.取当前按下键 == "1" ? return 方法.执行方法('新建组件', '新建界面') : 0;
方法.取当前按下键 == "2" ? return 方法.执行方法('新建组件', '新建插槽') : 0;
方法.取当前按下键 == "3" ? return 方法.执行方法('新建组件', '新建文本') : 0;
方法.取当前按下键 == "4" ? return 方法.执行方法('新建组件', '新建文本框') : 0;
return 1;
新建组件: |-
方法.切换方法集('Functions_getInput', 0);
方法.执行方法('open', 'Functions_create', 局部变量.参数[0], '请输入组件名称 按回车确认');
return 1
新建界面: |-
局部变量.组件 = 方法.新建组件(方法.合并文本(局部变量.参数[0], '_texture'));
局部变量.组件.x = 方法.合并文本("main.x");
局部变量.组件.y = 方法.合并文本("main.y");
局部变量.组件.width = 16;
局部变量.组件.height = 16;
局部变量.组件.texture = "huan/h1.png";
方法.添加组件(局部变量.组件);
方法.执行方法('完成新建', 局部变量.组件.name);
新建插槽: |-
局部变量.组件 = 方法.新建组件(方法.合并文本(局部变量.参数[0], '_slot'));
局部变量.组件.x = 方法.合并文本("main.x");
局部变量.组件.y = 方法.合并文本("main.y");
局部变量.组件.width = 16;
局部变量.组件.height = 16;
局部变量.组件.identifier = "container_36";
方法.添加组件(局部变量.组件);
方法.执行方法('完成新建', 局部变量.组件.name);
新建文本: |-
局部变量.组件 = 方法.新建组件(方法.合并文本(局部变量.参数[0], '_label'));
局部变量.组件.x = 方法.合并文本("main.x");
局部变量.组件.y = 方法.合并文本("main.y");
局部变量.组件.texts = 局部变量.组件[1] ? 局部变量.组件[1] : 局部变量.组件.name;
方法.添加组件(局部变量.组件);
方法.执行方法('完成新建', 局部变量.组件.name);
新建文本框: |-
局部变量.组件 = 方法.新建组件(方法.合并文本(局部变量.参数[0], '_textbox'));
局部变量.组件.x = 方法.合并文本("main.x");
局部变量.组件.y = 方法.合并文本("main.y");
局部变量.组件.width = 200;
局部变量.组件.height = 20;
局部变量.组件.texts = 局部变量.组件.name;
方法.添加组件(局部变量.组件);
方法.执行方法('完成新建', 局部变量.组件.name);
完成新建: |-
方法.切换方法集('Functions_edit', 0);
界面变量.当前组件名称 = 局部变量.参数[0];
方法.执行方法('设置当前组件');
# 独立方法 用于获取用户输入内容
# 参数1 回调方法集
# 参数2 回调方法
# 参数3 输入提示
# 参数4 默认值
Functions_getInput:
open: |-
界面变量.MiaoDragonCoreEditorInputCallbackFunctions = 局部变量.参数[0];
界面变量.MiaoDragonCoreEditorInputCallbackFunction = 局部变量.参数[1];
界面变量.MiaoDragonCoreEditorInputDefaultValue = 局部变量.参数[2];
界面变量.MiaoDragonCoreEditorInputCallbackParams = 局部变量.参数[3];
局部变量.组件 = 方法.新建组件('MiaoDragonCoreEditor_textbox');
局部变量.组件.x = (方法.取屏幕宽度 - 200) / 2;
局部变量.组件.y = 30;
局部变量.组件.width = 200;
局部变量.组件.height = 20;
局部变量.组件.length = 256;
局部变量.组件.text = 界面变量.MiaoDragonCoreEditorInputDefaultValue;
局部变量.组件.focused = true;
方法.添加组件(局部变量.组件);
局部变量.组件 = 方法.新建组件('MiaoDragonCoreEditor_label');
局部变量.组件.x = (方法.取屏幕宽度 - 200) / 2;
局部变量.组件.y = 20;
局部变量.组件.width = 200;
局部变量.组件.height = 20;
局部变量.组件.texts = "&6请在下面修改内容后 按 &c回车 &a确认 &6按 &rESC &c取消";
方法.添加组件(局部变量.组件);
click: |-
方法.取鼠标悬浮组件名 != "MiaoDragonCoreEditor_textbox" ? return 1 : 0;
keyPress: |-
方法.取当前按下键 == "ESCAPE" ? return 方法.执行方法('移除组件并退出') : 0;
界面变量.MiaoDragonCoreEditorInputText = 方法.取组件值('MiaoDragonCoreEditor_textbox','text');
(方法.取当前按下键 == "RETURN") ? {
方法.执行方法('移除组件并退出');
方法.执行方法(界面变量.MiaoDragonCoreEditorInputCallbackFunction, 界面变量.MiaoDragonCoreEditorInputText, 界面变量.MiaoDragonCoreEditorInputCallbackParams);
return 1;
} : 0;
移除组件并退出: |-
方法.删除组件('MiaoDragonCoreEditor_label');
方法.删除组件('MiaoDragonCoreEditor_textbox');
方法.切换方法集(界面变量.MiaoDragonCoreEditorInputCallbackFunctions, 0);