145 lines
4.0 KiB
JavaScript
145 lines
4.0 KiB
JavaScript
/*
|
|
MatCat BrowserLogic Simulator
|
|
*/
|
|
|
|
// get the canvas and get the engine object going
|
|
let lCanvasElement = document.getElementById("LogicPlane");
|
|
let logicEngine = new LogicEngine(lCanvasElement);
|
|
|
|
// Sadly this doesn't work well inside of the class so we will do it here real fast
|
|
window.addEventListener('resize', function(evt) {
|
|
logicEngine.Resize(evt);
|
|
}, false);
|
|
|
|
lCanvasElement.addEventListener('keydown', function(evt) {
|
|
logicEngine.Key_Press(evt);
|
|
}, false);
|
|
|
|
lCanvasElement.addEventListener('mousedown', function(evt) {
|
|
logicEngine.Mouse_Down(evt);
|
|
}, false);
|
|
|
|
lCanvasElement.addEventListener('mouseup', function(evt) {
|
|
logicEngine.Mouse_Up(evt);
|
|
}, false);
|
|
|
|
lCanvasElement.addEventListener('mousemove', function(evt) {
|
|
logicEngine.Mouse_Move(evt);
|
|
}, false);
|
|
|
|
// Get the engine going
|
|
logicEngine.StartEngine();
|
|
|
|
// Setup interface buttons
|
|
let btn_Link = document.getElementById("btn_Link");
|
|
btn_Link.addEventListener('click', function(evt) {
|
|
logicEngine.Link();
|
|
}, false);
|
|
|
|
let btn_Delete = document.getElementById("btn_Delete");
|
|
btn_Delete.addEventListener('click', function(evt) {
|
|
logicEngine.Key_Press({key: "Delete"});
|
|
}, false);
|
|
|
|
let btn_AddAND = document.getElementById("btn_AddAND");
|
|
btn_AddAND.addEventListener('click', function(evt) {
|
|
let newAND = new LogicAND(2);
|
|
newAND.X = 20;
|
|
newAND.Y = 20;
|
|
logicEngine.ActiveContainer.AddElement(newAND);
|
|
}, false);
|
|
|
|
let btn_AddNAND = document.getElementById("btn_AddNAND");
|
|
btn_AddNAND.addEventListener('click', function(evt) {
|
|
let newNAND = new LogicNAND(2);
|
|
newNAND.X = 20;
|
|
newNAND.Y = 20;
|
|
logicEngine.ActiveContainer.AddElement(newNAND);
|
|
}, false);
|
|
|
|
let btn_AddOR = document.getElementById("btn_AddOR");
|
|
btn_AddOR.addEventListener('click', function(evt) {
|
|
let newOR = new LogicOR(2);
|
|
newOR.X = 20;
|
|
newOR.Y = 20;
|
|
logicEngine.ActiveContainer.AddElement(newOR);
|
|
}, false);
|
|
|
|
let btn_AddNOR = document.getElementById("btn_AddNOR");
|
|
btn_AddNOR.addEventListener('click', function(evt) {
|
|
let newNOR = new LogicNOR(2);
|
|
newNOR.X = 20;
|
|
newNOR.Y = 20;
|
|
logicEngine.ActiveContainer.AddElement(newNOR);
|
|
}, false);
|
|
|
|
let btn_AddXOR = document.getElementById("btn_AddXOR");
|
|
btn_AddXOR.addEventListener('click', function(evt) {
|
|
let newXOR = new LogicXOR();
|
|
newXOR.X = 20;
|
|
newXOR.Y = 20;
|
|
logicEngine.ActiveContainer.AddElement(newXOR);
|
|
}, false);
|
|
|
|
let btn_AddXNOR = document.getElementById("btn_AddXNOR");
|
|
btn_AddXNOR.addEventListener('click', function(evt) {
|
|
let newXNOR = new LogicXNOR();
|
|
newXNOR.X = 20;
|
|
newXNOR.Y = 20;
|
|
logicEngine.ActiveContainer.AddElement(newXNOR);
|
|
}, false);
|
|
|
|
let btn_AddBTN = document.getElementById("btn_AddBTN");
|
|
btn_AddBTN.addEventListener('click', function(evt) {
|
|
let newBTN = new inputButton();
|
|
newBTN.X = 20;
|
|
newBTN.Y = 20;
|
|
logicEngine.ActiveContainer.AddElement(newBTN);
|
|
}, false);
|
|
|
|
|
|
/*
|
|
let AND1 = new LogicAND(2);
|
|
AND1.X = 430;
|
|
AND1.Y = 70;
|
|
logicEngine.ActiveContainer.AddElement(AND1);
|
|
let OR1 = new LogicOR(6);
|
|
OR1.X = 220;
|
|
OR1.Y = 20;
|
|
OR1.addConnection(logicEngine.ActiveContainer,AND1,0);
|
|
logicEngine.ActiveContainer.AddElement(OR1);
|
|
let NAND1 = new LogicNAND(2);
|
|
NAND1.X = 220;
|
|
NAND1.Y = 140;
|
|
NAND1.addConnection(logicEngine.ActiveContainer,AND1,1);
|
|
logicEngine.ActiveContainer.AddElement(NAND1);
|
|
let AND2 = new LogicAND(2);
|
|
AND2.X = 630;
|
|
AND2.Y = 120;
|
|
AND1.addConnection(logicEngine.ActiveContainer,AND2,0);
|
|
logicEngine.ActiveContainer.AddElement(AND2);
|
|
let NOR1 = new LogicNOR(2);
|
|
NOR1.X = 430;
|
|
NOR1.Y = 250;
|
|
NOR1.addConnection(logicEngine.ActiveContainer,AND2,1);
|
|
logicEngine.ActiveContainer.AddElement(NOR1);
|
|
|
|
let Button1 = new inputButton();
|
|
Button1.X = 20;
|
|
Button1.Y = 20;
|
|
Button1.addConnection(logicEngine.ActiveContainer,OR1,1);
|
|
logicEngine.ActiveContainer.AddElement(Button1);
|
|
|
|
let Button2 = new inputButton();
|
|
Button2.X = 20;
|
|
Button2.Y = 130;
|
|
Button2.addConnection(logicEngine.ActiveContainer,NAND1,0);
|
|
logicEngine.ActiveContainer.AddElement(Button2);
|
|
|
|
let Button3 = new inputButton();
|
|
Button3.X = 20;
|
|
Button3.Y = 240;
|
|
Button3.addConnection(logicEngine.ActiveContainer,NAND1,1);
|
|
logicEngine.ActiveContainer.AddElement(Button3);
|
|
*/
|