Skip to content

Theme Customisation

Brian Rivas edited this page Oct 13, 2017 · 5 revisions

Dungeon Themes

The information on this page only applies to mc1.6 versions of the mod

Configuration general structure

  • DungeonConfig: Array of configurations

    • Configurations
  • Configuration: container for a single dungeon configuration

    • "biomes" : Array of biome names dungeon theme applies to
    • "levels" : Array of indexes for dungeon levels

"levels" : "0", "1", "2", "3", "4"

  • "rooms" : The rooms present in a single level

  • "rooms" : Array

    • "mode" : method for choosing
      • "single" : Will be added once.
      • "type" : A Dungeon (room) type
    • "random" : Will be selected randomly by weight relative to other randoms
      • "type" : A Dungeon (room) type
      • "weight" : The relative random weight scale for selection
  • "theme" : Contains blocks and segment information

    • "primary" : A BlockSet used for background walls
    • "secondary" : A BlockSet used for foreground walls
    • "segments" : An Array of Segment types
    • "arch" : A segment type used for regular arch ways
  • BlockSet: "primary" and "secondary" theme elements

    • "walls" : an IBlockFactory structure
    • "pillar" : an IBlockFactory structure
    • "stair" : must be a METABLOCK type

Type Lists

  • Dungeon (rooms) :

    • BRICK, CREEPER, CRYPT, ENCHANT, ENDER, FIRE,
    • MUSIC, NETHER, NETHERFORT, PIT, PRISON,
    • SLIME, SMITH, SPIDER, CAKE, LAB, CORNER,
    • MESS, ETHO, ENIKO, BTEAM, BAJ, OSSUARY, OBSIDIAN,
    • AVIDYA, STORAGE, NEBRIS, ASHLEA;
  • IBlockFactory :

    • METABLOCK, WEIGHTED, CHECKERS, JUMBLE, STRIPES;
  • Segment :

    • ARCH, FIRE, SHELF, INSET, MOSSYARCH, MOSSYMUSHROOM,
    • NETHERARCH, NETHERSTRIPE, JUNGLE;

How IBlockFactory Structures work

  • All IBlockFactory contain:

    • "type" : IBlockFactory type
    • "data" : Element containing information about the IBlockFactory
  • a METABLOCK is an atomic IBlockFactory type and cannot contain other IBlockFactory elements. all other IBlockFactory types can contain other IBlockFactory types, and METABLOCKS.

##IBlockFactory type rules

  • METABLOCK : an object,
    • "id" : int
    • "meta" : int - optional
    • "flag" : int - optional
  • WEIGHTED : Array of Weighted Random
    • "type" : IBlockFactory type
    • "data" : IBlockFactory data
    • "weight" int
  • CHECKERS : Array of (exactly two - checker pattern)
    • "type" : IBlockFactory type
  • JUMBLE : Array of evenly distributed but random
    • "type" : IBlockFactory type
    • "data" : IBlockFactory data
  • STRIPES : Array of striped diagonal pattern
    • "type" : IBlockFactory type
    • "data" : IBlockFactory data

Example

{ 
	"DungeonConfig" : [
		{
			"biomes" : ["Swampland", "Extreme Hills"],
			"levels" : {
				"0" : {
					"rooms" : [
						{"mode" : "single", "type" : "MESS"},
						{"mode" : "single", "type" : "SMITH"},
						{"mode" : "single", "type" : "FIRE"},
						{"mode" : "single", "type" : "ENIKO"},
						{"mode" : "random", "type" : "CRYPT", "weight" : 10}
					],
					"theme" : {
						"base" : "BLING",
						"primary" : {
							"walls" : {
								"type" : "STRIPES", "data" : [
									{"type" : "METABLOCK", "data" : {"id" : 1}},
									{"type" : "METABLOCK", "data" : {"id" : 3}},
									{"type" : "METABLOCK", "data" : {"id" : 4}},
									{"type" : "JUMBLE", "data" : [
										{"type" : "METABLOCK", "data" : {"id" : 57}},
										{"type" : "METABLOCK", "data" : {"id" : 19}}
									]}
								]
							},
							"pillar" : {"type" : "METABLOCK", "data" : {"id" : 56}},
							"stair" : {"type" : "METABLOCK", "data" : {"id" : 128}}
						},
						"segments" : ["JUNGLE", "MOSSYMUSHROOM"],
						"arch" : "NETHERARCH"
					}
				},
				"1" : {
					"theme" : {
						"base" : "JUNGLE"
					}
				},
				"3" : {
					"theme" : {
						"base" : "QUARTZ"
					}
				},
				"4" : {
					"rooms" : [
					{"mode" : "random", "type" : "CRYPT", "weight" : 10},
					{"mode" : "random", "type" : "SLIME", "weight" : 5},
					{"mode" : "random", "type" : "ENIKO", "weight" : 5}					
					]
				}
			}
		}
	]
}
Clone this wiki locally