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"); | 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) | datablock fxDTSBrickData(LogicGate_HorizontalPixel_Data : LogicGate_Pixel_Data) | ||||||
| { | { | ||||||
| 	brickFile = $LuaLogic::Path @ "bricks/blb/pixels/HPixel.blb"; | 	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"); | lualogic_registergatedefinition("LogicGate_HorizontalPixel_Data"); | ||||||
|  |  | ||||||
| function LogicGate_Pixel_Data::LuaLogic_Callback(%this, %brick, %color){ | function LogicGate_HorizontalPixel_Data::LuaLogic_Callback(%this, %obj, %data){ | ||||||
| 	if(lualogic_isprint("COLOR" @ %color)) |  | ||||||
| 		%brick.setPrint(lualogic_getprint("COLOR" @ %color)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function LogicGate_HorizontalPixel_Data::LuaLogic_Callback(%this, %obj, %data) |  | ||||||
| { |  | ||||||
| 	LogicGate_Pixel_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