editArea
This commit is contained in:
parent
a1e144f2da
commit
49d497b1a8
@ -29,56 +29,63 @@ exportMap.onclick=function(){
|
||||
filestr += ']' + (yy == sy ? '' : ',\n');
|
||||
}
|
||||
pout.value = filestr;
|
||||
mapEditArea.mapArr = filestr;
|
||||
mapEditArea.mapArr(filestr);
|
||||
exportMap.isExport = true;
|
||||
mapEditArea.error = 0;
|
||||
mapEditArea.error(0);
|
||||
tip.whichShow = 2;
|
||||
}
|
||||
var mapEditArea = new Vue({
|
||||
el: '#mapEditArea',
|
||||
data: {
|
||||
mapArr: '',
|
||||
errors: [ // 编号1,2,3,4
|
||||
var mapEditArea = document.getElementById('mapEditArea')
|
||||
mapEditArea.errors=[ // 编号1,2
|
||||
"格式错误!请使用正确格式(请使用地图生成器进行生成,且需要和本地图宽高完全一致)",
|
||||
"当前有未定义ID(在地图区域显示红块),请修改ID或者到icons.js和maps.js中进行定义!",
|
||||
"ID越界(在地图区域显示红块),当前编辑器暂时支持编号小于400,请修改编号!",
|
||||
// "发生错误!",
|
||||
],
|
||||
error: 0,
|
||||
formatTimer: null,
|
||||
},
|
||||
watch: {
|
||||
mapArr: function (val, oldval) {
|
||||
if (val == '') return;
|
||||
"当前有未定义ID(在地图区域显示红块),请修改ID或者到icons.js和maps.js中进行定义!"
|
||||
]
|
||||
mapEditArea.formatTimer=null
|
||||
mapEditArea._mapArr=''
|
||||
mapEditArea.mapArr=function(value){
|
||||
if(value!=null){
|
||||
var val=value
|
||||
var oldval=mapEditArea._mapArr
|
||||
if (val==oldval) return;
|
||||
|
||||
if (exportMap.isExport) {
|
||||
exportMap.isExport = false;
|
||||
return;
|
||||
}
|
||||
if (mapEditArea.formatArr()) {
|
||||
mapEditArea.error = 0;
|
||||
mapEditArea.error(0);
|
||||
|
||||
setTimeout(function () {
|
||||
mapEditArea.mapArr = mapEditArea.formatArr();
|
||||
if (mapEditArea.formatArr())mapEditArea.mapArr(mapEditArea.formatArr());
|
||||
mapEditArea.drawMap();
|
||||
tip.whichShow = 8
|
||||
}, 1000);
|
||||
clearTimeout(mapEditArea.formatTimer);
|
||||
mapEditArea.formatTimer = setTimeout(function () {
|
||||
pout.value = mapEditArea.formatArr();
|
||||
}, 5000); //5s后再格式化,不然光标跳到最后很烦
|
||||
} else {
|
||||
mapEditArea.error = 1;
|
||||
mapEditArea.error(1);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
// console.log(mapEditArea.mapArr);
|
||||
if (mapEditArea.error>0)
|
||||
printe(mapEditArea.errors[mapEditArea.error-1])
|
||||
|
||||
mapEditArea._mapArr=value
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
drawMap: function () {
|
||||
// var mapArray = mapEditArea.mapArr.split(/\D+/).join(' ').trim().split(' ');
|
||||
var mapArray = JSON.parse('[' + mapEditArea.mapArr + ']');
|
||||
return mapEditArea._mapArr
|
||||
}
|
||||
pout.oninput=function(){
|
||||
mapEditArea.mapArr(pout.value)
|
||||
}
|
||||
mapEditArea._error=0
|
||||
mapEditArea.error=function(value){
|
||||
if(value!=null){
|
||||
mapEditArea._error=value
|
||||
if (value>0)
|
||||
printe(mapEditArea.errors[value-1])
|
||||
}
|
||||
return mapEditArea._error
|
||||
}
|
||||
mapEditArea.drawMap= function () {
|
||||
// var mapArray = mapEditArea.mapArr().split(/\D+/).join(' ').trim().split(' ');
|
||||
var mapArray = JSON.parse('[' + mapEditArea.mapArr() + ']');
|
||||
var sy=editor.map.length,sx=editor.map[0].length;
|
||||
for (var y = 0; y < sy; y++)
|
||||
for (var x = 0; x < sx; x++) {
|
||||
@ -86,20 +93,21 @@ var mapEditArea = new Vue({
|
||||
if (num == 0)
|
||||
editor.map[y][x] = 0;
|
||||
else if (typeof(editor.indexs[num][0]) == 'undefined') {
|
||||
mapEditArea.error = 2;
|
||||
mapEditArea.error(2);
|
||||
editor.map[y][x] = undefined;
|
||||
} else editor.map[y][x] = editor.ids[[editor.indexs[num][0]]];
|
||||
}
|
||||
|
||||
editor.updateMap();
|
||||
|
||||
},
|
||||
formatArr: function () {
|
||||
}
|
||||
mapEditArea.formatArr= function () {
|
||||
var formatArrStr = '';
|
||||
clearTimeout(mapEditArea.formatTimer);
|
||||
console.log(1)
|
||||
|
||||
var si=editor.map.length,sk=editor.map[0].length;
|
||||
if (mapEditArea.mapArr.split(/\D+/).join(' ').trim().split(' ').length != si*sk) return false;
|
||||
var arr = mapEditArea.mapArr.replace(/\s+/g, '').split('],[');
|
||||
if (mapEditArea.mapArr().split(/\D+/).join(' ').trim().split(' ').length != si*sk) return false;
|
||||
var arr = mapEditArea.mapArr().replace(/\s+/g, '').split('],[');
|
||||
|
||||
if (arr.length != si) return;
|
||||
for (var i = 0; i < si; i++) {
|
||||
@ -120,15 +128,13 @@ var mapEditArea = new Vue({
|
||||
}
|
||||
return formatArrStr;
|
||||
}
|
||||
}
|
||||
});
|
||||
var copyMap=document.getElementById('copyMap')
|
||||
copyMap.err=''
|
||||
copyMap.onclick=function(){
|
||||
tip.whichShow = 0;
|
||||
if (pout.value.trim() != '') {
|
||||
if (mapEditArea.error) {
|
||||
copyMap.err = mapEditArea.errors[mapEditArea.error - 1];
|
||||
if (mapEditArea.error()) {
|
||||
copyMap.err = mapEditArea.errors[mapEditArea.error() - 1];
|
||||
tip.whichShow = 5
|
||||
return;
|
||||
}
|
||||
@ -160,9 +166,9 @@ clearMapButton.onclick=function () {
|
||||
clearTimeout(mapEditArea.formatTimer);
|
||||
clearTimeout(tip.timer);
|
||||
pout.value = '';
|
||||
mapEditArea.mapArr = '';
|
||||
mapEditArea.mapArr('');
|
||||
tip.whichShow = 4;
|
||||
mapEditArea.error = 0;
|
||||
mapEditArea.error(0);
|
||||
}
|
||||
var deleteMap=document.getElementById('deleteMap')
|
||||
deleteMap.onclick=function () {
|
||||
|
||||
@ -18,9 +18,8 @@
|
||||
<div id="arrEditor">
|
||||
<table class="col" id='arrColMark'></table>
|
||||
<table class="row" id='arrRowMark'></table>
|
||||
<div id="mapEditArea" v-cloak>
|
||||
<textarea cols="10" rows="10" id="pout" v-model="mapArr"></textarea>
|
||||
<!-- <p class="warnText" v-if="error">{{ errors[error-1] }}</p> -->
|
||||
<div id="mapEditArea">
|
||||
<textarea cols="10" rows="10" id="pout"></textarea>
|
||||
</div>
|
||||
<div id="editTip">
|
||||
<input id='newFileName' placeholder="新楼层id" style="width: 100px"/>
|
||||
|
||||
@ -17,9 +17,8 @@
|
||||
<div id="arrEditor">
|
||||
<table class="col" id='arrColMark'></table>
|
||||
<table class="row" id='arrRowMark'></table>
|
||||
<div id="mapEditArea" v-cloak>
|
||||
<textarea cols="10" rows="10" id="pout" v-model="mapArr"></textarea>
|
||||
<!-- <p class="warnText" v-if="error">{{ errors[error-1] }}</p> -->
|
||||
<div id="mapEditArea">
|
||||
<textarea cols="10" rows="10" id="pout"></textarea>
|
||||
</div>
|
||||
<div id="editTip">
|
||||
<input type="button" value="新建空白地图" id='newMap'/>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user