You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.2 KiB
122 lines
3.2 KiB
function findLogique(logiqueId) {
|
|
let elem = null;
|
|
logiques.forEach(function (element) {
|
|
if (element.name === logiqueId) {
|
|
elem = element;
|
|
}
|
|
});
|
|
return elem;
|
|
}
|
|
|
|
function giveSwitchYWithLineId(lineId) {
|
|
var elementY = null;
|
|
switchsInfoCopy.forEach(function (element) {
|
|
if (stage.findOne("#" + element.id).id3 == lineId) {
|
|
elementY = (element.y);
|
|
}
|
|
});
|
|
return elementY;
|
|
}
|
|
|
|
function removeLineFromSwitch(lineId) {
|
|
switchsInfoCopy.forEach(function (element) {
|
|
element.id3.forEach(function (line) {
|
|
if (line == lineId) {
|
|
ax = element.id3.indexOf(lineId);
|
|
element.id3.splice(ax, 1);
|
|
}
|
|
});
|
|
|
|
});
|
|
}
|
|
function removeLineFromLogique(lineId) {
|
|
logiques.forEach(function (element) {
|
|
element.id3.forEach(function (line) {
|
|
if (line == lineId) {
|
|
ax = element.id3.indexOf(lineId);
|
|
element.id3.splice(ax, 1);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function removeLine(lineId) {
|
|
//remove from switch
|
|
if (getSwitchFromLine(lineId) != null)
|
|
removeLineFromSwitch(lineId);
|
|
else
|
|
removeLineFromLogique(lineId);
|
|
let line = stage.findOne("#" + lineId);
|
|
line.destroy();
|
|
|
|
}
|
|
|
|
function giveLineId(logiqueId, entre) {
|
|
var newEntre = entre;
|
|
isSwitch = false;
|
|
if (entre.id !== undefined) {
|
|
switchsInfoCopy.forEach(function (element) {
|
|
if (entre.id() == element.id) {
|
|
isSwitch = true;
|
|
newEntre = element;
|
|
}
|
|
});
|
|
}
|
|
let lineId = null;
|
|
let logique = findLogique(logiqueId);
|
|
if (logique.y >= newEntre.y) {
|
|
if (logique.type === "inv") {
|
|
if (logique.id1 == null) {
|
|
lineId = "id1";
|
|
}
|
|
}
|
|
else {
|
|
if (logique.id1 == null) {
|
|
lineId = "id1";
|
|
} else if (logique.id2 == null) {
|
|
lineId = "id2";
|
|
/*if(isSwitch){
|
|
if(giveSwitchYWithLineId(logique.id1) > entre.getY()){
|
|
console.log(giveSwitchYWithLineId(logique.id1));
|
|
console.log(entre);
|
|
removeLine(entre.id3);
|
|
lineRemove.push([entre, "switch"]);
|
|
}else{
|
|
lineId = "id2";
|
|
}
|
|
}*/
|
|
}
|
|
}
|
|
} else {
|
|
if (logique.type === "inv") {
|
|
if (logique.id1 == null) {
|
|
lineId = "id1";
|
|
}
|
|
}
|
|
else {
|
|
if (logique.id2 == null) {
|
|
lineId = "id2";
|
|
} else if (logique.id1 == null) {
|
|
lineId = "id1";
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
return lineId
|
|
}
|
|
|
|
function checkLogiqueLines(logiqueId, lineId) {
|
|
let logique = findLogique(logiqueId);
|
|
logiques.forEach(function (element, index) {
|
|
if (element.name === logique.name) {
|
|
Object.keys(element).map(function (objectKey, index) {
|
|
if (objectKey == lineId && objectKey != null) {
|
|
return true;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
return false;
|
|
} |