val lualib = File("/Applications/factorio.app/Contents/data/core/lualib/?.lua") val datalib = File("/Applications/factorio.app/Contents/data/base/?.lua") val packagePath = "${lualib.absolutePath};${datalib.absolutePath}" val context = JsePlatform.standardGlobals() val input = FactorioApp::class.java.getResourceAsStream("/compat.lua") context.load(input, "compat", "t", context).call() context.get("package").set("path", packagePath) context.load("require 'dataloader'").call() context.load("require 'data'").call() val data = context.get("data") rawdata = data.get("raw") as LuaTable val rawRecipes: LuaTable = rawdata.get("recipe") as LuaTable rawRecipes.keys().forEach { key -> handleRecipe(key, rawdata) }