That won't work. Villages generate procedurally, which is a different process entirely from the way Ruins works.
Rather than detecting when a village spawns and then spawning a ruin near it, I think he meant something more like; expand the mod so that it can inject custom schematics into the village generator.
The village generator has a list of schematics available to it. I doubt that it is difficult to register new schematics to this list, causing them to spawn in villages, just like farms and blacksmiths and churches etc. To be honest, this might be better as an entirely new mod, but it does fit into the theme of Ruins quite well, (Ruins is after all; "The" structure mod).
Anyway, such a system would probably be quite simple. User puts appropriately formatted schematic files into the "village" folder and the mod registers them with the village generator. I assume that there is a weight for the schematics, but depending on the format of the file, you may be best to just put this in the filename ["NAME.rarity.tml"].
Though it is starting to get way outside of the scope of Ruins, you could even add villagers and trades, using JSON or XML to hold the settings;
Are there any online repositories / sites that have additional ruins to download.
What with all the ruins that have been moved to obsolete - many deservedly so - the remaining ruin set seems rather small.
--
Also - can an update to Ruins please see it reading its config from ./config? This is the only mod out of 50 in my server that has the config in the ./mods folder.
--
When generating ruins via /testruin, the ruins always spawn *around* my character casing me to have to destroy part of it to escape. Can it not be made such that, if executed in creative mode flight, the ruin is generated using the ground block below the creative player (i.e. using the normal spawn-on-the-ground logic).
--
As a server admin, ruins seems to generate a lot of log spam. That could be removed, but a simple "generated XXX.tml at x,y,z" would be nice to see in the console.
Since Ruins needs a folder there anyway and the templates are part of the configuration, i think it is fine as it is
Would prevent midair test spawning - i will add a XYZ option maybe
It should not be too much spam if you have logspam disabled
EDIT:
I've put in these changes without making a new Ruins version out of it
+ added sanity checking to height values. Ruins bounds can now only be set starting height 8 and fitting below max world height
+ added optional coordinates to testruin command, can be called from server console with coordinates
That is a pity. There are a number of ruin packs linked on pages on this thread. With 90+ pages to browse, it would be nice if they got listed in the OP?
So make more
I see what you did there. But. If youve seen my builds you'll appreciate more why I need a mod like ruins to help populate my world with style. My builds are rubbish.
Since Ruins needs a folder there anyway and the templates are part of the configuration, i think it is fine as it is
The difference is the config data is dynamic. When I am updating my modpack I (usually) just delete the mods folder wholesale, and copy the new mods in. The config folder I use diff tools to compare the config files and ensure my customizations are in place. I think many modpack / server maintainers have a similar process and (speaking on their behalf) we would all appreciate the config going in one place where its easier to manage.
(I am also not convinced the template files themselves don't belong in ./config as they are more likely to be tweaked / modified.)
Would prevent midair test spawning - i will add a XYZ option maybe
What is the normal way to spawn a test ruin and not be suffocated by it? I have, myself, been spawning ruins in the air to get an idea for them, but I would also like to "test" ruins, by spawning them at my current location, in the same way the auto generation would. Especially if I manage to make my own. Otherwise I can't be sure the edges are going to line up with the terrain nicely.
hmmm. when using /testruin, does the vertical center of the ruin, or the logical "ground level" center on the player? I am hoping for ground level as I want to use /testruin to populate a pregenerated world with specific ruins at specific locations.
It should not be too much spam if you have logspam disabled
Ah. Is that on by default? Does turning that off disable the stick debug info?
EDIT:
I've put in these changes without making a new Ruins version out of it
+ added sanity checking to height values. Ruins bounds can now only be set starting height 8 and fitting below max world height
+ added optional coordinates to testruin command, can be called from server console with coordinates
That's awesome. "without making a new Ruins version out of it" means these changes will be in the next release?
PS. I don't think this gets said enough so: Thanks for stepping up and maintaining all those mods. Many would be a loss to minecraft if lost.
Do ruins, in ocean biomes, spawn relative to the ocean surface, or the ground below?
I am trying to export the "welcome" statue from Nyvarld - that stands in the water and I, at this time, have no idea how to set it up to it spawns correctly from the water.
I am hoping it spawns relative to the water surface, but then there is the risk that ruins spawns it over a deep trench and it ends up "floating".
Relative to the water surface. Hmmm i should probably write a secondary spawning algorithm for ocean floor structures.
No need for a second algorithm... you could just add a condition like; spawn_ignores_water/fluids.
If the value is set to true and the target block is water, it moves down one block and tries again (loop until y < = some_constant || targetBlock is an acceptable spawning block). If not set, or set to false, it doesn't change.
Rollback Post to RevisionRollBack
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
I feel like im being a pest, but the new co-ordinate parameters to /testruin - do we need to supply 'y' or, if spawned this way, will Ruins 'infer' the correct surface (y) co-ordinate to use so that the structure is appropriately embedded in the terrain?
@4Head
That won't do. If you are "inside" template logic, the spawn site was already selected. I need a mechanism that selects both ocean floor and surface as possible spawn sites.
@Farproc
You need to supply it. Example with coordinates being x,y,z = 28, 75, -34. 1 is the template rotation.
/testruin tester 1 28 75 -34
EDIT
I have written something that will add a folder "ocean_floor" which works exactly as one would expect.
@4Head
That won't do. If you are "inside" template logic, the spawn site was already selected. I need a mechanism that selects both ocean floor and surface as possible spawn sites.
EDIT
I have written something that will add a folder "ocean_floor" which works exactly as one would expect.
The spawn site can be changed at any point before the first block is added... you might just need to declare some variables differently to make them accessible from the template logic stuff.
But w/e, the way you've done it is way cooler and more intuitive for the user
Rollback Post to RevisionRollBack
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
Umm, I'm trying to download the 1.6.4 version and Google Chrome is blocking it as "Malicious File".
I can still manually get it, just giving you a head's up about this...
The /testruin command has grown out of a need to test ruin templates before adding them to random world gen:
However: Assume for a moment I want to use ruins, not to auto generate a world as explored, but to, in creative mode, populate it with templates at specific points.
If I import a template using /testruin, and I get the position or rotation wrong, there doesn't seem to be a way to fix the destruction easily.
To keep things simple: could /testruin save a copy of the blocks it is replacing, so that a /ruinundo command could restore the world? Or - perhaps even of greater utility - a command that, given a radius - would reset and regenerate the chunks around the player, back to their initial state.
I am gettting a strange crash report when I try to create a superflat world in 1.7.2.
Mods installed:
Forge v10.12.1.1110
Ruins 1.7.2
Crash Log:
---- Minecraft Crash Report ----
// Quite honestly, I wouldn't worry myself about that.
Time: 6/5/14 8:11 PM
Description: Exception getting block type in world
java.lang.NullPointerException: Exception getting block type in world
at net.minecraft.world.WorldServer.func_147452_c(WorldServer.java:924)
at net.minecraft.block.BlockPistonBase.func_150078_e(BlockPistonBase.java:139)
at net.minecraft.block.BlockPistonBase.func_149726_b(BlockPistonBase.java:116)
at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:647)
at net.minecraft.world.World.func_147465_d(World.java:442)
at atomicstryker.ruins.common.RuinTemplateRule.placeBlock(RuinTemplateRule.java:306)
at atomicstryker.ruins.common.RuinTemplateRule.handleBlockSpawning(RuinTemplateRule.java:295)
at atomicstryker.ruins.common.RuinTemplateRule.doNormalBlock(RuinTemplateRule.java:245)
at atomicstryker.ruins.common.RuinTemplateRule.doBlock(RuinTemplateRule.java:199)
at atomicstryker.ruins.common.RuinTemplate.doBuild(RuinTemplate.java:418)
at atomicstryker.ruins.common.RuinGenerator.createBuilding(RuinGenerator.java:298)
at atomicstryker.ruins.common.RuinGenerator.generateNormal(RuinGenerator.java:184)
at atomicstryker.ruins.common.RuinsMod.generateSurface(RuinsMod.java:168)
at atomicstryker.ruins.common.RuinsMod.access$300(RuinsMod.java:42)
at atomicstryker.ruins.common.RuinsMod$RuinsWorldGenerator.generate(RuinsMod.java:140)
at cpw.mods.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:106)
at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:220)
at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1042)
at net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:130)
at net.minecraft.world.gen.ChunkProviderServer.func_73154_d(ChunkProviderServer.java:139)
at net.minecraft.world.World.func_72964_e(World.java:417)
at net.minecraft.world.World.func_147439_a(World.java:343)
at net.minecraft.world.World.func_147437_c(World.java:363)
at net.minecraft.world.World.func_147474_b(World.java:327)
at net.minecraft.world.WorldProvider.func_76566_a(WorldProvider.java:71)
at net.minecraft.world.WorldServer.func_73052_b(WorldServer.java:759)
at net.minecraft.world.WorldServer.func_72963_a(WorldServer.java:726)
at net.minecraft.world.World.<init>(World.java:258)
at net.minecraft.world.WorldServer.<init>(WorldServer.java:96)
at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:62)
at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:92)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:669)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at net.minecraft.world.WorldServer.func_147452_c(WorldServer.java:924)
at net.minecraft.block.BlockPistonBase.func_150078_e(BlockPistonBase.java:139)
at net.minecraft.block.BlockPistonBase.func_149726_b(BlockPistonBase.java:116)
at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:647)
at net.minecraft.world.World.func_147465_d(World.java:442)
at atomicstryker.ruins.common.RuinTemplateRule.placeBlock(RuinTemplateRule.java:306)
at atomicstryker.ruins.common.RuinTemplateRule.handleBlockSpawning(RuinTemplateRule.java:295)
at atomicstryker.ruins.common.RuinTemplateRule.doNormalBlock(RuinTemplateRule.java:245)
at atomicstryker.ruins.common.RuinTemplateRule.doBlock(RuinTemplateRule.java:199)
at atomicstryker.ruins.common.RuinTemplate.doBuild(RuinTemplate.java:418)
at atomicstryker.ruins.common.RuinGenerator.createBuilding(RuinGenerator.java:298)
at atomicstryker.ruins.common.RuinGenerator.generateNormal(RuinGenerator.java:184)
at atomicstryker.ruins.common.RuinsMod.generateSurface(RuinsMod.java:168)
at atomicstryker.ruins.common.RuinsMod.access$300(RuinsMod.java:42)
at atomicstryker.ruins.common.RuinsMod$RuinsWorldGenerator.generate(RuinsMod.java:140)
at cpw.mods.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:106)
at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:220)
at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1042)
at net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:130)
at net.minecraft.world.gen.ChunkProviderServer.func_73154_d(ChunkProviderServer.java:139)
at net.minecraft.world.World.func_72964_e(World.java:417)
-- Requested block coordinates --
Details:
Found chunk: true
Location: World: (601,64,-223), Chunk: (at 9,4,1 in 37,-14; contains blocks 592,0,-224 to 607,255,-209), Region: (1,-1; contains chunks 32,-32 to 63,-1, blocks 512,0,-512 to 1023,255,-1)
Stacktrace:
at net.minecraft.world.World.func_147439_a(World.java:343)
at net.minecraft.world.World.func_147437_c(World.java:363)
at net.minecraft.world.World.func_147474_b(World.java:327)
at net.minecraft.world.WorldProvider.func_76566_a(WorldProvider.java:71)
at net.minecraft.world.WorldServer.func_73052_b(WorldServer.java:759)
at net.minecraft.world.WorldServer.func_72963_a(WorldServer.java:726)
-- Affected level --
Details:
Level name: New World 11
All players: 0 total; []
Chunk stats: ServerChunkCache: 606 Drop: 0
Level seed: -7008425610738724638
Level generator: ID 01 - flat, ver 0. Features enabled: true
Level generator options:
Level spawn location: World: (0,0,0), Chunk: (at 0,0,0 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Level time: 0 game time, 0 day time
Level dimension: 0
Level storage version: 0x04ABD - Anvil
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
Stacktrace:
at net.minecraft.world.World.<init>(World.java:258)
at net.minecraft.world.WorldServer.<init>(WorldServer.java:96)
at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:62)
at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:92)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:669)
-- System Details --
Details:
Minecraft Version: 1.7.2
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.7.0_51, Oracle Corporation
Java VM Version: Java HotSpot™ 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 741477736 bytes (707 MB) / 1004011520 bytes (957 MB) up to 2077753344 bytes (1981 MB)
JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+AggressiveOpts -XX:+CMSClassUnloadingEnabled -XX:PermSize=128m -Xms1G -Xmx2G
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.03 FML v7.2.207.1110 Minecraft Forge 10.12.1.1110 5 mods loaded, 5 mods active
mcp{9.03} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
FML{7.2.207.1110} [Forge Mod Loader] (forge-1.7.2-10.12.1.1110.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
Forge{10.12.1.1110} [Minecraft Forge] (forge-1.7.2-10.12.1.1110.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
AS_Ruins{12.9} [Ruins Spawning System] ([1.7.2] Ruins v1.7.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
AS_UpdateCheck{1.1.5} [AtomicStryker Update Check Mod] (UpdateCheckerMod-1.7.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
Profiler Position: N/A (disabled)
Player Count: 0 / 8; []
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge'
This wasn't directed at me, but I can't believe there isn't dozens more ruins available, with how easy you have made it to make and save the templates. So I'm going to take it upon myself to do just that. I'll try to make them pretty and send photos.
And I might bug you about how to fill the chests with the phat lewts. I'm still a bit hazy on that.
Oh, and I'd like to know best building practices so my ruins don't cause world generation to crash in hilly areas, cause that tends to happen quite a bit with the default ruins, especially if I crank up the settings on ATG.
Thanks for such an awesome mod!
(p.s. please fix the blood bug between necromancy and tinkers <3<3<3)
I realized after implementing ocean_floor that existing shipwrecks were spawning fine, and reverted it out. All you have to do for ocean floor templates is to set preserve_water=1.
13.0 (the shipwreck spam update)
+ adds forge event EventRuinTemplateSpawn
+ adds server command /undoruin which lets you restore the building site of the last /testruin command
+ fixed small issue where templateparser would create unnecessary duplicate rules
+ fixed the underwater shipwreck templates up a bit, added one more
+ minor optimizations, improvements to logging broken templates
Okay so I'm in the process of making more ruins that are nice enough to be included in the pack, one of which is a nice little piston trap that involves gravel. However, there seems to be a bug with the pistons when the ruin is placed. The pistons will immediately turn off, and will refuse so strongly to any circuit turning them on, that they forcefully disable the redstone linked to them.
When I build a basic model of the piston trap by itself, everything spawns correctly. But when the trap is integrated into my structure, everything breaks. There doesn't appear to be any reason why it should break, which is why I'm thinking it's a bug. You can download my template here. Maybe I'm doing something wrong?
p.s my ruins also spawn without torches. I'm not sure if that's normal.
Edit: So I rebuilt the trap using a different method and that method works. One problem is that I have an iron door that gets destroyed every time I paste the ruin. It sits on valid blocks, so I don't know.
Edit2: Is there a way to manually spawn mobs? I want certain ruins to spawn with a set list of mobs, preferably with specific placement. What is the best way to do this?
Rather than detecting when a village spawns and then spawning a ruin near it, I think he meant something more like; expand the mod so that it can inject custom schematics into the village generator.
The village generator has a list of schematics available to it. I doubt that it is difficult to register new schematics to this list, causing them to spawn in villages, just like farms and blacksmiths and churches etc. To be honest, this might be better as an entirely new mod, but it does fit into the theme of Ruins quite well, (Ruins is after all; "The" structure mod).
Anyway, such a system would probably be quite simple. User puts appropriately formatted schematic files into the "village" folder and the mod registers them with the village generator. I assume that there is a weight for the schematics, but depending on the format of the file, you may be best to just put this in the filename ["NAME.rarity.tml"].
Though it is starting to get way outside of the scope of Ruins, you could even add villagers and trades, using JSON or XML to hold the settings;
If the ID lines up with an existing ID, you could just overwrite/add the specified data.
Anyway... just food for thought if anyone is bored.
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
What with all the ruins that have been moved to obsolete - many deservedly so - the remaining ruin set seems rather small.
--
Also - can an update to Ruins please see it reading its config from ./config? This is the only mod out of 50 in my server that has the config in the ./mods folder.
--
When generating ruins via /testruin, the ruins always spawn *around* my character casing me to have to destroy part of it to escape. Can it not be made such that, if executed in creative mode flight, the ruin is generated using the ground block below the creative player (i.e. using the normal spawn-on-the-ground logic).
--
As a server admin, ruins seems to generate a lot of log spam. That could be removed, but a simple "generated XXX.tml at x,y,z" would be nice to see in the console.
So make more
Since Ruins needs a folder there anyway and the templates are part of the configuration, i think it is fine as it is
Would prevent midair test spawning - i will add a XYZ option maybe
It should not be too much spam if you have logspam disabled
EDIT:
I've put in these changes without making a new Ruins version out of it
+ added sanity checking to height values. Ruins bounds can now only be set starting height 8 and fitting below max world height
+ added optional coordinates to testruin command, can be called from server console with coordinates
That is a pity. There are a number of ruin packs linked on pages on this thread. With 90+ pages to browse, it would be nice if they got listed in the OP?
I see what you did there. But. If youve seen my builds you'll appreciate more why I need a mod like ruins to help populate my world with style. My builds are rubbish.
The difference is the config data is dynamic. When I am updating my modpack I (usually) just delete the mods folder wholesale, and copy the new mods in. The config folder I use diff tools to compare the config files and ensure my customizations are in place. I think many modpack / server maintainers have a similar process and (speaking on their behalf) we would all appreciate the config going in one place where its easier to manage.
(I am also not convinced the template files themselves don't belong in ./config as they are more likely to be tweaked / modified.)
What is the normal way to spawn a test ruin and not be suffocated by it? I have, myself, been spawning ruins in the air to get an idea for them, but I would also like to "test" ruins, by spawning them at my current location, in the same way the auto generation would. Especially if I manage to make my own. Otherwise I can't be sure the edges are going to line up with the terrain nicely.
hmmm. when using /testruin, does the vertical center of the ruin, or the logical "ground level" center on the player? I am hoping for ground level as I want to use /testruin to populate a pregenerated world with specific ruins at specific locations.
Ah. Is that on by default? Does turning that off disable the stick debug info?
That's awesome. "without making a new Ruins version out of it" means these changes will be in the next release?
PS. I don't think this gets said enough so: Thanks for stepping up and maintaining all those mods. Many would be a loss to minecraft if lost.
I am trying to export the "welcome" statue from Nyvarld - that stands in the water and I, at this time, have no idea how to set it up to it spawns correctly from the water.
I am hoping it spawns relative to the water surface, but then there is the risk that ruins spawns it over a deep trench and it ends up "floating".
No need for a second algorithm... you could just add a condition like; spawn_ignores_water/fluids.
If the value is set to true and the target block is water, it moves down one block and tries again (loop until y < = some_constant || targetBlock is an acceptable spawning block). If not set, or set to false, it doesn't change.
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
That won't do. If you are "inside" template logic, the spawn site was already selected. I need a mechanism that selects both ocean floor and surface as possible spawn sites.
@Farproc
You need to supply it. Example with coordinates being x,y,z = 28, 75, -34. 1 is the template rotation.
/testruin tester 1 28 75 -34
EDIT
I have written something that will add a folder "ocean_floor" which works exactly as one would expect.
The spawn site can be changed at any point before the first block is added... you might just need to declare some variables differently to make them accessible from the template logic stuff.
But w/e, the way you've done it is way cooler and more intuitive for the user
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
I can still manually get it, just giving you a head's up about this...
View, like and subscribe at: http://www.youtube.com/user/ChrRubin
Like at : https://www.facebook.com/pages/ChrRubin/140462642789740
However: Assume for a moment I want to use ruins, not to auto generate a world as explored, but to, in creative mode, populate it with templates at specific points.
If I import a template using /testruin, and I get the position or rotation wrong, there doesn't seem to be a way to fix the destruction easily.
To keep things simple: could /testruin save a copy of the blocks it is replacing, so that a /ruinundo command could restore the world? Or - perhaps even of greater utility - a command that, given a radius - would reset and regenerate the chunks around the player, back to their initial state.
Mods installed:
Forge v10.12.1.1110
Ruins 1.7.2
Crash Log:
// Quite honestly, I wouldn't worry myself about that.
Time: 6/5/14 8:11 PM
Description: Exception getting block type in world
java.lang.NullPointerException: Exception getting block type in world
at net.minecraft.world.WorldServer.func_147452_c(WorldServer.java:924)
at net.minecraft.block.BlockPistonBase.func_150078_e(BlockPistonBase.java:139)
at net.minecraft.block.BlockPistonBase.func_149726_b(BlockPistonBase.java:116)
at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:647)
at net.minecraft.world.World.func_147465_d(World.java:442)
at atomicstryker.ruins.common.RuinTemplateRule.placeBlock(RuinTemplateRule.java:306)
at atomicstryker.ruins.common.RuinTemplateRule.handleBlockSpawning(RuinTemplateRule.java:295)
at atomicstryker.ruins.common.RuinTemplateRule.doNormalBlock(RuinTemplateRule.java:245)
at atomicstryker.ruins.common.RuinTemplateRule.doBlock(RuinTemplateRule.java:199)
at atomicstryker.ruins.common.RuinTemplate.doBuild(RuinTemplate.java:418)
at atomicstryker.ruins.common.RuinGenerator.createBuilding(RuinGenerator.java:298)
at atomicstryker.ruins.common.RuinGenerator.generateNormal(RuinGenerator.java:184)
at atomicstryker.ruins.common.RuinsMod.generateSurface(RuinsMod.java:168)
at atomicstryker.ruins.common.RuinsMod.access$300(RuinsMod.java:42)
at atomicstryker.ruins.common.RuinsMod$RuinsWorldGenerator.generate(RuinsMod.java:140)
at cpw.mods.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:106)
at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:220)
at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1042)
at net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:130)
at net.minecraft.world.gen.ChunkProviderServer.func_73154_d(ChunkProviderServer.java:139)
at net.minecraft.world.World.func_72964_e(World.java:417)
at net.minecraft.world.World.func_147439_a(World.java:343)
at net.minecraft.world.World.func_147437_c(World.java:363)
at net.minecraft.world.World.func_147474_b(World.java:327)
at net.minecraft.world.WorldProvider.func_76566_a(WorldProvider.java:71)
at net.minecraft.world.WorldServer.func_73052_b(WorldServer.java:759)
at net.minecraft.world.WorldServer.func_72963_a(WorldServer.java:726)
at net.minecraft.world.World.<init>(World.java:258)
at net.minecraft.world.WorldServer.<init>(WorldServer.java:96)
at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:62)
at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:92)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:669)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at net.minecraft.world.WorldServer.func_147452_c(WorldServer.java:924)
at net.minecraft.block.BlockPistonBase.func_150078_e(BlockPistonBase.java:139)
at net.minecraft.block.BlockPistonBase.func_149726_b(BlockPistonBase.java:116)
at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:647)
at net.minecraft.world.World.func_147465_d(World.java:442)
at atomicstryker.ruins.common.RuinTemplateRule.placeBlock(RuinTemplateRule.java:306)
at atomicstryker.ruins.common.RuinTemplateRule.handleBlockSpawning(RuinTemplateRule.java:295)
at atomicstryker.ruins.common.RuinTemplateRule.doNormalBlock(RuinTemplateRule.java:245)
at atomicstryker.ruins.common.RuinTemplateRule.doBlock(RuinTemplateRule.java:199)
at atomicstryker.ruins.common.RuinTemplate.doBuild(RuinTemplate.java:418)
at atomicstryker.ruins.common.RuinGenerator.createBuilding(RuinGenerator.java:298)
at atomicstryker.ruins.common.RuinGenerator.generateNormal(RuinGenerator.java:184)
at atomicstryker.ruins.common.RuinsMod.generateSurface(RuinsMod.java:168)
at atomicstryker.ruins.common.RuinsMod.access$300(RuinsMod.java:42)
at atomicstryker.ruins.common.RuinsMod$RuinsWorldGenerator.generate(RuinsMod.java:140)
at cpw.mods.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:106)
at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:220)
at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1042)
at net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:130)
at net.minecraft.world.gen.ChunkProviderServer.func_73154_d(ChunkProviderServer.java:139)
at net.minecraft.world.World.func_72964_e(World.java:417)
-- Requested block coordinates --
Details:
Found chunk: true
Location: World: (601,64,-223), Chunk: (at 9,4,1 in 37,-14; contains blocks 592,0,-224 to 607,255,-209), Region: (1,-1; contains chunks 32,-32 to 63,-1, blocks 512,0,-512 to 1023,255,-1)
Stacktrace:
at net.minecraft.world.World.func_147439_a(World.java:343)
at net.minecraft.world.World.func_147437_c(World.java:363)
at net.minecraft.world.World.func_147474_b(World.java:327)
at net.minecraft.world.WorldProvider.func_76566_a(WorldProvider.java:71)
at net.minecraft.world.WorldServer.func_73052_b(WorldServer.java:759)
at net.minecraft.world.WorldServer.func_72963_a(WorldServer.java:726)
-- Affected level --
Details:
Level name: New World 11
All players: 0 total; []
Chunk stats: ServerChunkCache: 606 Drop: 0
Level seed: -7008425610738724638
Level generator: ID 01 - flat, ver 0. Features enabled: true
Level generator options:
Level spawn location: World: (0,0,0), Chunk: (at 0,0,0 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Level time: 0 game time, 0 day time
Level dimension: 0
Level storage version: 0x04ABD - Anvil
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
Stacktrace:
at net.minecraft.world.World.<init>(World.java:258)
at net.minecraft.world.WorldServer.<init>(WorldServer.java:96)
at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:62)
at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:92)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:669)
-- System Details --
Details:
Minecraft Version: 1.7.2
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.7.0_51, Oracle Corporation
Java VM Version: Java HotSpot™ 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 741477736 bytes (707 MB) / 1004011520 bytes (957 MB) up to 2077753344 bytes (1981 MB)
JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+AggressiveOpts -XX:+CMSClassUnloadingEnabled -XX:PermSize=128m -Xms1G -Xmx2G
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.03 FML v7.2.207.1110 Minecraft Forge 10.12.1.1110 5 mods loaded, 5 mods active
mcp{9.03} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
FML{7.2.207.1110} [Forge Mod Loader] (forge-1.7.2-10.12.1.1110.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
Forge{10.12.1.1110} [Minecraft Forge] (forge-1.7.2-10.12.1.1110.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
AS_Ruins{12.9} [Ruins Spawning System] ([1.7.2] Ruins v1.7.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
AS_UpdateCheck{1.1.5} [AtomicStryker Update Check Mod] (UpdateCheckerMod-1.7.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available
Profiler Position: N/A (disabled)
Player Count: 0 / 8; []
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge'
This wasn't directed at me, but I can't believe there isn't dozens more ruins available, with how easy you have made it to make and save the templates. So I'm going to take it upon myself to do just that. I'll try to make them pretty and send photos.
And I might bug you about how to fill the chests with the phat lewts. I'm still a bit hazy on that.
Oh, and I'd like to know best building practices so my ruins don't cause world generation to crash in hilly areas, cause that tends to happen quite a bit with the default ruins, especially if I crank up the settings on ATG.
Thanks for such an awesome mod!
(p.s. please fix the blood bug between necromancy and tinkers <3<3<3)
I was just about to post an identical crash report.
I realized after implementing ocean_floor that existing shipwrecks were spawning fine, and reverted it out. All you have to do for ocean floor templates is to set preserve_water=1.
13.0 (the shipwreck spam update)
+ adds forge event EventRuinTemplateSpawn
+ adds server command /undoruin which lets you restore the building site of the last /testruin command
+ fixed small issue where templateparser would create unnecessary duplicate rules
+ fixed the underwater shipwreck templates up a bit, added one more
+ minor optimizations, improvements to logging broken templates
When I build a basic model of the piston trap by itself, everything spawns correctly. But when the trap is integrated into my structure, everything breaks. There doesn't appear to be any reason why it should break, which is why I'm thinking it's a bug. You can download my template here. Maybe I'm doing something wrong?
p.s my ruins also spawn without torches. I'm not sure if that's normal.
Edit: So I rebuilt the trap using a different method and that method works. One problem is that I have an iron door that gets destroyed every time I paste the ruin. It sits on valid blocks, so I don't know.
Edit2: Is there a way to manually spawn mobs? I want certain ruins to spawn with a set list of mobs, preferably with specific placement. What is the best way to do this?