Ok, seems I have to manually create this data.raw table, but I can only find examples on doing it with known mods. I would like to create a data.raw for all mod items/entities/recipes that meet a type, in my current case, all mining-drill info on all loaded mods that are enabled/active. Since the mod-list.json carries all the info on the mods, i am looking for a means to have the control.lua of my mod, open that file, figure out what mods are thier that are enabled, get thier dir, and figure out what data files are loaded, ie, in my mod, it opens 4 luas in the data.lua, then run the files for the data:extend part and add all the data collected to the data.raw, then i can go threw it by type, in this case, a way to look at all the entities data that has a type "mining-drill" and make a copy of the needed data, then delete out the data.raw table, got the idea, just no idea how to do it in lua ._.
could someone walk me threw how to manage to do this <.< without my head exploding >.>
lua function to get mod list
-
- Long Handed Inserter
- Posts: 55
- Joined: Thu Jun 27, 2013 3:59 pm
- Contact:
Re: lua function to get mod list
I think this should demonstrate it sufficiently for you xD
I added these lines to the ralmodpk's data.lua and used the collision/selection boxes to show a visual difference but if you wanted to change the speed you'd use the usual (effectivity, and mining_speed, instead of .collision_box and .selection_box) This makes the fast-mining-drill's collision box extremely large and the selection box for all mining-drill entities extremely large.
If you'd wanted to modify something on the creeper then you could use data.raw.unit["creeper"] because the name is creeper and it's entity type is unit.
I added these lines to the ralmodpk's data.lua and used the collision/selection boxes to show a visual difference but if you wanted to change the speed you'd use the usual (effectivity, and mining_speed, instead of .collision_box and .selection_box)
Code: Select all
test = data.raw["mining-drill"]
test["fast-mining-drill"].collision_box = {{-5.4,-5.4},{5.4,5.4}}
for k,v in pairs(test) do
test[k].selection_box = {{-5.4,-5.4},{5.4,5.4}}
end
If you'd wanted to modify something on the creeper then you could use data.raw.unit["creeper"] because the name is creeper and it's entity type is unit.
<I'm really not active any more so these may not be up to date>
~FreeER=Factorio Modding
- Factorio Wiki
- My Factorio Modding Guide
- Wiki Modding Guide
Feel free to pm me
Or drop into #factorio on irc.esper.net
~FreeER=Factorio Modding
- Factorio Wiki
- My Factorio Modding Guide
- Wiki Modding Guide
Feel free to pm me
Or drop into #factorio on irc.esper.net
-
- Long Handed Inserter
- Posts: 55
- Joined: Thu Jun 27, 2013 3:59 pm
- Contact:
Re: lua function to get mod list
no go
no matter how I try to access data.raw its nil value, crashes with a error
Code: Select all
test = data.raw["mining-drill"]
local t109 = test["fast-mining-drill"].resource_searching_radius
local t110 = test["basic-mining-drill"].resource_searching_radius
glob.player.print("test - " .. string.format("%d : 02%d", t109, t110))
- Attachments
-
- Capture.PNG (47.42 KiB) Viewed 3675 times
-
- Long Handed Inserter
- Posts: 55
- Joined: Thu Jun 27, 2013 3:59 pm
- Contact:
Re: lua function to get mod list
the whole function -
i am trying to make a setup that will when you build something, it checks if its a drill, if so get its resource_search_radius from the entities vars so I can add a means of checking for depleted resources
Code: Select all
game.onevent(defines.events.onbuiltentity, function(event)
if event.createdentity.type == "mining-drill" then
glob.newMineWatcher = glob.newMineWatcher + 1
glob.MineWatcher[glob.newMineWatcher] = event.createdentity
for k,v in pairs(glob.MineWatcher) do
if not v.isvalid() then
table.remove(glob.MineWatcher, k)
glob.newMineWatcher=glob.newMineWatcher-1
else
local test = data.raw["mining-drill"]
local t109 = test["fast-mining-drill"].resource_searching_radius
local t110 = test["basic-mining-drill"].resource_searching_radius
glob.player.print("test - " .. string.format("%d : 02%d", t109, t110))
end
end
end
end)
Re: lua function to get mod list
Sorry for making a post that didn't actually end up helping, and then not replying back. I got interrupted by fourth of july celebrations with family.
The variables created in data.lua are only accessible from the data.lua (though you have probably figured that out by now)
hmmm, I was going to suggest using .getactive() but I just tested it and it returns true even if the drill isn't ontop of resources or connected to power so not very useful...
my second thought was getenergy. But that really only works if it has no power, not if it's out of resources since getenergy displays the same value whether the drill is working or not...I thought drills used 10% of their energy when not working...maybe getenergy doesn't reflect that idk (ah, looking at the wiki getenergy checks the machine's energy buffer, that explains it)
Well, I suppose I can't really help you out here I think factorio will need to be updated with something to help you out which (unfortunately) I can not do lol
The variables created in data.lua are only accessible from the data.lua (though you have probably figured that out by now)
hmmm, I was going to suggest using .getactive() but I just tested it and it returns true even if the drill isn't ontop of resources or connected to power so not very useful...
my second thought was getenergy. But that really only works if it has no power, not if it's out of resources since getenergy displays the same value whether the drill is working or not...I thought drills used 10% of their energy when not working...maybe getenergy doesn't reflect that idk (ah, looking at the wiki getenergy checks the machine's energy buffer, that explains it)
Well, I suppose I can't really help you out here I think factorio will need to be updated with something to help you out which (unfortunately) I can not do lol
<I'm really not active any more so these may not be up to date>
~FreeER=Factorio Modding
- Factorio Wiki
- My Factorio Modding Guide
- Wiki Modding Guide
Feel free to pm me
Or drop into #factorio on irc.esper.net
~FreeER=Factorio Modding
- Factorio Wiki
- My Factorio Modding Guide
- Wiki Modding Guide
Feel free to pm me
Or drop into #factorio on irc.esper.net