MCEdit Filters

SETTLEVOLVER

posted Jun 23, 2020, 12:39 AM by Adrian Brightmoore   [ updated Jun 23, 2020, 12:46 AM ]

https://github.com/abrightmoore/GDMC2020_ChronicleChallenge

Simulated agents wander the landscape. They construct buildings based on the type of materials within the local area as well as using their own artistic style. Occasionally agents will make a new child who inherits artistic characteristics from the parent.

City

Procedural Settlement Generation. See https://twitter.com/GenDesignMC for details of the challenge

You can review by development notes for 2020 on Twitter here: https://twitter.com/abrightmoore/status/1271037719431409669?s=20

You can check out my 2019 effort here: https://github.com/abrightmoore/ProceduralSettlementsInMinecraft You can read about my experience here: http://www.brightmoore.net/what-s-happening-now/gdmc2019-proceduralsettlementgenerationinminecraftround2

You can check out my 2018 effort here: http://www.brightmoore.net/mcedit-filters-1/abode You can read about my experience here: http://www.brightmoore.net/what-s-happening-now/gdmc2018competition-aparticipantsperspective

MY APPROACH

In this year's effort, I use autonomous agents to roam the selected landscape and build structures that use materials from the local environment.

Each agent has a distinctive material and pattern style which is reflected in their structures. Agents are also capable of coming together to create a child that inherits the design aesthetic of their parents. To celebrate this act of creation, a tree appears in the landscape with a design merged from the two parents and the child.

SELECTED ASPECTS OF THE GENERATED SETTLEMENT

Houses are multistorey clusters of rooms randomly stacked. Struts are used to connect overhanging parts with the ground, suggesting force carrying pillars. This approach solved the problem of dealing with terrain variation. In past years I was profiling the gradient of the land looking for building plots that were suitably slightly sloping. This year I allow the agent to build clusters of dwellings where they like, regardless of the severity of terrain. It is quite effective at dealing with structure placement.

The type of dwelling and style of dwelling plot is determined by the resources found within the landscape. Before building, the landscape columns are sampled at intervals and the resulting materials of interest are indexed for later access by the agents:

  • Water allows farms
  • Woods allow cottages
  • Lava permits blacksmith, which is a very large cottage plot currently.
  • Ore resources permit vertical mineshafts, with an industrial set of buildings above ground and a mine head building on top.
  • Stone allows ancient crumbling structures (which can also be built upon in later simulation iterations), castle-like forts, round towers, or mystrious impenetrable wizards spires.
  • An occasional stone path section is placed showing the areas that agents have wandered through.

There is also a central hub platform in the settlement which hosts a ramshackle tower, as well as the names of selected agents that have built out the settlement on signs. This is intended to mimic the special spawn area in shared online servers.

The wall sections of buildings are patterned according to a spatial field unique to each agent. As you trace through the village you will see similar structure colours used in similar ways by the same 'person'.

As each dwelling is built, an array of rooms is returned from the heirarchical generator which are intended to be used in populating the interiors. The interiors have been 'dressed' with functional blocks where appropriate, and doors added. As these are all private residences, access is not always convenient for the casual interloper - consider leaving people to their privacy.

THE CHRONICLE CHALLENGE

One optional challenge is to provide lore in the world to enhance the experience of the settlement. In my solution I track events as the simulation unfolds and then report them in chronological order on the MCEdit console output at the end of the simulation attempt.

As part of my response to the Chronicle challence, ingame signs are used to show which agent is responsible for the dwellings and structures they build. A list of named signs at the settlement hub are used to invoke the experience of exploring a well-played shared world.

Seek out the chest on the corner of the central hub. Within is the settlement almanac, consisting of the settlement name, and details of all the 'builders' who contributed to it. Within the almanac is the last known location of each builder. At that location you will find a personal diary, though you will need to desecrate the grave to read it! As an additional challenge, the graves may be haunted by the spirit of the dead...

Farms and cottages

Settlement Example - Birch Wood

Settlement Example - Oak Wood

Chronicle elements ingame

TRANSLATABLE

posted Mar 31, 2020, 1:23 PM by Adrian Brightmoore   [ updated May 3, 2020, 3:23 PM ]

This is an MCEdit 1.6.0.53 script that uses PYMCLEVEL to tabulate text strings into language files. This allows you to swap in translated text in your products.

WARNING: This filter will make changes to your world files. Work with a backup available to roll back to or don't use this program.

Design and QA was aided and abetted by @Jigarbov.

