[1.5.2]/[1.6.4] Ancient Warfare [Forge][SMP][WIP][D/L]

  • #1689
    Quote from Shadowmage4513

    Sounds like you are pushing the structure system harder than I had ever imagined :) Good stuff.

    Glad you are getting some good looking results out of it so far...hopefully I can get most of the rest of the minor bugs and validation stuff sorted out during the port/1.7 update, as well as adding the necessary support for random TE and Entities.


    Yes, that would be good. I think I'm at the limits of what I can do with it now though, without the unique problem etc being sorted, that will make a big difference I think. But some of the maps being created now are just - to quote last nights game - "WTF is THAT!" "Ohhhhhh WOW!"

    Spawned the mineshaft that I created towards the end of the game, it connected accidentally to a vanilla mineshaft complex so perfectly it looked deliberate. On the other side it connected to a vast chasm and then a dungeon complex.

    Having turned off all the vanilla villages in BOP and EBXL, I'm spawning hamlets and towns of my own instead and the results are pretty good so far. Though the villagers keep getting massacred because some modder, who shall remain nameless, forgot to include the iron golems. ;) (and chickens)

    Sarthoris, on the Goblins mod, was kind enough to build me a version of Goblins with world gen turned off, so I'm experimenting with a lot of variant Goblin villages, forts and dungeons, spawned through AW, and they are working out really well. (for some reason the scanner recognises his spawners) So now I have Goblins spawning in cave and tunnel complexes, in ruins and in new villages and strongholds, in the biomes I want them to spawn in, and that's helping AW structures to spawn properly too.

    The success of this makes me believe even more that adding spawner recognition and other mod entities etc to AW is definitely the way to go, because this is an incredibly versatile and powerful tool already and there will be no end to the encounter variants you can set up using this if it recognises other mod stuff too. With AW as the core supplying artillery, NPC's and workers, and the whole civics system too, its all getting very close to my ideal MC set up.
    All of the mods I use are described and linked in my Profile page, plus hints and tips on how to use them.
  • #1690
    Quote from MohawkyMagoo

    Yes, that would be good. I think I'm at the limits of what I can do with it now though [...]


    Well, if things go as planned, I should have the updated/rewritten structure stuff available before too long. Taking a much more modular approach this time around...meaning I can work on things more as self-contained parts. There is a bit more overhead in the coding process than directly linking, but it allows for more encapsulation, easier debugging, and a much easier time replacing/rewriting only portions of the code for future updating purposes. It will also allow me to release modules as they are done, instead of waiting for the entire project to be finished. I will even be using plugins between my own modules to support inter-module functionality such as between npcs and vehicles, or npcs and civics.

    Currently I'm planning on releasing 5 modules --
    Core/Framework (network handlers/gui framework/shared code),
    Structures (structure/template/world gen),
    Vehicles (uhh..vehicles!!),
    NPCs (those little guys that swing axes and stuff),
    and Automation (civics, machinery).

    Each module should be loadable separately (aside from core..it is needed by all others)-- so for instance you could load the npc and vehicle modules but leave the automation out....or load JUST the automation module (would need to rely on BC power systems for workers at that point). If you wanted only the creative/survival mode structure stuff, you could load only the structure system.

    So far the plugin system is looking like it will allow me more easily/cleanly develop support for more complex block and entity types -- and most importantly will allow _anyone_ to write a simple(?) plugin to add support for and handle mod added blocks and entities.

    I'm aiming to have 100% vanilla support in the initial release, including all blocks and persistent types of entities. At the current rate, I may well have this available before 1.7/forge is out.

    Unfortunately, the template format will be changing a bit. I'm already in the processes of writing a format converter though, so you should be able to migrate any existing templates without loss.


    While I'm at a the fresh design-stage, now is the point I should inquire about wanted/needed/often used features.

    I currently have about a million features in the block rules and validation -- (probably only about half of which are properly implemented and working). What of these features are the most used / want to be kept around? Which ones would not not mind seeing disappear?

    (most of these are features that have to be manually edited into the template to take effect)

    1). Preserve plants/lava/water/blocks -- anyone using this feature, is it needed in the future? I've never seen it used, nor used it myself, nor can I even come up with a good use case that couldn't be done better with block-randomization.

    2.) Per-biome block swapping -- initially seemed like a good idea. Now I've found that there are some Forge events to handle dynamic block swapping of standard (cobble/etc) blocks for structure generation. I will likely be moving to this system to handle world-generation (with the option to disable if desired). I may allow structure-plugins to hook into the event handler to add more block swap types/etc.

    3.) Ruins templates format spawner and chest handling -- You will probably only see these lines/features in your template if you converted an old Ruins template that had spawners/chests in it. The code was a hold-out from trying to maintain clean Ruins compatibility, and had to be manually edited in. In the future vanilla mob-spawners will be handled by the plugin/rule system. Chests as well will be handled by the plugin system.

    4) Validation settings -- I will be completely redoing world-generation validation settings...as the current settings are *hard* to get an understanding of. Most of the current code was a fairly terrible re-implementation of the original Ruins code, and I will be going with a more clean setup in general. Considering enabling 'validation plugins' so that others could write plugins to change validation/selection/placement stuff. (see below for a preview of the validation settings as I currently have them envisioned)

    5.) Not directly a feature, but I'm curious -- I'm trying to decide the best method to organize templates and world-generation settings. I currently have the following options:
    • Store validation settings in the template -- pretty much the same as it is currently. Would again require a separate link/config file to know what to load for world generation.
    • Sore validation settings in a separate file per-structure. Each structure would then have a template and a world-gen/validation file. World-generation would load and generate for all validation files found at load-time.

    I'm kind of leaning towards the split in two files per template -- the template itself is a complete package which merely denotes what blocks go where. The validation settings are only used for world-generation and have no relation to the block-data/etc contained in the template. They really have no co-dependence, and do not need to be in the same file -- except for reasons of organization. I like the idea of separation, but I'm not sure if I want to keep track of two files per structure. The current system works fine, but the new per-structure entries would likely be much larger with the new validation settings. I'm also aiming to only store these validation settings in a single place (whereas before they were defined in the template but could be overridden in the world-gen config file...no clue why I did that...).

    I guess the real question is -- is the current method for denoting world-generation structures sufficient (e.g. a single world-gen config file)? Any other suggestions on changes? Should the validation stuff be kept in the template, in the world-gen file, in a separate template, or some combination?



    On the subject of structure validation, I will be changing the setup quite a bit to use the following:
    (copied directly out of source...so bear with me :) )

    /**
    * given an area with a source point, how far above the source-point is the highest acceptable block located?
    * e.g. a 'normal' setting would be the same height as the structures above-ground height which would allow
    * generation of a structure with no blocks left 'hanging' above it, and minimal cut-in into a cliffside/etc
    * e.g. a 'perfect' setting would be 0, meaning the ground must be flat and level prior to generation
    *
    * negative values imply to skip leveling checking
    */
    int maxLeveling;

    /**
    * if true, will clear blocks in leveling bounds PRIOR to template construction. Set to false if you wish to
    * preserve any existing blocks within the structure bounds.
    */
    boolean doLeveling;

    /**
    * given an area with a source point, how far below the source point may 'holes' extend into the ground along the
    * edges of the structure.
    * e.g. a 'normal' setting would be 1-2 blocks, which would ensure that the chosen site was flat enough that it would
    * generate with minimal under-fill.
    * e.g. an 'extreme' setting to force-placement might be 4-8 blocks or more. Placement would often be ugly with only
    * part of the structure resting on the original ground.
    *
    * negative values imply to skip edge-depth checking
    */
    int maxMissingEdgeDepth;

    /**
    * if true, will fill _directly_ below the structure down to the specified number of blocks from maxMissingEdgeDepth
    * filling will occur PRIOR to template construction.
    */
    boolean doFillBelow;

    /**
    * the size of the border around the base structure BB to check for additional functions
    * 0 or negative values denote no border.
    */
    int borderSize;

    /**
    * same as with structure-leveling -- how much irregularity can there be above the chose ground level
    * negative values imply to skip border leveling tests
    */
    int borderMaxLeveling;
    boolean doBorderLeveling;

    /**
    * how irregular can the border surrounding the structure be in the -Y direction?
    * negative values imply to skip border depth tests
    */
    int borderMissingEdgeDepth;

    boolean biomeWhiteList;//should treat biome list as white or blacklist?
    String[] biomeList;//list of biomes for white/black list. treated as white/black list from whitelist toggle

    boolean dimensionWhiteList;//should treat dimension list as white or blacklist?
    int[] acceptedDimensions;//list of accepted dimensions treated as white/black list from whitelist toggle

    Block[] acceptedTargetBlocks;//list of accepted blocks which the structure may be built upon -- 100% of blocks directly below the structure must meet this list

    Block[] acceptedClearBlocks;//list of blocks which may be cleared/removed during leveling and buffer operations. 100% of blocks to be removed must meet this list (this will ensure no-cut into other structures if they contain non-accepted blocks)

    boolean isUnique;//should this structure generate only once?

    /**
    * world generation selection and clustering settings
    */
    int selectionWeight;//the selection weight of the structure
    int clusterValue;//the value placed into chunk-map for clustering purposes
    int minDuplicateDistance;//minimum distance between to instances of this structure being generated



    Ehh..thats probably a big enough wall-of-text for now...I'll get back to making code :)
  • #1691
    1). Preserve plants/lava/water/blocks

    Yes. Don't get rid please. Along with "preserve blocks" Its used to sink structures into the landscape so that you get a natural look, without having to define a level. Its especially useful for things like ruins that you want to spawn in forests (I'm just completing a ruins pack now) and say, huts on stilts or piers that are set into the sea. (unless you have a better method that is?)

    2.) Per-biome block swapping
    Nope, haven't used this

    3.) Ruins templates format spawner and chest handling
    Have used the Ruins converter, but not the export to Ruins function. Chest handling I'd prefer to be handled within the AW mod in some way. Its great being able to scan specific contents, but there needs to be some randomisation option too, that draws items from other mods too if possible. MCDungeons has a good configurable chest item spawning system.

    4) Validation settings
    Entirely agree. Nothing about RUINS worked as it should. Replacing with your own code should give much better results - your validation on the old catapult mod was outstanding. It would be good to return to that, but its difficult with user generated structures.

    5.) Best method to organize templates
    The two - template and separate validation file - method is fine, and isn't really the main problem for me personally. But I would agree having settings twice with one over riding the other is not needed and can be confusing.
    The structure template needs to list ALL possible options, even if they are all set to 0 or false. (Its nice to be reminded of what options exist)

    The main problems I've been hitting are:

    How to keep track of what's spawning in which biomes when using three+ biomes adding mods which give around 200 biomes =

    Vanilla 1 - 30
    EXBL 32 - 59
    M&M 60 - 61
    HIGHLANDS 64 - 107
    TWF 108 - 125
    LOTR 126 - 139
    W&M 144
    Mo Creatures 145
    BOP 151 – 254

    The text lines for BiomesNotIN or BiomesOnlyIn in AW world gen config get very long and its almost impossible to get a clear and simple overview of what you've set to spawn where.

    Once you get over a hundred structures in your list, (and looking at my planning and present stock list its probably going to hit 400) then the AW file list gets huge and cumbersome, and the possibility for replicated entries and mistakes becomes much bigger.

    At a hundred structures, and 200+ biomes, frankly, I'm struggling to keep track, 400 is going to be a nightmare. Though, I'm not sure what the best solution is to this, but there really needs to be one, as the key, I think to successful world gen for AW is going to be a huge variety of possible spawns around a core group of regular spawns such as the AW castles etc.
    Mods that try to control mob and creature spawns have been hitting this very same problem for a while now, and have tried various solutions - Grouping biomes into "like" groups - such as all forest, all mountain, all swamp etc and dealing with the group, rather than individual biomes. But that has flaws too. Is Highlands_wooded hills - a mountain biome or a forest biome? for example.

    Perhaps the structures themselves could be categorised?

    At the moment mine fall into these:

    Major Civilised - Large towns and castles with out-buildings etc, populated.
    Minor Civilised - Hamlets, isolated outposts, civilians structures (lumberjacks in forests for example)
    Wonders - Exotic structures that may or may not hold enemies, loot and surprises.
    Major mob encounters - large structures - surface and underground, tribal villages, old haunted ruins etc - such as Goblin villages, bandit castles etc.
    Minor mob encounters - smaller structures - surface and underground - such as a spider spawner cave etc.
    Scenics - structures that have no purpose, but look good.

    (A lot of these are waiting on spawners or some method of mob population to finish, but other than that they are spawning fine through AW)

    On the spoiler validation - like it - that looks great, especially min distance between instances of structure.
    Last edited by MohawkyMagoo: 12/18/2013 1:00:04 AM
    All of the mods I use are described and linked in my Profile page, plus hints and tips on how to use them.
  • #1692
    One big problem with the scanner is water, or rather trying to scan anything that's set in water like a ship or an island structure. At the moment the only solution I have is to cut the thing in MCEdit, use the RUINS converter to make the MCEdit file into a .tml, and then convert using the AWS converter into AWS format, and then try and rejig it so it spawns properly. A bit convoluted to say the least :unsure:
    All of the mods I use are described and linked in my Profile page, plus hints and tips on how to use them.
  • #1693
    I like the idea of a directory structure. Clever use of Find and replace in files in an editor like Notepad++ can allow a developer to mass modify structures in specific structures. Would you consider an option to give a weight modifier for the structure spawn based on the spawn points distance from the world spawn? That way AW can categorize the difficulty of structured spawns. The closer to the world spawn the more likely you are to encounter white flag npcs or another neutral team, for instance, but bandit camps or other unique spawns (dungeons with mob spawners with bonus damage/health attributes) are further away.

    Implementing a distance factor like this could have interesting effects:

    Imagine you have an adventure map:

    You set a world border to be a perfect square and place the world spawn in one corner of that map. If you had unique structure spawns keyed to distance, you could make a rogue-like adventure map with special towns that are guaranteed to spawn at some distance from the world spawn.

    The end-game would always spawn at the distance that occupied the opposite corner as the world spawn, since we can know for certain the only distance that this structure could spawn at. If you could somehow make Noppes NPCs to spawn with quest data intact that would be phenomenal. Imagine guaranteed structures based on distance from spawn that have quests linked to each other, a randomly placed desert themed catacomb, a lush jungle temple, a sunken ship, all holding items that are needed at the next neutral zone to access the next quest. Shops and neutral zones with invulnerable or respawnable npcs and customizable npc factions and guards.
  • #1694
    The feature creep is getting very strong, even though the features are outstanding...

    I am beginning to think you should indeed separate it into 2 different mods
  • #1695
    Excuse me, can somebody tell me what the "actiontime" is in the config? Is that how fast an NPC works, or how long before they need to eat? Also, how do I alter the NPCs eating? Also, using the MCA (Minecraft comes alive) mod, the villagers are altered. Will this affect this mod due to the villagers no longer knowing how to farm?
    Last edited by Magician_DC: 12/18/2013 12:12:02 PM
  • #1696
    Quote from MohawkyMagoo


    [....]

    The main problems I've been hitting are:

    How to keep track of what's spawning in which biomes when using three+ biomes adding mods which give around 200 biomes =

    Vanilla 1 - 30
    EXBL 32 - 59
    M&M 60 - 61
    HIGHLANDS 64 - 107
    TWF 108 - 125
    LOTR 126 - 139
    W&M 144
    Mo Creatures 145
    BOP 151 – 254

    The text lines for BiomesNotIN or BiomesOnlyIn in AW world gen config get very long and its almost impossible to get a clear and simple overview of what you've set to spawn where.

    Once you get over a hundred structures in your list, (and looking at my planning and present stock list its probably going to hit 400) then the AW file list gets huge and cumbersome, and the possibility for replicated entries and mistakes becomes much bigger.

    At a hundred structures, and 200+ biomes, frankly, I'm struggling to keep track, 400 is going to be a nightmare. Though, I'm not sure what the best solution is to this, but there really needs to be one, as the key, I think to successful world gen for AW is going to be a huge variety of possible spawns around a core group of regular spawns such as the AW castles etc.
    Mods that try to control mob and creature spawns have been hitting this very same problem for a while now, and have tried various solutions - Grouping biomes into "like" groups - such as all forest, all mountain, all swamp etc and dealing with the group, rather than individual biomes. But that has flaws too. Is Highlands_wooded hills - a mountain biome or a forest biome? for example.

    Perhaps the structures themselves could be categorised?

    At the moment mine fall into these:

    Major Civilised - Large towns and castles with out-buildings etc, populated.
    Minor Civilised - Hamlets, isolated outposts, civilians structures (lumberjacks in forests for example)
    Wonders - Exotic structures that may or may not hold enemies, loot and surprises.
    Major mob encounters - large structures - surface and underground, tribal villages, old haunted ruins etc - such as Goblin villages, bandit castles etc.
    Minor mob encounters - smaller structures - surface and underground - such as a spider spawner cave etc.
    Scenics - structures that have no purpose, but look good.

    (A lot of these are waiting on spawners or some method of mob population to finish, but other than that they are spawning fine through AW)

    On the spoiler validation - like it - that looks great, especially min distance between instances of structure.


    Thanks for the feedback.

    Going to focus on one point in this post: biome selection.

    Its a tricky problem to solve in an acceptable manner. The problem is mostly one of scale, and a little bit of layout/organization.

    Current proposed options/ideas:
    • A.) Continue with the biome white/black list on a per-structure biome. each structure (or validation file/entry in world generation) tracks what biomes it may/may not spawn in. This easily approaches the level of cumbersome merely with the vanilla biomes, and probably more-so with 1.7 and its vastly increased biome count.
    • B.) Reverse the trend, and track structures per biome. World Generation file would have one entry per biome, listing the structures that can spawn in that biome. Would require you to manually add every structure to its spawnable biomes. I can see this becoming a chore quite quickly as well.
    • C.) Modified version of A), but allow the user to define biome 'groups'. E.g defined in the world-gen file such as 'groupA=plains, forest, meadow, swamp', 'groupB=forest, extreme_hills, taiga', 'groupC=plains, desert, forest' etc.... Using this method, you could specify any biome group with a single keyword (while still allowing finer control with individual biomes). The user could group biomes however they like (e.g. groupC would be the 'flat'/village canditate group). The structure could then be added to any selection of groups and/or individual biomes. Because the groups would be user-defined, ALL of this data would have to reside outside of the normal template...such as in an external world-gen config file.
    • D.) Modified version of B, but with biome-grouping. Would be tricky to setup and organize I think.
    • E.) Modified version of B, but with structure-grouping. Structures would be groupable much as biomes for C/D. User would define a name e.g. "group_ruins", would define what structures are in that group, and then could add that group to any/all applicable biomes.
    • F.) Combination of D & E. The downside I see to this one is the complexity of maintaining and tracking that much inter-linking information. Would be like tracking a many-to-many database in your head.
    • G.) Combination of C with structure grouping as well. Could cut down on the 'wordiness' of the config file, at the cost of logical complexity.
    • H.) Folders. Lots and lots of folders. One folder per-biome. Either duplicate structures, or their validation files. I really don't like this one (its ugly, and unnecessary data-duplication is...bad...)...but it is _an_ option.
    • ??? hopefully I've missed something obvious, as none of the options I'm listing really solve the problem.

    I'm thinking that C sounds like the most viable solution, or possibly G. C is pretty much the current layout, but with the addition for users to define biome groups. G merely adds the user-defined structure-groups. This should make it much easier to add structures when you normally add them to many biomes at the same time -- merely define a biome group, and add that one biome group to the structures accepted biomes list. However, as more and more structures are added, the world-gen config file would still fill-up fairly fast and become difficult to manage -- especially so if the entire validation settings for each structure were located there. (Honestly though...I don't think it matters what format...with 100's of structures..the world gen config file will be huge no matter the format/method I save the information in...).


    Any other thoughts/ideas on how to organize the biome selection stuff?
    Quote from Brigadon

    The feature creep is getting very strong, even though the features are outstanding...

    I am beginning to think you should indeed separate it into 2 different mods


    Yep. To both statements :)

    If only I could finalize a set of features to implement, it would make things easier....but evolution is cool as well.

    Anyhow..yea, the mod is being split into multiple modules that you can load individually. Will help with both the coding side, and allow people to install only the features that they want.
  • #1697
    Quote from Magician_DC

    Excuse me, can somebody tell me what the "actiontime" is in the config? Is that how fast an NPC works, or how long before they need to eat? Also, how do I alter the NPCs eating? Also, using the MCA (Minecraft comes alive) mod, the villagers are altered. Will this affect this mod due to the villagers no longer knowing how to farm?


    actiontime = number of ticks it takes for an NPC to complete one 'work' cycle -- harvest a single block, plant a single block, clear a single block, move a stack of items (couriers), heal for their specified healing amount (medics and engineers), or time inbetween attacks (combat units).

    Eating habits are apparently not currently configurable. I had thought that I had already opened up those config options, but I'm not seeing them in the config file currently. I might add this in for one of the next updates, but no guarantees. (I'm planning on reworking the NPCs to load from external definition files...so that any/all stats should be editable from those files in the future).

    MCA should have no effect on the Ancient Warfare NPCs, as they are not villagers. They do not share any AI or nbt data structure, and are on completely different class-branches.
  • #1698
    Quote from Hague

    I like the idea of a directory structure. Clever use of Find and replace in files in an editor like Notepad++ can allow a developer to mass modify structures in specific structures. Would you consider an option to give a weight modifier for the structure spawn based on the spawn points distance from the world spawn? That way AW can categorize the difficulty of structured spawns. The closer to the world spawn the more likely you are to encounter white flag npcs or another neutral team, for instance, but bandit camps or other unique spawns (dungeons with mob spawners with bonus damage/health attributes) are further away.

    Implementing a distance factor like this could have interesting effects:

    Imagine you have an adventure map:

    You set a world border to be a perfect square and place the world spawn in one corner of that map. If you had unique structure spawns keyed to distance, you could make a rogue-like adventure map with special towns that are guaranteed to spawn at some distance from the world spawn.

    The end-game would always spawn at the distance that occupied the opposite corner as the world spawn, since we can know for certain the only distance that this structure could spawn at. If you could somehow make Noppes NPCs to spawn with quest data intact that would be phenomenal. Imagine guaranteed structures based on distance from spawn that have quests linked to each other, a randomly placed desert themed catacomb, a lush jungle temple, a sunken ship, all holding items that are needed at the next neutral zone to access the next quest. Shops and neutral zones with invulnerable or respawnable npcs and customizable npc factions and guards.



    I've been trying to figure out a method to allow for and implement a difficulty scale into structures since the last rewrite....and using a distance from-spawn based algorithm was about as far as I got as well.... The only problem is, how do you scale it smoothly so that you aren't forced to go out to 25million x/z in order to find the hardest structures? I'm thinking a game-age based system might work...or some combination of the two probably.

    This is ignoring the problem of how to actually scale the difficulty of the structures...you need either different structures for different difficulty levels, or a ton of special code/script to handle scaling up the difficulty on any scalable things (npcs/etc). You would also need some way to designate that the structure is scalable, and what elements in it scale...how fast they scale, what they scale to, etc.

    I like the idea, but there are quite a few problems to figure out before I could think about implementing it. The easiest solution I can think of now would be have a 'difficulty' requirement that must be met before the structure can spawn, with unique non-scaling/static structures, with the difficulty calculated by a combination of distance from spawn and game-time passed. Still...lots more thought required on the idea.
    Quote from MohawkyMagoo

    One big problem with the scanner is water, or rather trying to scan anything that's set in water like a ship or an island structure. At the moment the only solution I have is to cut the thing in MCEdit, use the RUINS converter to make the MCEdit file into a .tml, and then convert using the AWS converter into AWS format, and then try and rejig it so it spawns properly. A bit convoluted to say the least :unsure:


    I'm not sure of the problem here -- is it that you can't click on water to target it with the scanner?

    I know that it picks up water just fine, you just need solid blocks bounding the water to initiate the scan. If this is the problem, I could probably configure it to accept clicks on water easily enough (not sure if it would be full-time or only with a modifier key...I'll have to see how it feels once I begin working on it).
  • #1699
    Quote from MohawkyMagoo

    1). Preserve plants/lava/water/blocks

    Yes. Don't get rid please. Along with "preserve blocks" Its used to sink structures into the landscape so that you get a natural look, without having to define a level. Its especially useful for things like ruins that you want to spawn in forests (I'm just completing a ruins pack now) and say, huts on stilts or piers that are set into the sea. (unless you have a better method that is?)

    2.) Per-biome block swapping
    Nope, haven't used this

    3.) Ruins templates format spawner and chest handling
    Have used the Ruins converter, but not the export to Ruins function. Chest handling I'd prefer to be handled within the AW mod in some way. Its great being able to scan specific contents, but there needs to be some randomisation option too, that draws items from other mods too if possible. MCDungeons has a good configurable chest item spawning system.

    4) Validation settings
    Entirely agree. Nothing about RUINS worked as it should. Replacing with your own code should give much better results - your validation on the old catapult mod was outstanding. It would be good to return to that, but its difficult with user generated structures.

    [...]


    Good to know about the preserve-blocks. I'm supposing that you are using the per-template settings rather than the per-block-rule settings? Per-template is easy enough to support, and already mostly in-place in the new validation setting (you would merely turn off the leveling clear option, but could leave level-testing enabled)(could still enable specific preserve-options for more granular control over what types). The per-block is more difficult to support, but could be included if needed.

    Per-biome block swapping -- yah, I didn't figure too many people used this. In the future I will have a simple 'enableblockswap=true/false' in the validation settings, and will use the vanilla block-swap methods if it is enabled (the ones used to swap blocks for vanilla villages).

    Spawners -- the new system is already scanning and duplicating spawners...should have full support for vanilla spawners in the future (keep in mind that vanilla spawners can register/use non-vanilla mobs too!). And I see what you mean by adding AW-accessible blocks to the creative menu to get at the spawners -- I had to use chat commands to give myself spawners just to test the stuff in the first place...because for some silly reason there are no spawner blocks in creative mode (unless you have NEI installed on both client+server).

    Chests -- the new system will include both duplication and randomization abilities -- hopefully without having to edit the template. My current thoughts are this: when scanning a chest, peek at the inventory. If the first (and ONLY) item in the inventory is a gold ingot, diamond, or emerald, enable randomization for that chest with loot quality based on the item (gold=low, dia=mid, em=high). If the chest has more than one item in it (or the single item is not one of the triggers), the chest will be flagged as static loot target -- the items it contains will be scanned/exported as-is and duplicated when the template is built.

    Validation settings -- I wish I could do the original catapult-mod style validation for structures as well. I hand-crafted that validation per-structure though, to fit..._perfectly_ (or as close to it as I could get :) ). Down to the point where I would check specific blocks for intersection or missing, rather than just all blocks in an area. I would even consider doing something similar, but it would require supporting an external scripting language so users could script their own validation....however I'm pretty sure that requiring users to learn a scripting language just to add a structure is not the best way to go.

    Hopefully though, the new validation stuff will be much easier to understand and manipulate. The current stuff...while all of the settings -do- _something_...I could barely tell you what they do and how they all interact without tracing through the source--and would probably still give incorrect answers most of the time. Spaghetti code at its finest -- Best to do away with that stuff :)
  • #1700
    I'm not sure what's going on. I recently updated Ancient Warfare but on this latest version it seems none of the structures are spawning at all on a new map generation. I didn't notice it until now as I've been working on a pre-generated map. Is anyone else experiencing anything like this? I'm using BetterDungeons, but after disabling it, I still cannot find any structures. Did the format on the files change that I should delete them or something?

    EDIT: Moved back to .36 and generation works again. Odd.

    EDIT: EDIT: Okay. I'm dumb. I realized I commented out some important stuff when I was experimenting. Sorry for the false report.
    Last edited by Hague: 12/18/2013 9:15:31 PM
  • #1701
    Looks awesome!
  • #1702
    Just a little teaser:





    (that second Do Border Fill is actually for Preserve Blocks, but I forgot to change the text label :) )


    -- I could very easily add a section below with check-boxes for biomes....so you can do biome selection right from the export gui (or the initial selection at least).

    Not quite sure how to handle the initial data for target blocks...but I've got one idea to look into...could be cool if it will work.
  • #1703
    Quote from Shadowmage4513

    Just a little teaser:

    -- I could very easily add a section below with check-boxes for biomes....so you can do biome selection right from the export gui (or the initial selection at least).



    That's an excellent tease. You could have a great career lined up as a stripper.

    Biome selection at the GUI stage? That would be great! Maybe tied to some grouping mechanism of the "deserts" "mountains" "swamps" sort of thing?

    Spawners - sounds cool - I haven't been able to get the AW scanner to scan NEI spawners either, hence the AW block suggestion. Mojang took a decision some time back not to have the spawners included, which is just dumb.

    Love the chest contents idea, nice and simple and achievable in creative.

    Thinking on age related structure spawning - what about chain-spawning? Which would be great for quests such as Hauge is talking about. For example. Spawn structure A1 in any land biome on newly generated chunks on Day 5 of the game. Spawn structure A2 on any land biome on newly generated chunks 4 chunks away - perhaps when a trigger mechanism in structure A1 is operated - say opening a special quest door. (which would look the same as an AW gate maybe?)

    The problem with the scanner is indeed not being able to click on water.

    On how to solve the biome and structure organisation, reading it now.................................
    Last edited by MohawkyMagoo: 12/19/2013 11:17:21 AM
    All of the mods I use are described and linked in my Profile page, plus hints and tips on how to use them.
  • #1704
    Quote from MohawkyMagoo

    That's an excellent tease. You could have a great career lined up as a stripper.

    Biome selection at the GUI stage? That would be great! Maybe tied to some grouping mechanism of the "deserts" "mountains" "swamps" sort of thing?

    Spawners - sounds cool - I haven't been able to get the AW scanner to scan NEI spawners either, hence the AW block suggestion. Mojang took a decision some time back not to have the spawners included, which is just dumb.


    I'm thinking I will be going with option C from my earlier post on how to handle biome selection. Fairly similar to the current system, but allow the user to define biome group keywords in their world-gen config file. These keywords would show up in the export-gui as selectable biomes just like any other..but if selected would cover a range of biomes (the range being whatever the user set it to).

    So far it is looking like there will still be a world-gen config file, but it will be for global settings. It will be used to define random chance values, max cluster values and range, and most importantly it will be where biome groups will be defined.

    I'm not sure if I'll store biome-group names in the templates yet, or convert to individual biome names prior to export...both ways have pros and cons. Storing the groups allows for easier manual editing and fewer lines in the templates, but is an extra dependency step for sharing the template (they would need your world-gen config file with its biome-group definitions for the template to work). Not storing the groups in the templates would mean a bit of work converting to single names during export, and could also make the templates easier to read individually (you wouldn't need to refer to the world-gen file to find out what a biome group represented).

    One of the largest deciding factors would probably be: how often would you manually edit biomes in the templates if the biome selection was available from the export gui?


    But anyhow...yah...making good progress. If things keep going well, I might have the re-worked structure module available before too long. I've really only got a few template rules left to write (for entities mostly, and inventory handling), world-generation validation and placement, lots of testing, and then documentation. I'll probably have the entity-rules knocked out fairly quickly...world gen will probably take a week or so...and then just a lot of testing and writing tutorials and explanations.
  • #1705
    forge also has a biomedictionary that may be of value.
  • #1706
    Hey Mohawky, have you ever tested exporting Aura nodes from Thaumcraft? I'm toying with the idea of making "temples" that spawn around the map with powerful biased aura nodes. Essentially great places of power and the like, unique landmarks, things like that.
  • #1707
    Quote from Hague

    Hey Mohawky, have you ever tested exporting Aura nodes from Thaumcraft? I'm toying with the idea of making "temples" that spawn around the map with powerful biased aura nodes. Essentially great places of power and the like, unique landmarks, things like that.


    Not really had any experience of Thaumcraft - tried it once, loved the trees and stuff it generated, but it knocked our fps down from 60+ to under 20 and pretty much killed our LAN games, so it had to go. I remember the Aura Nodes, sounds like a great idea. I might look over Thaumcraft again when 1.7 is getting built. Will be interesting to see what mods actually make it to 1.7
    All of the mods I use are described and linked in my Profile page, plus hints and tips on how to use them.
  • #1708
    Was that in 1.6.4? Seems like the latest one is designed to be more CPU-friendly. The nodes aren't networked any more and act as wells for different power types. What I'm considering is basically areas that act as large fountains for primal vis. Say a volcano with an obsidian altar on top with a high powered Fire node in it. A sacrificial pit or trapped room with a hungry node (eats blocks and sucks up/kills players) and has lots of entropy and death essence. A complicated fractal ice pattern loaded with order and water vis.

    The coolest part is that if a node is powerful enough, you can spot it from REALLY far away when you wear the glasses. If you use NBTedit to crank the node's energy really high, it will blind your screen with its brilliance. It's really neat, actually :D
  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes