[1.0][1.1] Building Platform v1.2
Re: [0.13][0.14] Building Platform v1.0.3
I installed your mod and now i got this error message on loading Factorio.
Edit:
Well, it seems this mod interferes with the suit plug mod.
I deleted it and now its working.
Maybe interesting for anyone who has the same problem.
Edit:
Well, it seems this mod interferes with the suit plug mod.
I deleted it and now its working.
Maybe interesting for anyone who has the same problem.
Re: [0.13][0.14] Building Platform v1.0.3
This mod redefine the debug object I use, as this object is defined by the game and not by me I can't rename in my mod, he should change the name of his boolean. If you want to use his mod with mine, remove or comment those two line in internals_functions.lua (of my mod, mods-config folder)) :
I will send him a message to explain what he should change with the hope he do those change.
Edit : Here the message I sent him : https://mods.factorio.com/mods/sirintel ... ssion/6620
Code: Select all
assert(type(buildingType)== "string",debug.traceback("From building-platform mod, buildingType parameter must be a string, find the faulty calling mod at the top of the following stacktrace :", 3))
assert(type(pattern)== "string",debug.traceback("From building-platform mod, pattern parameter must be a string, find the faulty calling mod at the top of the following stacktrace :", 3))
Edit : Here the message I sent him : https://mods.factorio.com/mods/sirintel ... ssion/6620
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Re: [0.13][0.14] Building Platform v1.0.4
Compatibility and bug fix release
04-01-2017 - 1.0.4 (for 0.14); 0.9.4 (for 0.13) :
For RSO users, as Dreadicon's code that make platform more blocky has been added to RSO by default in last version, you can turn it off if you want by setting 'useStraightWorldPlatforms' in RSO config to false.
04-01-2017 - 1.0.4 (for 0.14); 0.9.4 (for 0.13) :
- Fixed a misplaced condition that made multiple blockAllBut rules on a same building type not working in certain case.
- Added a config to block/unblock building by mod (buildingplatform.config.unrestrictMod). Only existing for mod that I have set rules for already. You can ask for more mod compatibility using the forum or the mod portal discussion.
- Edited Alert Combinator blocking rule to be blocked only if using the new buildingplatform.config.unrestrictMod config instead of using the buildingplatform.config.unrestrictCombinator. Alert Combinator not restricted by default.
- Added block rules for Factorissimo mod's buildings. Blocked by default they can be unblocked by setting the right boolean in buildingplatform.config.unrestrictMod to true.
- Added block rules for Flow Control mod's buildings and Flow Control for Bobs pipes's buildings. Not blocked by default they can be blocked by setting the right boolean in buildingplatform.config.unrestrictMod to false.
- Added block rules for Circuit Network Switch mod's building. Not blocked by default it can be blocked by setting the right boolean in buildingplatform.config.unrestrictMod to false.
For RSO users, as Dreadicon's code that make platform more blocky has been added to RSO by default in last version, you can turn it off if you want by setting 'useStraightWorldPlatforms' in RSO config to false.
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Re: [0.13][0.14] Building Platform v1.0.4
Great mod! I was trying to adjust some generation settings but having a lot of trouble getting what I'm aiming for.
Is there a way to make the autoplacement of the platforms more noisy, more jagged, less round? I actually got one spawn that was like that, but upon adjusting the values [sharpness and coverage mainly] I could not repeat that behavior.
Also, is the 'autoplace noise' the only way to place platforms in the map? Is it possible to have a function for each tile that we can decide for each if we place? That way we could do patterns and such. Later I'll look into the water maze mod to see if I can figure that one out.
This mod greatly interests me, I may devote some time into tinkering with it further if I'm able (new to modding). A few ideas you're free to steal that I might try:
* having multiple types of platforms, each one allowing a certain subset of items - different colors/textures obvi.
* creating a building or entity that takes power [or resources] and creates more platform around it, with increasing costs per tile.
* having a research queue with exponential costs that somehow makes it easier or rewards you with some amount of placable platform (crafting with a constant recipe is not the ideal).
* perhaps having a research queue, especially with multiple platform types, that allows items to be placed on a wider range of platforms [or eventually normal ground].
If certain combinations of these can be done, this can really change the game as we could have red/blue belts limited to certain types of platforms. Will dig more into this later, thanks for any help!
Is there a way to make the autoplacement of the platforms more noisy, more jagged, less round? I actually got one spawn that was like that, but upon adjusting the values [sharpness and coverage mainly] I could not repeat that behavior.
Also, is the 'autoplace noise' the only way to place platforms in the map? Is it possible to have a function for each tile that we can decide for each if we place? That way we could do patterns and such. Later I'll look into the water maze mod to see if I can figure that one out.
This mod greatly interests me, I may devote some time into tinkering with it further if I'm able (new to modding). A few ideas you're free to steal that I might try:
* having multiple types of platforms, each one allowing a certain subset of items - different colors/textures obvi.
* creating a building or entity that takes power [or resources] and creates more platform around it, with increasing costs per tile.
* having a research queue with exponential costs that somehow makes it easier or rewards you with some amount of placable platform (crafting with a constant recipe is not the ideal).
* perhaps having a research queue, especially with multiple platform types, that allows items to be placed on a wider range of platforms [or eventually normal ground].
If certain combinations of these can be done, this can really change the game as we could have red/blue belts limited to certain types of platforms. Will dig more into this later, thanks for any help!
Re: [0.13][0.14] Building Platform v1.0.4
update: Using the water maze mod, was able to get fine-tuned control of where platform is placed. Will work on it more later. Here's a quick preview of my first working test:
http://imgur.com/a/7mTd1
http://imgur.com/a/7mTd1
Re: [0.13][0.14] Building Platform v1.0.4
Concerning less round platform, if you use RSO there is a custom spawning for platform here that make them look more like square than round. You can tweak it a bit by editing RSO config line 'straightWorldPlatformsThreshold' changing the value will change how organic/blocky they are. If you want to only use my mod, you can try to edit data-updates.lua after line 46, the autoplace block, changing things here will change how platform are generated. I have never been able to make the generation looks like the old platform mod back in 0.12. You can change the form by adding peaks. If you don't know what you are doing it will be long before you achieve what you want.
A custom generation function (like RSO does) is possible, I haven't write it myself yet because I am waiting for next major release early 2017 (and don't have much time now to mod anymore). Even if I write it myself, it can't satisfy everyone. But yes with a custom function you can control how every tile is placed and make pattern if you want.
Concerning what you want to try :
Edit : Nice to see you have managed to do what you wanted If you manage to do what you want you should give your code here as other people where interested to do something similar.
A custom generation function (like RSO does) is possible, I haven't write it myself yet because I am waiting for next major release early 2017 (and don't have much time now to mod anymore). Even if I write it myself, it can't satisfy everyone. But yes with a custom function you can control how every tile is placed and make pattern if you want.
Concerning what you want to try :
- I though about that already having multiple platform but I saw two blocking done possibly :
- What type of base can be build on it, from what I have see, there is 3 type of minibase done on platform (not everyone do it like that but most of people) : Smelting, power production, goods production (and one platforms for the labs, but only one is needed). So 3 color mostly. The only thing that it will do to have those color it that it force you to have less choice in where to put those base.
- Having all limited building placeable on all platform but only block other building like belts/chest/pipe/etc or a subset of it. That solution is impractical, it enough hard to deal with space limited, but if you are restricted also on utility building, that's will be a nigthmare.
- In my opinion people should do with what the generation gave them, but I understand that some people don't want it that way, so I added a way to craft them. Having a building placing them will be too much, but if you want to try that, see Concreep mod or Concreteer mod they make roboport placing concrete, as platform is also a tile it shouldn't be hard to edit them to place platform and even instead of a roboport, a custom roboport (that do not have bots and a different sprite). It will be better if you have to keep power in roboport to keep platform.
- Nice idea, I may implement it with the infinite research system the game will have in the next major release early 2017. It is a good idea to be able to help you with some platform without having to much platform the recipe can give you.
- I haven't check if collision mask are editable on runtime but I don't think it is possible as they are stored within the prototype and are read-only. If not editable, the only way to do this is not using the collision mask but the old function I used to block placement. Blocking is set during the loading. when no save have been loaded so it can't know what research you have done to set proper collision mask. To be able to block building or not on runtime you will need to remove the code in data-final-fixe that add the collsion mask (so buidling will be placeable everywhere) and edit the function in controls.lua for the 'on_built_entity' event and instead of checking if the entity have the correct layer (layer-15) you will need to check if the building should be blocked (in the same way data-final-fixes do at the moment). For every research, you edit what building can be place so the function stop blocking some after some research.
Edit : Nice to see you have managed to do what you wanted If you manage to do what you want you should give your code here as other people where interested to do something similar.
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Re: [0.13][0.14] Building Platform v1.0.4
thanks for the reply, that'll help a lot! I'll be messing with it, will share my updates here.
Re: [0.13][0.14] Building Platform v1.0.4
http://imgur.com/a/pfNyg
Done updating! I added a new tile type that uses the 'old' graphics - it's only purpose is to walk much faster on, but I slowed movespeed over normal land, and adjusted speed of stone bricks and concrete. A good amount of usable space, focal point at spawn, and if you travel outward the 'rings' are slightly bigger (but capped at 15 radius) so there's incentive to expand outward eventually.
I didn't rename the files or mess with the license headers. I'd like for you or me to release this somehow - whichever you prefer. If you want me to release it, I'll try to rename everything to 'building platform extreme' and link to this forum thread and credit you ofcourse. Otherwise, feel free to do what you want with it.
edit: With the new release, if I've got the time I'll contact you if you want to collab on this with extended features.
Done updating! I added a new tile type that uses the 'old' graphics - it's only purpose is to walk much faster on, but I slowed movespeed over normal land, and adjusted speed of stone bricks and concrete. A good amount of usable space, focal point at spawn, and if you travel outward the 'rings' are slightly bigger (but capped at 15 radius) so there's incentive to expand outward eventually.
I didn't rename the files or mess with the license headers. I'd like for you or me to release this somehow - whichever you prefer. If you want me to release it, I'll try to rename everything to 'building platform extreme' and link to this forum thread and credit you ofcourse. Otherwise, feel free to do what you want with it.
edit: With the new release, if I've got the time I'll contact you if you want to collab on this with extended features.
- Attachments
-
- building-platform_1.0.4.zip
- (783.42 KiB) Downloaded 175 times
Re: [0.13][0.14] Building Platform v1.0.4
Nice work, I could be interesting to play with this platform generaion.
I can integrate it in Building Platform mod with a config to switch between normal generation and yours. I would maintain it but the real question is "what do you want to do ?" :
What I have plan to do with Building platform world generation is waiting for 0.15 first. As there is a way to make decals, if it works the same way as tile, we can have platform sprite not tile bound (better visual). Then see how those decals are handled in world generation. If needed add my own platform generation code instead of using the game default generation.
As one generation doesn't suit every one, I would ask here and on the mod portal, what people expect from platform generation like, less round, more frequent, always protected by enemy base, and many others so I can make multiple generation that should please every one.
But I never thougth about using a specific pattern like you do but it is an interesting idea.
I can integrate it in Building Platform mod with a config to switch between normal generation and yours. I would maintain it but the real question is "what do you want to do ?" :
- If you want to continue messing with generation and make other generation script as time go by (and make people choose which one they want), you should release your own mod as an addon to mine instead of taking my whole code so you don't have to update your mod every time I update mine. And maybe you want to add more gameplay modification instead of just a custom generation. With the addon way you don't care about how platform block things, you just need to deactivate my generation and do yours instead. You still have access to my function to block building the way you prefer if you make custom gameplay change in your addon.
- If you only want this custom generation public and want to do nothing else I can take your code, integrate it in mine with a config for people to switch between normal generation and yours and I will maintain it if needed. I would add your name to credits file, forum and mod portal with a link to wherever you want
What I have plan to do with Building platform world generation is waiting for 0.15 first. As there is a way to make decals, if it works the same way as tile, we can have platform sprite not tile bound (better visual). Then see how those decals are handled in world generation. If needed add my own platform generation code instead of using the game default generation.
As one generation doesn't suit every one, I would ask here and on the mod portal, what people expect from platform generation like, less round, more frequent, always protected by enemy base, and many others so I can make multiple generation that should please every one.
But I never thougth about using a specific pattern like you do but it is an interesting idea.
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Re: [0.13][0.14] Building Platform v1.0.4
If you would please integrate it in yours with a config to change it, that'd be great! I'm done with messing with modding for the moment.
At 0.15 release, I'll consider doing more and contact you to see if you want to at least brainstorm together. Note that with a few days of work, that one pattern I made can be quite random, and have different elements/types, but not worth messing with that stuff till 0.15.
The important parts of the code should be obvious - the code for placing new tiles and the definition of 2nd tile type. I briefly tried to make the 2nd tile type have its own 'allowed' items, but too much work for now, so there's some relics here and there of that in a few files, mostly 1 or 2 lines of code. Sorry, a little messy.
Thanks for including it!
One idea - if it's possible, allow the mod to support adding any number of tile types and setting their properties, ie:
tilename - 'texturepath' - generation function/settings - list of allowed [or prevented] item categories
tilename2 - .....
...
ground - list of allowed / prevented item categories
With that setup, different configurations / generators could really try some interesting things, especially with belts and inserters. Just an idea.
At 0.15 release, I'll consider doing more and contact you to see if you want to at least brainstorm together. Note that with a few days of work, that one pattern I made can be quite random, and have different elements/types, but not worth messing with that stuff till 0.15.
The important parts of the code should be obvious - the code for placing new tiles and the definition of 2nd tile type. I briefly tried to make the 2nd tile type have its own 'allowed' items, but too much work for now, so there's some relics here and there of that in a few files, mostly 1 or 2 lines of code. Sorry, a little messy.
Thanks for including it!
One idea - if it's possible, allow the mod to support adding any number of tile types and setting their properties, ie:
tilename - 'texturepath' - generation function/settings - list of allowed [or prevented] item categories
tilename2 - .....
...
ground - list of allowed / prevented item categories
With that setup, different configurations / generators could really try some interesting things, especially with belts and inserters. Just an idea.
Re: [0.13][0.14] Building Platform v1.0.4
I will take the generation function of your mod and include it with a config. As for the second platform, I will take another tileset than the old platform as this one is used in my mod for those who still want the old graphic, maybe a recolor of the new platform or a recolor of the old or why not a recolor of the stone path. I'll see what's better.
You wanted to restrict what on the second platform ?
Adding more tile is something doable, the list of allowed item could be in a form of third optionnal argument to the functions I used (and other mod can used too). As your generation use two platform (even if the second one just act as a running one), I will see if I can implement it, it will not be long to do and can be usefull later. I only see one problem, collision mask (the thing that block building placement) There is only 4 mask available so only 4 different platform (with their own ruleset) will work with them. If someone need more platform, buildings will need to be blocked by script at runtime. The only downside to it is that the game will not make footprint for the building red outside platform.
For the credits, you want a link to where ?
You wanted to restrict what on the second platform ?
Adding more tile is something doable, the list of allowed item could be in a form of third optionnal argument to the functions I used (and other mod can used too). As your generation use two platform (even if the second one just act as a running one), I will see if I can implement it, it will not be long to do and can be usefull later. I only see one problem, collision mask (the thing that block building placement) There is only 4 mask available so only 4 different platform (with their own ruleset) will work with them. If someone need more platform, buildings will need to be blocked by script at runtime. The only downside to it is that the game will not make footprint for the building red outside platform.
For the credits, you want a link to where ?
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Re: [0.13][0.14] Building Platform v1.0.4
The 2nd tileset is only for walking speed, doesn't need buildings allowed in the current version. Having potential for up to 4 tilesets would be great for the future.
Note that I adjusted normal walking speed and stone/concrete - it's up to you if you want to keep/remove that or only have it with the config.
No link to website, just the name 'm2cengine' anywhere would suffice.
Note that I adjusted normal walking speed and stone/concrete - it's up to you if you want to keep/remove that or only have it with the config.
No link to website, just the name 'm2cengine' anywhere would suffice.
Re: [0.13][0.14] Building Platform v1.0.4
Normal platform gameplay is already long to not have the walking speed slowed. I will keep your change to speed only if people choose your generation and do not deactivate the specific config.
Should do the release during the next week.
Should do the release during the next week.
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Re: [0.13][0.14] Building Platform v1.0.4
excellent thanks!
Re: [0.13][0.14] Building Platform v1.0.4
I ran onto multiple small problem (like this one) that prevented me to finish the release this week, should be release the coming week.
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
- Betep3akata
- Inserter
- Posts: 40
- Joined: Fri Sep 30, 2016 10:31 am
- Contact:
Re: [0.13][0.14] Building Platform v1.0.4
Hi!
There is two or more incompatibilities with GotLag's Reactors mod:
1. The circuit interface (sub-entity of the reactor building) likely masked by building platform (you cannot select it) and does not accept wires.
2. The reactor building can be placed on the platform of concrete without the building platform beneath. After that you can mine concrete and get an error.
These issues were tested on the configuration of factorio with only two these mods.
Thanks.
There is two or more incompatibilities with GotLag's Reactors mod:
1. The circuit interface (sub-entity of the reactor building) likely masked by building platform (you cannot select it) and does not accept wires.
2. The reactor building can be placed on the platform of concrete without the building platform beneath. After that you can mine concrete and get an error.
These issues were tested on the configuration of factorio with only two these mods.
Thanks.
My mods: Scorched Earth, Will-o-the-wisps
//My nickname is some kind of transliteration from Cyrillic to Latin. Betep3akata stands for WindOfSunset.
//My nickname is some kind of transliteration from Cyrillic to Latin. Betep3akata stands for WindOfSunset.
Re: [0.13][0.14] Building Platform v1.0.4
I ran onto more problems with a new function that permit my mod (and other mod) to add more platform during the game loading screen.
Instead of having a function half done in a release (it work for the platform mod base need, but not for other mod), I, again, postpone the release for next week. I choose this option because there is no other feature waited in this release or bugfixes. People who use m2cengine's version of Building platform v1.0.4 will have a way to keep their world with no problem with the version 1.0.5 of my mod. I took his generation without changing it so not weird limit between old and new chunk.
For the first point, it's factorio who is drawing the two entity in the wrong order. Without my mod, the boiler is behind the circuit interface. Those two entity have the same priority. It happen that the order they are added to the game make them drawing in the correct order. However, as my mod edit those entity (edit not related to drawing) on loading, their order change and factorio draw in the wrong order. The control is hidden by the reactor boiler, not the platform (still a problem though). The game hasn't been made for entities to draw on top of other in a given order. Even if it is the game fault, it is caused because I edit them. The only workaround I found is making my mod NOT editing those entities. So their order are not swapped.
To do so open mods-config/vanilla.lua in a text editor, add after
and add
after
Depending on how I handle the other problem, I will add this workaround in the next release.
Second point is not tied to my mod neither, but I may be able to do something about it. For the "not blocking the reactor on concrete on top of ground" part, to explain what happen, know that in order to block building on concrete, I must run a custom function in my control.lua that check if there is ground or platform under the concrete (or other tile) then choose to remove the building. But Reactor mod have his own custom function that (unfortunately) run before mine that delete the building you place on concrete and add three other building. Building added by script are not checked by custom function and because he deleted the initial building, my check function do nothing. The only solution to block reactor on concrete is to force my function to run before his. I don't know a way of doing it, I will search for it on monday then I will see what to do between contacting GotLag to make a change on his mod or do the change on mine.
For the game throwing an error it's the game fault and the optimization GotLag have done. Like I said before a reactor is 3 buildings. A custom function make the three building works together. To avoid unnecessary checking each time, this function assume that all three building exist if the "reactor" exist. The reactor part of the three buildings is blocked by my mod but not blocked on concrete for the reason I mention earlier. This reactor "collide" with the ground so when you remove concrete, the game see a collision and wrongly (or not depending on the opinion) make this building disappear. By disappear I mean, it destroy it whithout telling no one. It does not tel the player (no message and the building is not reimbursed). And it does not tell the mods (not event is fired for the building disappearing). So Reactor mod don't know that the reactor do not exist anymore and when his function try to do something, there is an error because no check if the building disappear. The workaround for now (until I found a solution for the first part in control.lua and contact GotLag about it with what to do if needed) is to make the reactor (alongside the two other building part) not blocked by the ground. For the two other part I already gave you the instruction in the first point (reactor-interface and reactor-boiler) for the third building : add
to vanilla.lua after the line
It has the side effect of not blocking the reactor outside platform anymore.
I expect to have things sorted out for the next release and I will keep you informed on how things will be when I know more on monday/tuesday. Thanks for reporting the issue.
- Using collision_mask that the game provide for blocking building mean you can place the building nowhere but on that platform. When two platform have the same building that can be placed on it, as this building can't be placed outside platform 1 nor outside platform 2, I can't be place anywhere at all (not even on the platform that should accept it). The only workaround I found is making all platforms allow all buildings and using a custom script in control.lua, check if the building is on the correct platform. But there is no "official" way of telling control.lua which platform can accept which building when any mod can make their own rules in data. The game have no built-in way to send information to control from data phase. I will try checking if there is no other workaround to this problem, if not, I will use a dummy entity to send control.lua the information it need.
- No way for a mod to give me the generation function for a platform it want and use it to generate this platform because custom generation happen in control.lua.... No workaround found for that one so the custom generation will have to be done by the mod that want his own platform or using the game or mod built-in generation.
- I struggle to choose how to handle somes rules like, my platform does not list pipe as blocked so it can be placed anywhere if there is only my platform. However if a mod add a second platform using my function and list pipe as a restricted building (only placeable on it) it then block the placement of pipe on ground and on my platform. In this case, should it be placeable on my platform ? On the gound ? Because second platform "tell" pipe can't be place outside of it and another tell that pipe is not a problem to have it everywhere. I migth end up having a boolean parameter to ask when the platform is added how those situation should be handle. Like true if other platform can ovveride rules or something like that.
- I can't go with a list of restricted building for the ground because what is the ground ? Only the vanilla set of tile that is not concrete nor stone-path ? What about mods that add more biome variety ? So no way in game loading to know which tiles are the ground or not.
Instead of having a function half done in a release (it work for the platform mod base need, but not for other mod), I, again, postpone the release for next week. I choose this option because there is no other feature waited in this release or bugfixes. People who use m2cengine's version of Building platform v1.0.4 will have a way to keep their world with no problem with the version 1.0.5 of my mod. I took his generation without changing it so not weird limit between old and new chunk.
Two tough report, thanks anyway, here the explanation and workaround for them if you are interested.Betep3akata wrote:Hi!
There is two or more incompatibilities with GotLag's Reactors mod:
1. The circuit interface (sub-entity of the reactor building) likely masked by building platform (you cannot select it) and does not accept wires.
2. The reactor building can be placed on the platform of concrete without the building platform beneath. After that you can mine concrete and get an error.
These issues were tested on the configuration of factorio with only two these mods.
Thanks.
For the first point, it's factorio who is drawing the two entity in the wrong order. Without my mod, the boiler is behind the circuit interface. Those two entity have the same priority. It happen that the order they are added to the game make them drawing in the correct order. However, as my mod edit those entity (edit not related to drawing) on loading, their order change and factorio draw in the wrong order. The control is hidden by the reactor boiler, not the platform (still a problem though). The game hasn't been made for entities to draw on top of other in a given order. Even if it is the game fault, it is caused because I edit them. The only workaround I found is making my mod NOT editing those entities. So their order are not swapped.
To do so open mods-config/vanilla.lua in a text editor, add
Code: Select all
buildingplatform.blockAllBut("storage-tank","reactor%-boiler")
Code: Select all
buildingplatform.blockAll("storage-tank")
Code: Select all
buildingplatform.blockAllBut("constant-combinator","reactor%-interface")
Code: Select all
buildingplatform.blockAll("constant-combinator")
Second point is not tied to my mod neither, but I may be able to do something about it. For the "not blocking the reactor on concrete on top of ground" part, to explain what happen, know that in order to block building on concrete, I must run a custom function in my control.lua that check if there is ground or platform under the concrete (or other tile) then choose to remove the building. But Reactor mod have his own custom function that (unfortunately) run before mine that delete the building you place on concrete and add three other building. Building added by script are not checked by custom function and because he deleted the initial building, my check function do nothing. The only solution to block reactor on concrete is to force my function to run before his. I don't know a way of doing it, I will search for it on monday then I will see what to do between contacting GotLag to make a change on his mod or do the change on mine.
For the game throwing an error it's the game fault and the optimization GotLag have done. Like I said before a reactor is 3 buildings. A custom function make the three building works together. To avoid unnecessary checking each time, this function assume that all three building exist if the "reactor" exist. The reactor part of the three buildings is blocked by my mod but not blocked on concrete for the reason I mention earlier. This reactor "collide" with the ground so when you remove concrete, the game see a collision and wrongly (or not depending on the opinion) make this building disappear. By disappear I mean, it destroy it whithout telling no one. It does not tel the player (no message and the building is not reimbursed). And it does not tell the mods (not event is fired for the building disappearing). So Reactor mod don't know that the reactor do not exist anymore and when his function try to do something, there is an error because no check if the building disappear. The workaround for now (until I found a solution for the first part in control.lua and contact GotLag about it with what to do if needed) is to make the reactor (alongside the two other building part) not blocked by the ground. For the two other part I already gave you the instruction in the first point (reactor-interface and reactor-boiler) for the third building : add
Code: Select all
buildingplatform.blockAllBut("assembling-machine","nuclear%-reactor")
Code: Select all
buildingplatform.blockAll("assembling-machine")
I expect to have things sorted out for the next release and I will keep you informed on how things will be when I know more on monday/tuesday. Thanks for reporting the issue.
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
- Betep3akata
- Inserter
- Posts: 40
- Joined: Fri Sep 30, 2016 10:31 am
- Contact:
Re: [0.13][0.14] Building Platform v1.0.4
Hi, Neemys,
Thanks for the fast and detailed answer.
P.S.: English is not my native language. Sorry if I express my thoughts in the manner which is not polite enough.
P.P.S.: I am interested enough in the modding background of Factorio and especially in the game mechanics that make survival more complicated through enviromental not production features.
This mod reminded me the Dune 2 game where sand is not considered a place for the construction of something... that might be of interest to the Shai-Hulud worms Thanks for a great work.
Thanks for the fast and detailed answer.
P.S.: English is not my native language. Sorry if I express my thoughts in the manner which is not polite enough.
P.P.S.: I am interested enough in the modding background of Factorio and especially in the game mechanics that make survival more complicated through enviromental not production features.
This mod reminded me the Dune 2 game where sand is not considered a place for the construction of something... that might be of interest to the Shai-Hulud worms Thanks for a great work.
My mods: Scorched Earth, Will-o-the-wisps
//My nickname is some kind of transliteration from Cyrillic to Latin. Betep3akata stands for WindOfSunset.
//My nickname is some kind of transliteration from Cyrillic to Latin. Betep3akata stands for WindOfSunset.
Re: [0.13][0.14] Building Platform v1.0.4
Nah, no problem I'm not native english either. You have done good by reporting the issue, it's enough for me. I want to make people experience with my mod the less painful possible so bug must be fixed.
Speaking of bugs, some solution to Reactor problem :
1) As the boiler and the interface doesn't need to be edited by my mod to be able to block a reactor outside a platform, I will add the workaround in the next release alongside a config option to block/unblock Reactor's building. So the interface will be visible again.
2) As I mentioned earlier, the problem with block the reactor on concrete is calling my function before his. It's not possible, so in the next release I will add an interface other mod can call to make the check and return a boolean telling if the building is blocked or not. I will send to Reactor's author the necessary information for him to release a compatibility fix (when I'm done writing the interface). So when I release the interface and he release the fix, the reactor should be properly blocked when it must be. And the error because the game make the building disappear should not happen as it will not be placeable in the first place.
Speaking of bugs, some solution to Reactor problem :
1) As the boiler and the interface doesn't need to be edited by my mod to be able to block a reactor outside a platform, I will add the workaround in the next release alongside a config option to block/unblock Reactor's building. So the interface will be visible again.
2) As I mentioned earlier, the problem with block the reactor on concrete is calling my function before his. It's not possible, so in the next release I will add an interface other mod can call to make the check and return a boolean telling if the building is blocked or not. I will send to Reactor's author the necessary information for him to release a compatibility fix (when I'm done writing the interface). So when I release the interface and he release the fix, the reactor should be properly blocked when it must be. And the error because the game make the building disappear should not happen as it will not be placeable in the first place.
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !
Re: [0.14] Building Platform v1.0.5
I waited a bit to get Reactors author's answer, but no sign of life so here is the release 1.0.5
{u (as long as you don't change generation type midgame)} 31-01-2017 - 1.0.5 (for 0.14) :
Lots of new function is this release they should make my mod easily modable for modpack or mod author to add more platform and gameplay possibility. They still are a work in progress and will take any feedback you migth have.
Concerning Reactors, I sent GotLag the three line of code he need to add to make his building properly blocked on concrete, I got a first answer, but the content suggest he haven't even read what I wrote, so I sent another message and I'm waiting for an answer. I will send him another PM this week and maybe post a topic in modding help to find another way to make the fix. Depending on how things works out, I will declare Reactors compatible or not with my mod.
I want to be clear on what to expect in 0.15 with building platform. When 0.15 experimental is accessible for us, players, I intend to first make a compatibility release that will only port the actual mod (building-platform and building-platform-tweak) into 0.15 with no new gameplay or feature. It should be quick and will let people play with my mod in 0.15. Then I will work on a release for the mod that implement the new feature of 0.15 in my mod (like config in game options instead of config.lua), then I will continue working on multiple thing that are waiting for 0.15 as the tile graphics, better generation, ...
As always, report any bug you encounter.
{u (as long as you don't change generation type midgame)} 31-01-2017 - 1.0.5 (for 0.14) :
- Dropped support for factorio 0.13 as 0.14 is stable for long enough.
- Added a new (optional) generation named "Concentric Circle" made by m2cengine. Not activated by default, it can be done by editing the config entry "buildingplatform.config.platformGenerator" to "concentric-circle". This generation use a custom function to spawn two platform. The usual blocking platform in concentric circle shape with a big patch at the spawn. Also a speed platform will spawn (pale yellow concrete). For building placement this speed platform act as a ground, but provide a huge boost to speed if activated in config. The shape/size is not tweakable using new world option. People who used this generation made by m2cengine using the modified building-platform v1.0.4 will need to add the compatibility mod alongside the actual building-platform mod to migrate the speed platform and keep the same world generation. It must be kept as long as your save exist. People that start a new game with this release don't need the compatibility mod.
- Added a config to choose which generation for the platform you want (buildingplatform.config.platformGenerator). Vanilla placement by default.
- Added a config to reduce the overall speed of the player by 35% (buildingplatform.config.speedPenalty). This config, only taken into account if the generation is "concentric circle", is on (true) by default.
- Added a config to boost the speed bonus of all tile that already have a bonus greater than the ground by 45% (buildingplatform.config.tilesSpeedBonus). This config, only taken into account if the generation is "concentric circle", is on (true) by default.
- Added a config to boost the speed bonus of the speed platform by 150% (base speed bonus of this platform is concrete if not edited by other mod) (buildingplatform.config.speedPlatformSpeedBonus). This config, only taken into account if the generation is "concentric circle", is on (true) by default.
- Added a config to disable the creation of my mod's platform (buildingplatform.config.disableOwnPlatform). Not activated (false) by default. Only usefull if you want to create your own platforms set in another mod using my mod's functions.
- Added support for Reactors mod in config 'buildingplatform.config.unrestrictMod'. Reactors's building not blocked by default until the fix to make them blocked in all case is added to Reactor or I found another solution.
- Fixed the bug that made Reactors's reactor controller be drawn under the boiler if either furnaces or generators were configured to be blocked by a platform.
- Added more comment here and there to explain to those reading my mod's code how things work.
- Added a new public function, accessible after my mod data.lua phase to create new platform. This function is callable using the name 'buildingplatform.addPlatform'. Parameters are listed and explained in the addPlatform.lua file and will be added soon to the Function documention section of this thread. With a call to this function you can tell my mod to create the platform tile, tell the game how it should place it if you want to use the game world generation and edit the tile's property. It return an object that can be use to add blocking rules. Unfortunately any mod that want to add a platform with a custom placement function should do the placement itself (you can't give this function the placement function). If your platform need an item/recipe to be placeable, you need to create them yourself too. The actual state of this function might change in futur release as I'm not satisfied with it. But for now it do it's job. Only 5 platforms can be added by this function (included this mod's own platform). Different platforms will not make each other buildings's footprint red but a script will still check if a building is correctly placed. For the moment only building not listed by at least one platform will be placeable on ground, I intend to add more flexibility on platforms rules in the future.
- Added a public function accessible after data.lua phase (buildingplatform.addTileToDefaultInitialization). Take one parameter, the object returned by addPlatform function and return nothing. When called it make the mod adding all default blocking and mod compatibility to the provided platform. Can be called multiple time for multiple platform.
- Added a public function accessible after data.lua phase (buildingplatform.disableDefaultPlatform). Take no parameter and return nothing. When called it make the mod not initializing it's own platforms (they will never be added to the game's data) and deactivate any platform placement function if one was selected in the config. You can still add your own using addPlatform function.
- Edited blockAll blockAllBut and blockOnly functions to take one more parameter than before, a tileObject returned by addPlatform function. It will apply the rule to this specific platform. If not provided, the rule will apply to all platform added to default initialization. It's backward compatible if you used it to add rules to the default platform.
- Moved constants 'buildingplatform.modRoot' and 'buildingplatform.tileName' to respectively 'buildingplatform.constants.modRoot' and 'buildingplatform.constants.tileName'
- Added two new constants : 'buildingplatform.constants.speedTileName' which hold the speed-platform name and 'buildingplatform.constants.dummyPrefix' which hold the prefix for the dummy objects name.
- The mod should now consistently use 'buildingplatform.constants.tileName' constant as the default platform's tile, recipe and item name instead of a string in each file. I recommend other mod to do the same if they use my platform's tile, recipe and item name.
- Removed leftover logs in data-final-fixes.lua.
- Added a 'private' function to handle more easily other mods compatibility and blocking config, but I'm not satisfied with it. This function shouldn't be used by other mods unless they want to edit their mod again in a futur release as I don't intend to make it backward compatible with the actual version.
- Edited control.lua placement checks to add the possibility for other mod to call it through an interface.
Lots of new function is this release they should make my mod easily modable for modpack or mod author to add more platform and gameplay possibility. They still are a work in progress and will take any feedback you migth have.
Concerning Reactors, I sent GotLag the three line of code he need to add to make his building properly blocked on concrete, I got a first answer, but the content suggest he haven't even read what I wrote, so I sent another message and I'm waiting for an answer. I will send him another PM this week and maybe post a topic in modding help to find another way to make the fix. Depending on how things works out, I will declare Reactors compatible or not with my mod.
I want to be clear on what to expect in 0.15 with building platform. When 0.15 experimental is accessible for us, players, I intend to first make a compatibility release that will only port the actual mod (building-platform and building-platform-tweak) into 0.15 with no new gameplay or feature. It should be quick and will let people play with my mod in 0.15. Then I will work on a release for the mod that implement the new feature of 0.15 in my mod (like config in game options instead of config.lua), then I will continue working on multiple thing that are waiting for 0.15 as the tile graphics, better generation, ...
As always, report any bug you encounter.
Want more space restriction ? Or maybe you want to be forced to use train for other thing than ore and oil ? Try Building Platform Mod !