Status at release for Bedrock v1.12:
DONE: Jigarbov: feature request: discard signs if they are blank. there are a lot of signs used as deco which junk up the lang file
DONE: [2:21 AM] Jigarbov: book support would have to scan containers for both written books and book and quill (written but not signed) books. the page formatting will be an issue
DONE - added writable_book and also a slot ID to the key when in a chest: [2:27 AM] Jigarbov: so it looks like its finding books but it isnt doing anything when it does find them
DONE: Yes they do! (Gimme a test case that fails so I can check the NBT tree) [2:27 AM] Jigarbov: the pages do not appear in the lang file
DONE (for signs and books) [2:33 AM] Jigarbov: empty strings result in non displays, so they will have to be purged from lang file
DONE - Jigarbov: feature request: title commands convert to titleraw and use translate string. same kinda thing you already do with tellraw
NOT DONE - Jigarbov: something that i dont know if it works or not: translating command block "names". i tried to put a rawtext into a command block name and it deleted the entire chunk, but i was using mcc toolchest, which has a habit of doing that with me anyway, so might be worth testing? some people lable command blocks as part of their UX, for example they turn command block texture into a computer, name it "open door" so when you hover your curser over it, it says "open door"

AXMasTree

posted Dec 23, 2019, 11:04 AM by Adrian Brightmoore   [ updated Dec 23, 2019, 11:35 AM ]

@Jigarbov asked for a Christmas Tree filter to help out with his mega-massive-Minecraft-map called "Abstraction: Gifts".

This is that filter.

To use:
Make a selection box, then run the filter.



REPLACE BLOCK ADJACENT

posted Apr 24, 2019, 4:18 AM by Adrian Brightmoore

This filter looks for the Material to Find, checks if there is a block of type Material Adjacent next to it, and swaps in Material to Replace if there is.

ALLFORMOONSCRATERS mashup by Timur and Nicolas_kul

posted Mar 31, 2019, 10:49 AM by Adrian Brightmoore   [ updated Mar 31, 2019, 11:12 AM ]

Make a crater-pocked landscape with this filter mashup by Timur and Nicolas_kul. Combines SPRINKLE, DRAPE, and BLOCKSCHEMATICSWAPPER with a custom cratering logic in one handy package!


(Images supplied)

TEXTA

posted Jan 21, 2019, 12:35 AM by Adrian Brightmoore   [ updated Jan 21, 2019, 6:15 PM ]

Set the Text tag on each BlockEntity in the selection box to be the contents of the text file you specify. Use for updating Minecraft Education Edition Chalkboard text.

The attached filter file goes in your filters directory.
v1 replaces the contents of the "Text" tag.
v2 allows you to specify a different NBT tag. Make sure it is a TAG_String type otherwise you will break the BlockEntity.
v3 allows you to specify a different NBT tag and tag type (compound and List is not supported)

Go to this Twitter thread for help or more usage guidance: https://twitter.com/TheWorldFoundry/status/1087270673712525313


GLUETRAPDOORSTOBLOCK

posted Dec 30, 2018, 5:01 PM by Adrian Brightmoore   [ updated Dec 30, 2018, 5:01 PM ]

This filter fixes the problem where you've used trapdoors to wrap around a light source in your build and when you've converted it from Java to Bedrock all the trapdoors have popped open. It was requested by @Smurfmashers from Nether Pixel Studios.

For example, if you have the problem on the left and want things to look like on the right in the following picture then this filter is for you:

Inputs and details:

Note: do multiple passes if you've got more than one material type in use. Always work with a world backup.

LIFESCULPTURE

posted Dec 30, 2018, 12:11 AM by Adrian Brightmoore   [ updated Dec 30, 2018, 1:23 AM ]

Per Cold Fusion Gaming.

Render structures as time-series cellular automata in the North-South direction of the selection box.

This filter will let you import a (non Alpha) png and specify the RGB values to match as 'seed cells'. It places them in the middle of the south-most plane and runs the simulation from there. You can also select "None" and it will use the non-air blocks in the south-most plane to seed the process. The final approach is 'randomise' and you suggest the 'frequency' of live cells in the first layer as a float (i.e 0.2 = 20% chance of each cell being 'alive'). I also save off the last frame if you read in from a png file so you can start again from that point later. It's in the MCEdit binaries directory with an "_end" suffix.


ROTATESLICE

posted Nov 24, 2018, 7:05 PM by Adrian Brightmoore

Reimplemented - select a width-wise selection and this spins it 360 degrees. It renders outside the selection area, so work with enough room around the slice.

HEMISPHERE

posted Nov 10, 2018, 7:22 PM by Adrian Brightmoore

Create hemisphere/domes from a layer of material in the selection. Originally for Cold Fusion Gaming:

Select a plane of an image and then lift the selection box to the height you want the radius of the hemisphere to be. Run the filter and wait for it to finish.



1-10 of 147