added small pixel using pulse width input
This commit is contained in:
		
							
								
								
									
										13
									
								
								bricks/outputs/pixel-update.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								bricks/outputs/pixel-update.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
|  | ||||
| return function(gate) | ||||
| 	if gate.ports[1]:isrising() then | ||||
| 		gate.tickStarted = gate:gettick() | ||||
| 	elseif gate.ports[1]:isfalling() then | ||||
| 		local ticksOn = gate:gettick() - gate.tickStarted | ||||
| 		 | ||||
| 		local colorid = ((ticksOn-1) % 8) | ||||
| 		local colorname = string.reverse(tobitstring(colorid, 3)) | ||||
| 		 | ||||
| 		gate:cb(colorname) | ||||
| 	end | ||||
| end | ||||
| @@ -40,6 +40,11 @@ datablock fxDTSBrickData(LogicGate_Pixel_Data) | ||||
| }; | ||||
| lualogic_registergatedefinition("LogicGate_Pixel_Data"); | ||||
|  | ||||
| function LogicGate_Pixel_Data::LuaLogic_Callback(%this, %brick, %color){ | ||||
| 	if(lualogic_isprint("COLOR" @ %color)) | ||||
| 		%brick.setPrint(lualogic_getprint("COLOR" @ %color)); | ||||
| } | ||||
|  | ||||
| datablock fxDTSBrickData(LogicGate_HorizontalPixel_Data : LogicGate_Pixel_Data) | ||||
| { | ||||
| 	brickFile = $LuaLogic::Path @ "bricks/blb/pixels/HPixel.blb"; | ||||
| @@ -80,12 +85,40 @@ datablock fxDTSBrickData(LogicGate_HorizontalPixel_Data : LogicGate_Pixel_Data) | ||||
| }; | ||||
| lualogic_registergatedefinition("LogicGate_HorizontalPixel_Data"); | ||||
|  | ||||
| function LogicGate_Pixel_Data::LuaLogic_Callback(%this, %brick, %color){ | ||||
| 	if(lualogic_isprint("COLOR" @ %color)) | ||||
| 		%brick.setPrint(lualogic_getprint("COLOR" @ %color)); | ||||
| } | ||||
|  | ||||
| function LogicGate_HorizontalPixel_Data::LuaLogic_Callback(%this, %obj, %data) | ||||
| { | ||||
| function LogicGate_HorizontalPixel_Data::LuaLogic_Callback(%this, %obj, %data){ | ||||
| 	LogicGate_Pixel_Data::LuaLogic_Callback(%this, %obj, %data); | ||||
| } | ||||
|  | ||||
| datablock fxDTSBrickData(LogicGate_SmallPixel_Data){ | ||||
| 	brickFile = $LuaLogic::Path @ "bricks/blb/TextBrick.blb"; | ||||
| 	category = "Logic Bricks"; | ||||
| 	subCategory = "Outputs"; | ||||
| 	uiName = "Small Pixel"; | ||||
| 	iconName = $LuaLogic::Path @ "icons/Text Brick"; | ||||
| 	hasPrint = 1; | ||||
| 	printAspectRatio = "Logic"; | ||||
| 	orientationFix = 3; | ||||
| 	 | ||||
| 	isLogic = true; | ||||
| 	isLogicGate = true; | ||||
| 	isLogicInput = false; | ||||
| 	 | ||||
| 	logicUIName = "Small pixel"; | ||||
| 	logicUIDesc = "Resets on rise, increments based on pulse length"; | ||||
| 	 | ||||
| 	logicInit   = "return function(gate) gate.tickStarted = 0 end"; | ||||
| 	logicUpdate = lualogic_readfile($LuaLogic::Path @ "bricks/outputs/pixel-update.lua"); | ||||
| 	 | ||||
| 	numLogicPorts = 1; | ||||
| 	 | ||||
| 	logicPortType[0] = 1; | ||||
| 	logicPortPos[0] = "0 0 -1"; | ||||
| 	logicPortDir[0] = 3; | ||||
| 	logicPortCauseUpdate[0] = true; | ||||
| 	logicPortUIName[0] = "Inc"; | ||||
| }; | ||||
| lualogic_registergatedefinition("LogicGate_SmallPixel_Data"); | ||||
|  | ||||
| function LogicGate_SmallPixel_Data::LuaLogic_Callback(%data, %brick, %color){ | ||||
| 	LogicGate_Pixel_Data::LuaLogic_Callback(%data, %brick, %color); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Redo
					Redo