Initial commit
This commit is contained in:
9
bricks/gates/AND.cs
Normal file
9
bricks/gates/AND.cs
Normal file
@ -0,0 +1,9 @@
|
||||
datablock fxDTSBrickData(LogicGate_AND_Data : LogicGate_OR_Data)
|
||||
{
|
||||
uiName = "1x2f AND";
|
||||
iconName = $LuaLogic::Path @ "icons/1x2f AND";
|
||||
logicUIName = "AND";
|
||||
logicUIDesc = "C is true if A and B are true";
|
||||
logicUpdate = "return function(gate) gate.ports[3]:setstate(gate.ports[1].state and gate.ports[2].state) end";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_AND_Data");
|
9
bricks/gates/NAND.cs
Normal file
9
bricks/gates/NAND.cs
Normal file
@ -0,0 +1,9 @@
|
||||
datablock fxDTSBrickData(LogicGate_NAND_Data : LogicGate_OR_Data)
|
||||
{
|
||||
uiName = "1x2f NAND";
|
||||
iconName = $LuaLogic::Path @ "icons/1x2f NAND";
|
||||
logicUIName = "NAND";
|
||||
logicUIDesc = "C is false if A and B are true";
|
||||
logicUpdate = "return function(gate) gate.ports[3]:setstate(not (gate.ports[1].state and gate.ports[2].state)) end";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_NAND_Data");
|
9
bricks/gates/NOR.cs
Normal file
9
bricks/gates/NOR.cs
Normal file
@ -0,0 +1,9 @@
|
||||
datablock fxDTSBrickData(LogicGate_NOR_Data : LogicGate_OR_Data)
|
||||
{
|
||||
uiName = "1x2f NOR";
|
||||
iconName = $LuaLogic::Path @ "icons/1x2f NOR";
|
||||
logicUIName = "NOR";
|
||||
logicUIDesc = "C is false if A or B are true";
|
||||
logicUpdate = "return function(gate) gate.ports[3]:setstate(not (gate.ports[1].state or gate.ports[2].state)) end";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_NOR_Data");
|
24
bricks/gates/NOT.cs
Normal file
24
bricks/gates/NOT.cs
Normal file
@ -0,0 +1,24 @@
|
||||
datablock fxDTSBrickData(LogicGate_NOT_Data : LogicGate_Diode_Data)
|
||||
{
|
||||
uiName = "1x1f NOT";
|
||||
iconName = $LuaLogic::Path @ "icons/1x1f NOT";
|
||||
|
||||
logicUIName = "NOT";
|
||||
logicUIDesc = "B is the opposite of A";
|
||||
|
||||
logicUpdate = "return function(gate) gate.ports[2]:setstate(not gate.ports[1].state) end";
|
||||
|
||||
numLogicPorts = 2;
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_NOT_Data");
|
||||
|
||||
function LogicGate_NOT_Data::onPlant(%this, %obj)
|
||||
{
|
||||
if(lualogic_iscolor("RED"))
|
||||
%obj.setColor(lualogic_getcolor("RED"));
|
||||
|
||||
if(lualogic_isprint("ARROW"))
|
||||
%obj.setPrint(lualogic_getprint("ARROW"));
|
||||
|
||||
parent::onPlant(%this, %obj);
|
||||
}
|
37
bricks/gates/OR.cs
Normal file
37
bricks/gates/OR.cs
Normal file
@ -0,0 +1,37 @@
|
||||
datablock fxDTSBrickData(LogicGate_OR_Data)
|
||||
{
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Gates";
|
||||
uiName = "1x2f OR";
|
||||
iconName = $LuaLogic::Path @ "icons/1x2f OR";
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/1x2f_2i_1o.blb";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
|
||||
isLogic = 1;
|
||||
isLogicGate = 1;
|
||||
logicUIName = "OR";
|
||||
logicUIDesc = "C is true if A or B are true";
|
||||
|
||||
logicUpdate = "return function(gate) gate.ports[3]:setstate(gate.ports[1].state or gate.ports[2].state) end";
|
||||
|
||||
numLogicPorts = 3;
|
||||
|
||||
logicPortType[0] = 1;
|
||||
logicPortPos[0] = "0 1 0";
|
||||
logicPortDir[0] = "0";
|
||||
logicPortCauseUpdate[0] = true;
|
||||
logicPortUIName[0] = "A";
|
||||
|
||||
logicPortType[1] = 1;
|
||||
logicPortPos[1] = "0 -1 0";
|
||||
logicPortDir[1] = "0";
|
||||
logicPortCauseUpdate[1] = true;
|
||||
logicPortUIName[1] = "B";
|
||||
|
||||
logicPortType[2] = 0;
|
||||
logicPortPos[2] = "0 -1 0";
|
||||
logicPortDir[2] = "2";
|
||||
logicPortUIName[2] = "C";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_OR_Data");
|
9
bricks/gates/XNOR.cs
Normal file
9
bricks/gates/XNOR.cs
Normal file
@ -0,0 +1,9 @@
|
||||
datablock fxDTSBrickData(LogicGate_XNOR_Data : LogicGate_OR_Data)
|
||||
{
|
||||
uiName = "1x2f XNOR";
|
||||
iconName = $LuaLogic::Path @ "icons/1x2f XNOR";
|
||||
logicUIName = "XNOR";
|
||||
logicUIDesc = "C is true if A and B are both true or both false";
|
||||
logicUpdate = "return function(gate) gate.ports[3]:setstate((gate.ports[1].state and gate.ports[2].state) or (not gate.ports[1].state and not gate.ports[2].state)) end";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_XNOR_Data");
|
9
bricks/gates/XOR.cs
Normal file
9
bricks/gates/XOR.cs
Normal file
@ -0,0 +1,9 @@
|
||||
datablock fxDTSBrickData(LogicGate_XOR_Data : LogicGate_OR_Data)
|
||||
{
|
||||
uiName = "1x2f XOR";
|
||||
iconName = $LuaLogic::Path @ "icons/1x2f XOR";
|
||||
logicUIName = "XOR";
|
||||
logicUIDesc = "C is true if A or B are true but false if A and B are true";
|
||||
logicUpdate = "return function(gate) gate.ports[3]:setstate((gate.ports[1].state or gate.ports[2].state) and not (gate.ports[1].state and gate.ports[2].state)) end";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_XOR_Data");
|
44
bricks/gates/diode.cs
Normal file
44
bricks/gates/diode.cs
Normal file
@ -0,0 +1,44 @@
|
||||
datablock fxDTSBrickData(LogicGate_Diode_Data)
|
||||
{
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Gates";
|
||||
uiName = "1x1f Diode";
|
||||
iconName = $LuaLogic::Path @ "icons/1x1f Diode";
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/1x1f_1i_1o.blb";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
|
||||
isLogic = 1;
|
||||
isLogicGate = 1;
|
||||
logicUIName = "Diode";
|
||||
logicUIDesc = "B is A";
|
||||
|
||||
logicUpdate = "return function(gate) gate.ports[2]:setstate(gate.ports[1].state) end";
|
||||
|
||||
numLogicPorts = 2;
|
||||
|
||||
logicPortType[0] = 1;
|
||||
logicPortPos[0] = "0 0 0";
|
||||
logicPortDir[0] = "0";
|
||||
logicPortCauseUpdate[0] = true;
|
||||
logicPortUIName[0] = "A";
|
||||
logicPortUIDesc[0] = "";
|
||||
|
||||
logicPortType[1] = 0;
|
||||
logicPortPos[1] = "0 0 0";
|
||||
logicPortDir[1] = "2";
|
||||
logicPortUIName[1] = "B";
|
||||
logicPortUIDesc[1] = "";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_Diode_Data");
|
||||
|
||||
function LogicGate_Diode_Data::onPlant(%this, %obj)
|
||||
{
|
||||
if(lualogic_iscolor("GREEN"))
|
||||
%obj.setColor(lualogic_getcolor("GREEN"));
|
||||
|
||||
if(lualogic_isprint("ARROW"))
|
||||
%obj.setPrint(lualogic_getprint("ARROW"));
|
||||
|
||||
parent::onPlant(%this, %obj);
|
||||
}
|
69
bricks/gates/verticalDiode.cs
Normal file
69
bricks/gates/verticalDiode.cs
Normal file
@ -0,0 +1,69 @@
|
||||
datablock fxDTSBrickData(LogicGate_DiodeUp_Data)
|
||||
{
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/1x1fU_1i_1o.blb";
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Gates";
|
||||
uiName = "Diode Up";
|
||||
iconName = $LuaLogic::Path @ "icons/Diode Up";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
orientationFix = 3;
|
||||
|
||||
isLogic = true;
|
||||
isLogicGate = true;
|
||||
isLogicInput = false;
|
||||
|
||||
logicUIName = "Diode Up";
|
||||
logicUIDesc = "B is A";
|
||||
|
||||
logicUpdate = "return function(gate) gate.ports[2]:setstate(gate.ports[1].state) end";
|
||||
|
||||
numLogicPorts = 2;
|
||||
|
||||
logicPortType[0] = 1;
|
||||
logicPortPos[0] = "0 0 0";
|
||||
logicPortDir[0] = 5;
|
||||
logicPortCauseUpdate[0] = true;
|
||||
logicPortUIName[0] = "A";
|
||||
|
||||
logicPortType[1] = 0;
|
||||
logicPortPos[1] = "0 0 0";
|
||||
logicPortDir[1] = 4;
|
||||
logicPortUIName[1] = "B";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_DiodeUp_Data");
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_DiodeDown_Data : LogicGate_DiodeUp_Data)
|
||||
{
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/1x1fD_1i_1o.blb";
|
||||
uiName = "Diode Down";
|
||||
iconName = $LuaLogic::Path @ "icons/Diode Down";
|
||||
|
||||
logicUIName = "Diode Down";
|
||||
|
||||
logicPortDir[0] = 4;
|
||||
logicPortDir[1] = 5;
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_DiodeDown_Data");
|
||||
|
||||
function LogicGate_DiodeUp_Data::onPlant(%this, %obj)
|
||||
{
|
||||
if(lualogic_iscolor("GREEN"))
|
||||
%obj.setColor(lualogic_getcolor("GREEN"));
|
||||
|
||||
if(lualogic_isprint("UPARROW"))
|
||||
%obj.setPrint(lualogic_getprint("UPARROW"));
|
||||
|
||||
parent::onPlant(%this, %obj);
|
||||
}
|
||||
|
||||
function LogicGate_DiodeDown_Data::onPlant(%this, %obj)
|
||||
{
|
||||
if(lualogic_iscolor("GREEN"))
|
||||
%obj.setColor(lualogic_getcolor("GREEN"));
|
||||
|
||||
if(lualogic_isprint("DOWNARROW"))
|
||||
%obj.setPrint(lualogic_getprint("DOWNARROW"));
|
||||
|
||||
parent::onPlant(%this, %obj);
|
||||
}
|
45
bricks/gates/verticalNOT.cs
Normal file
45
bricks/gates/verticalNOT.cs
Normal file
@ -0,0 +1,45 @@
|
||||
datablock fxDTSBrickData(LogicGate_NotUp_Data : LogicGate_DiodeUp_Data)
|
||||
{
|
||||
uiName = "Not Up";
|
||||
iconName = $LuaLogic::Path @ "icons/Not Up";
|
||||
|
||||
logicUIName = "Not Up";
|
||||
logicUIDesc = "B is the inverse of A";
|
||||
|
||||
logicUpdate = "return function(gate) gate.ports[2]:setstate(not gate.ports[1].state) end";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_NotUp_Data");
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_NotDown_Data : LogicGate_DiodeDown_Data)
|
||||
{
|
||||
uiName = "Not Down";
|
||||
iconName = $LuaLogic::Path @ "icons/Not Down";
|
||||
|
||||
logicUIName = "Not Down";
|
||||
logicUIDesc = "B is the inverse of A";
|
||||
|
||||
logicUpdate = "return function(gate) gate.ports[2]:setstate(not gate.ports[1].state) end";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_NotDown_Data");
|
||||
|
||||
function LogicGate_NotUp_Data::onPlant(%this, %obj)
|
||||
{
|
||||
if(lualogic_iscolor("RED"))
|
||||
%obj.setColor(lualogic_getcolor("RED"));
|
||||
|
||||
if(lualogic_isprint("UPARROW"))
|
||||
%obj.setPrint(lualogic_getprint("UPARROW"));
|
||||
|
||||
parent::onPlant(%this, %obj);
|
||||
}
|
||||
|
||||
function LogicGate_NotDown_Data::onPlant(%this, %obj)
|
||||
{
|
||||
if(lualogic_iscolor("RED"))
|
||||
%obj.setColor(lualogic_getcolor("RED"));
|
||||
|
||||
if(lualogic_isprint("DOWNARROW"))
|
||||
%obj.setPrint(lualogic_getprint("DOWNARROW"));
|
||||
|
||||
parent::onPlant(%this, %obj);
|
||||
}
|
Reference in New Issue
Block a user