Binding of Isaac: Rebirth Wiki
mNo edit summary
mNo edit summary
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
local p = {}
 
local p = {}
   
--local w_bit = require( 'module:bit' )
+
local bit32 = require( 'bit32' )
  +
 
local w_frame = require( 'module:frame' )
 
local w_frame = require( 'module:frame' )
  +
local w_table = require( 'module:table' )
+
local data = mw.loadData( 'module:dlc/data' )
   
   
 
function p.parse( f )
 
function p.parse( f )
return mw.loadData( 'module:dlc/data' ).values[w_frame.args( f )[1] or ''] or 0
+
return data.values[w_frame.args( f )[1] or ''] or 0
 
end
 
end
   
Line 13: Line 15:
 
function p.test( f )
 
function p.test( f )
 
local args = w_frame.args( f )
 
local args = w_frame.args( f )
return ( mw.loadData( 'module:dlc/data' ).test[tonumber( args[1] )] or {} )[tonumber( args[2] ) or 15] or 0
+
return ( data.test[tonumber( args[1] )] or {} )[tonumber( args[2] ) or 15] or 0
 
end
--[[
 
  +
local value = args[1]
 
  +
local context = args[2]
 
  +
function p.find( f )
local data = mw.loadData( 'module:dlc/data' )
 
 
local args = w_frame.args( f )
 
  +
local filter = args[2] == 'last' and 8 or args[2] or tonumber( mw.getCurrentFrame():callParserFunction( '#var:context' ) ) or 15
if context == 15 then
 
  +
local parts
return value
 
  +
for str in mw.text.gsplit( args[1], '▼' ) do
end
 
  +
parts = mw.text.split( str, '►' )
 
  +
if bit32.band( parts[1], filter ) > 0 then
local filtered = w_bit['and']{ value, context }
 
 
return parts[2]
if filtered == 0 then
 
 
end
return 0
 
end
 
 
if w_bit['or']{ value, context } == value then
 
return 15
 
end
 
 
local limits = w_bit['and']{ 9, filtered }
 
if limits == value then
 
return limits
 
 
end
 
end
]]
 
 
end
 
end
   

Revision as of 16:15, 29 August 2021


local p = {}

local bit32 = require( 'bit32' )

local w_frame = require( 'module:frame' )

local data = mw.loadData( 'module:dlc/data' )


function p.parse( f )
	return data.values[w_frame.args( f )[1] or ''] or 0
end


function p.test( f )
	local args = w_frame.args( f )
	return ( data.test[tonumber( args[1] )] or {} )[tonumber( args[2] ) or 15] or 0
end


function p.find( f )
	local args   = w_frame.args( f )
	local filter = args[2] == 'last' and 8 or args[2] or tonumber( mw.getCurrentFrame():callParserFunction( '#var:context' ) ) or 15
	local parts
	for str in mw.text.gsplit( args[1], '▼' ) do
		parts = mw.text.split( str, '►' )
		if bit32.band( parts[1], filter ) > 0 then
			return parts[2]
		end
	end
end


return p