HalfAdder.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. datablock fxDTSBrickData(LogicGate_HalfAdder_Data)
  2. {
  3. brickFile = $LuaLogic::Path @ "bricks/blb/HalfAdder.blb";
  4. category = "Logic Bricks";
  5. subCategory = "Math";
  6. uiName = "Half Adder";
  7. iconName = $LuaLogic::Path @ "icons/Half Adder";
  8. hasPrint = 1;
  9. printAspectRatio = "Logic";
  10. orientationFix = 3;
  11. isLogic = true;
  12. isLogicGate = true;
  13. isLogicInput = false;
  14. logicUIName = "Half Adder";
  15. logicUIDesc = "Adds A and B";
  16. logicUpdate =
  17. "return function(gate) " @
  18. " Gate.setportstate(gate, 3, bit.bxor(Gate.getportstate(gate, 1), Gate.getportstate(gate, 2))) " @
  19. " Gate.setportstate(gate, 4, Gate.getportstate(gate, 1)*Gate.getportstate(gate, 2)) " @
  20. "end"
  21. ;
  22. numLogicPorts = 4;
  23. logicPortType[0] = 1;
  24. logicPortPos[0] = "-1 0 0";
  25. logicPortDir[0] = 3;
  26. logicPortCauseUpdate[0] = true;
  27. logicPortUIName[0] = "A";
  28. logicPortType[1] = 1;
  29. logicPortPos[1] = "1 0 0";
  30. logicPortDir[1] = 3;
  31. logicPortCauseUpdate[1] = true;
  32. logicPortUIName[1] = "B";
  33. logicPortType[2] = 0;
  34. logicPortPos[2] = "-1 0 0";
  35. logicPortDir[2] = 1;
  36. logicPortUIName[2] = "Sum";
  37. logicPortType[3] = 0;
  38. logicPortPos[3] = "-1 0 0";
  39. logicPortDir[3] = 0;
  40. logicPortUIName[3] = "Carry";
  41. };
  42. lualogic_registergatedefinition("LogicGate_HalfAdder_Data");