From 09fbf312ac9f6c9303b5120c55f38144864b66da Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Thu, 29 Dec 2011 09:02:22 +0800 Subject: [PATCH] Add support for substitution variables in model and texture files - update BuildCraft and IndustrialCraft2 support files to use them (so that custom block ID mappings cna be handled by adding configuration.txt settings) --- renderdata/bc-models.txt | 139 +++++++------- renderdata/bc-texture.txt | 79 ++++---- renderdata/ic2-models.txt | 108 +++++------ renderdata/ic2-texture.txt | 180 +++++++++--------- .../java/org/dynmap/hdmap/HDBlockModels.java | 44 ++++- .../java/org/dynmap/hdmap/TexturePack.java | 37 +++- 6 files changed, 335 insertions(+), 252 deletions(-) diff --git a/renderdata/bc-models.txt b/renderdata/bc-models.txt index d258b5a4..132c0451 100644 --- a/renderdata/bc-models.txt +++ b/renderdata/bc-models.txt @@ -1,21 +1,26 @@ # BuildCraft Block mapping # define buildcraft-support: true in configuration.txt to enable enabled:buildcraft-support +# Variables - can be altered in configuration.txt +var:bc-autoWorkbench=152,bc-builder=157,bc-cobblestonePipe=159,bc-diamondPipe=149,bc-dockingStation=168,bc-drill=151 +var:bc-engine=161,bc-filler=155,bc-frame=160,bc-goldenPipe=148,bc-ironPipe=147,bc-marker=154,bc-miningWell=150 +var:bc-obsidianPipe=156,bc-oilMoving=162,bc-oilStill=163,bc-pipe=166,bc-pump=164,bc-quarry=153,bc-refinery=167 +var:bc-stonePipe=146,bc-tank=165,bc-template=158,bc-woodenPipe=145 # Pipe - set render alg -linkmap:id=145,linkalg=5,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166 -linkmap:id=146,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166 -linkmap:id=147,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166 -linkmap:id=148,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=149,linkid=156,linkid=159,linkid=166 -linkmap:id=149,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166 -linkmap:id=156,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=159,linkid=166 -linkmap:id=159,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166 -linkmap:id=166,linkalg=5,linkid=145,linkid=146,linkid=147,linkid=148,linkid=149,linkid=156,linkid=159,linkid=166 +linkmap:id=bc-woodenPipe,linkalg=5,linkid=bc-stonePipe,linkid=bc-ironPipe,linkid=bc-goldenPipe,linkid=bc-diamondPipe,linkid=bc-obsidianPipe,linkid=bc-cobblestonePipe,linkid=bc-pipe +linkmap:id=bc-stonePipe,linkalg=5,linkid=bc-woodenPipe,linkid=bc-stonePipe,linkid=bc-ironPipe,linkid=bc-goldenPipe,linkid=bc-diamondPipe,linkid=bc-obsidianPipe,linkid=bc-cobblestonePipe,linkid=bc-pipe +linkmap:id=bc-ironPipe,linkalg=5,linkid=bc-woodenPipe,linkid=bc-stonePipe,linkid=bc-ironPipe,linkid=bc-goldenPipe,linkid=bc-diamondPipe,linkid=bc-obsidianPipe,linkid=bc-cobblestonePipe,linkid=bc-pipe +linkmap:id=bc-goldenPipe,linkalg=5,linkid=bc-woodenPipe,linkid=bc-stonePipe,linkid=bc-ironPipe,linkid=bc-diamondPipe,linkid=bc-obsidianPipe,linkid=bc-cobblestonePipe,linkid=bc-pipe +linkmap:id=bc-diamondPipe,linkalg=5,linkid=bc-woodenPipe,linkid=bc-stonePipe,linkid=bc-ironPipe,linkid=bc-goldenPipe,linkid=bc-diamondPipe,linkid=bc-obsidianPipe,linkid=bc-cobblestonePipe,linkid=bc-pipe +linkmap:id=bc-obsidianPipe,linkalg=5,linkid=bc-woodenPipe,linkid=bc-stonePipe,linkid=bc-ironPipe,linkid=bc-goldenPipe,linkid=bc-diamondPipe,linkid=bc-cobblestonePipe,linkid=bc-pipe +linkmap:id=bc-cobblestonePipe,linkalg=5,linkid=bc-woodenPipe,linkid=bc-stonePipe,linkid=bc-ironPipe,linkid=bc-goldenPipe,linkid=bc-diamondPipe,linkid=bc-obsidianPipe,linkid=bc-cobblestonePipe,linkid=bc-pipe +linkmap:id=bc-pipe,linkalg=5,linkid=bc-woodenPipe,linkid=bc-stonePipe,linkid=bc-ironPipe,linkid=bc-goldenPipe,linkid=bc-diamondPipe,linkid=bc-obsidianPipe,linkid=bc-cobblestonePipe,linkid=bc-pipe # Frame -linkmap:id=160,linkalg=5,linkid=160 +linkmap:id=bc-frame,linkalg=5,linkid=bc-frame # Pipe - (data is faked: 1=north,2=east,4=south,8=west) # Pipe - no neighbors # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=0,scale=4 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=0,scale=4 layer:1,2 ---- -**- @@ -23,7 +28,7 @@ layer:1,2 ---- # Pipe - just north neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=1,scale=4 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=1,scale=4 layer:1,2 -**- -**- @@ -31,19 +36,19 @@ layer:1,2 ---- # Pipe - just east neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=2,scale=4 -rotate:id=145,data=1,rot=90 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=2,scale=4 +rotate:id=bc-woodenPipe,data=1,rot=90 # Pipe - just south neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=4,scale=4 -rotate:id=145,data=1,rot=180 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=4,scale=4 +rotate:id=bc-woodenPipe,data=1,rot=180 # Pipe - just south neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=8,scale=4 -rotate:id=145,data=1,rot=270 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=8,scale=4 +rotate:id=bc-woodenPipe,data=1,rot=270 # Pipe - north and east neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=3,scale=4 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=3,scale=4 layer:1,2 -**- -*** @@ -51,19 +56,19 @@ layer:1,2 ---- # Pipe - east and south neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=6,scale=4 -rotate:id=145,data=3,rot=90 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=6,scale=4 +rotate:id=bc-woodenPipe,data=3,rot=90 # Pipe - south and west neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=12,scale=4 -rotate:id=145,data=3,rot=180 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=12,scale=4 +rotate:id=bc-woodenPipe,data=3,rot=180 # Pipe - west and north neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=9,scale=4 -rotate:id=145,data=3,rot=270 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=9,scale=4 +rotate:id=bc-woodenPipe,data=3,rot=270 # Pipe - north and south neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=5,scale=4 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=5,scale=4 layer:1,2 -**- -**- @@ -71,11 +76,11 @@ layer:1,2 -**- # Pipe - east and west neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=10,scale=4 -rotate:id=145,data=5,rot=90 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=10,scale=4 +rotate:id=bc-woodenPipe,data=5,rot=90 # Pipe - north, east and south neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=7,scale=4 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=7,scale=4 layer:1,2 -**- -*** @@ -83,36 +88,36 @@ layer:1,2 -**- # Pipe - east, south and west neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=14,scale=4 -rotate:id=145,data=7,rot=90 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=14,scale=4 +rotate:id=bc-woodenPipe,data=7,rot=90 # Pipe - south, west and north neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=13,scale=4 -rotate:id=145,data=7,rot=180 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=13,scale=4 +rotate:id=bc-woodenPipe,data=7,rot=180 # Pipe - west, north and east neighbor # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=11,scale=4 -rotate:id=145,data=7,rot=270 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=11,scale=4 +rotate:id=bc-woodenPipe,data=7,rot=270 # Pipe - north, south, east, west neightbors # Frame -block:id=145,id=146,id=147,id=148,id=149,id=156,id=159,id=166,id=160,data=15,scale=4 +block:id=bc-woodenPipe,id=bc-stonePipe,id=bc-ironPipe,id=bc-goldenPipe,id=bc-diamondPipe,id=bc-obsidianPipe,id=bc-cobblestonePipe,id=bc-pipe,id=bc-frame,data=15,scale=4 layer:1,2 -**- **** **** -**- # Drill - set render alg -linkmap:id=151,linkalg=5 +linkmap:id=bc-drill,linkalg=5 # Drill - (data is faked: 1=north,2=east,4=south,8=west) # Drill - no neighbors -block:id=151,data=0,scale=4 +block:id=bc-drill,data=0,scale=4 layer:0,1,2,3 ---- -**- -**- ---- # Drill - just north neighbor -block:id=151,data=1,scale=4 +block:id=bc-drill,data=1,scale=4 layer:0,3 ---- -**- @@ -124,16 +129,16 @@ layer:1,2 -**- ---- # Drill - just east neighbor -block:id=151,data=2,scale=4 -rotate:id=151,data=1,rot=90 +block:id=bc-drill,data=2,scale=4 +rotate:id=bc-drill,data=1,rot=90 # Drill - just south neighbor -block:id=151,data=4,scale=4 -rotate:id=151,data=1,rot=180 +block:id=bc-drill,data=4,scale=4 +rotate:id=bc-drill,data=1,rot=180 # Drill - just south neighbor -block:id=151,data=8,scale=4 -rotate:id=151,data=1,rot=270 +block:id=bc-drill,data=8,scale=4 +rotate:id=bc-drill,data=1,rot=270 # Drill - north and east neighbor -block:id=151,data=3,scale=4 +block:id=bc-drill,data=3,scale=4 layer:0,3 ---- -**- @@ -145,16 +150,16 @@ layer:1,2 -*** ---- # Drill - east and south neighbor -block:id=151,data=6,scale=4 -rotate:id=151,data=3,rot=90 +block:id=bc-drill,data=6,scale=4 +rotate:id=bc-drill,data=3,rot=90 # Drill - south and west neighbor -block:id=151,data=12,scale=4 -rotate:id=151,data=3,rot=180 +block:id=bc-drill,data=12,scale=4 +rotate:id=bc-drill,data=3,rot=180 # Drill - west and north neighbor -block:id=151,data=9,scale=4 -rotate:id=151,data=3,rot=270 +block:id=bc-drill,data=9,scale=4 +rotate:id=bc-drill,data=3,rot=270 # Drill - north and south neighbor -block:id=151,data=5,scale=4 +block:id=bc-drill,data=5,scale=4 layer:0,3 ---- -**- @@ -166,10 +171,10 @@ layer:1,2 -**- -**- # Drill - east and west neighbor -block:id=151,data=10,scale=4 -rotate:id=151,data=5,rot=90 +block:id=bc-drill,data=10,scale=4 +rotate:id=bc-drill,data=5,rot=90 # Drill - north, east and south neighbor -block:id=151,data=7,scale=4 +block:id=bc-drill,data=7,scale=4 layer:0,3 ---- -**- @@ -181,16 +186,16 @@ layer:1,2 -*** -**- # Drill - east, south and west neighbor -block:id=151,data=14,scale=4 -rotate:id=151,data=7,rot=90 +block:id=bc-drill,data=14,scale=4 +rotate:id=bc-drill,data=7,rot=90 # Drill - south, west and north neighbor -block:id=151,data=13,scale=4 -rotate:id=151,data=7,rot=180 +block:id=bc-drill,data=13,scale=4 +rotate:id=bc-drill,data=7,rot=180 # Drill - west, north and east neighbor -block:id=151,data=11,scale=4 -rotate:id=151,data=7,rot=270 +block:id=bc-drill,data=11,scale=4 +rotate:id=bc-drill,data=7,rot=270 # Drill - north, south, east, west neightbors -block:id=151,data=15,scale=4 +block:id=bc-drill,data=15,scale=4 layer:0,3 ---- -**- @@ -202,7 +207,7 @@ layer:1,2 **** -**- # Marker -block:id=154,data=*,scale=8 +block:id=bc-marker,data=*,scale=8 layer:0,1,2,3,4,5,6,7 -------- -------- @@ -213,7 +218,7 @@ layer:0,1,2,3,4,5,6,7 -------- -------- # Engine -block:id=161,data=*,scale=8 +block:id=bc-engine,data=*,scale=8 layer:2,3 ******** ******** @@ -233,21 +238,21 @@ layer:4,5,6,7 -------- -------- # Oil, flowing -block:id=162,data=*,scale=4 +block:id=bc-oilMoving,data=*,scale=4 layer:0 **** **** **** **** # Oil -block:id=163,data=*,scale=4 +block:id=bc-oilStill,data=*,scale=4 layer:0,1 **** **** **** **** # Tank -block:id=165,data=*,scale=8 +block:id=bc-tank,data=*,scale=8 layer:0,1,2,3,4,5,6,7 -------- -******- diff --git a/renderdata/bc-texture.txt b/renderdata/bc-texture.txt index 722a0d17..cb5f7f1d 100644 --- a/renderdata/bc-texture.txt +++ b/renderdata/bc-texture.txt @@ -1,69 +1,74 @@ # BuildCraft Block mapping # define buildcraft-support: true in configuration.txt to enable enabled:buildcraft-support +# Variables - can be altered in configuration.txt +var:bc-autoWorkbench=152,bc-builder=157,bc-cobblestonePipe=159,bc-diamondPipe=149,bc-dockingStation=168,bc-drill=151 +var:bc-engine=161,bc-filler=155,bc-frame=160,bc-goldenPipe=148,bc-ironPipe=147,bc-marker=154,bc-miningWell=150 +var:bc-obsidianPipe=156,bc-oilMoving=162,bc-oilStill=163,bc-pipe=166,bc-pump=164,bc-quarry=153,bc-refinery=167 +var:bc-stonePipe=146,bc-tank=165,bc-template=158,bc-woodenPipe=145 # Files texturefile:id=blk,filename=buildcraft/block_textures.png,xcount=16,ycount=16 texturefile:id=wood,filename=buildcraft/base_wood.png,xcount=4,ycount=2 texturefile:id=iron,filename=buildcraft/base_iron.png,xcount=4,ycount=2 texturefile:id=stone,filename=buildcraft/base_stone.png,xcount=4,ycount=2 # WOODEN_PIPE_ID = 145 -block:id=145,data=*,allfaces=16,txtid=blk,transparency=TRANSPARENT +block:id=bc-woodenPipe,data=*,allfaces=16,txtid=blk,transparency=TRANSPARENT # STONE_PIPE_ID = 146 -block:id=146,data=*,allfaces=29,txtid=blk,transparency=TRANSPARENT +block:id=bc-stonePipe,data=*,allfaces=29,txtid=blk,transparency=TRANSPARENT # IRON_PIPE_ID = 147 -block:id=147,data=*,allfaces=19,txtid=blk,transparency=TRANSPARENT +block:id=bc-ironPipe,data=*,allfaces=19,txtid=blk,transparency=TRANSPARENT # GOLDEN_PIPE_ID = 148 -block:id=148,data=*,allfaces=20,txtid=blk,transparency=TRANSPARENT +block:id=bc-goldenPipe,data=*,allfaces=20,txtid=blk,transparency=TRANSPARENT # DIAMOND_PIPE_ID = 149 -block:id=149,data=*,allfaces=21,txtid=blk,transparency=TRANSPARENT +block:id=bc-diamondPipe,data=*,allfaces=21,txtid=blk,transparency=TRANSPARENT # MINING_WELL_ID = 150 -block:id=150,data=2,east=35,top=4036,north=37,south=37,west=38,bottom=38,txtid=blk -block:id=150,data=3,west=35,top=4036,north=37,south=37,east=38,bottom=38,txtid=blk -block:id=150,data=4,north=35,top=4036,east=37,west=37,south=38,bottom=38,txtid=blk -block:id=150,data=5,south=35,top=4036,east=37,west=37,north=38,bottom=38,txtid=blk +block:id=bc-miningWell,data=2,east=35,top=4036,north=37,south=37,west=38,bottom=38,txtid=blk +block:id=bc-miningWell,data=3,west=35,top=4036,north=37,south=37,east=38,bottom=38,txtid=blk +block:id=bc-miningWell,data=4,north=35,top=4036,east=37,west=37,south=38,bottom=38,txtid=blk +block:id=bc-miningWell,data=5,south=35,top=4036,east=37,west=37,north=38,bottom=38,txtid=blk # DRILL_ID = 151 -block:id=151,data=*,allfaces=32,txtid=blk,transparency=TRANSPARENT +block:id=bc-drill,data=*,allfaces=32,txtid=blk,transparency=TRANSPARENT # AUTO_WORKBENCH_ID = 152 -block:id=152,data=*,allsides=44,topbottom=4043 +block:id=bc-autoWorkbench,data=*,allsides=44,topbottom=4043 # QUARRY_ID = 153 -block:id=153,data=2,east=39,top=4040,north=38,south=38,west=38,bottom=38,txtid=blk -block:id=153,data=3,west=39,top=4040,north=38,south=38,east=38,bottom=38,txtid=blk -block:id=153,data=4,north=39,top=4040,east=38,west=38,south=38,bottom=38,txtid=blk -block:id=153,data=5,south=39,top=4040,east=38,west=38,north=38,bottom=38,txtid=blk +block:id=bc-quarry,data=2,east=39,top=4040,north=38,south=38,west=38,bottom=38,txtid=blk +block:id=bc-quarry,data=3,west=39,top=4040,north=38,south=38,east=38,bottom=38,txtid=blk +block:id=bc-quarry,data=4,north=39,top=4040,east=38,west=38,south=38,bottom=38,txtid=blk +block:id=bc-quarry,data=5,south=39,top=4040,east=38,west=38,north=38,bottom=38,txtid=blk # MARKER_ID = 154 -block:id=154,data=*,allsides=57,txtid=blk,transparency=TRANSPARENT +block:id=bc-marker,data=*,allsides=57,txtid=blk,transparency=TRANSPARENT # FILLER_ID = 155 -block:id=155,data=*,allsides=66,topbottom=4065,txtid=blk +block:id=bc-filler,data=*,allsides=66,topbottom=4065,txtid=blk # OBSIDIAN_PIPE_ID = 156 -block:id=156,data=*,allfaces=28,txtid=blk,transparency=TRANSPARENT +block:id=bc-obsidianPipe,data=*,allfaces=28,txtid=blk,transparency=TRANSPARENT # BUILDER_ID = 157 -block:id=157,data=2,east=55,top=4054,north=3,south=3,west=3,bottom=3,txtid=blk -block:id=157,data=3,west=55,top=4054,north=3,south=3,east=3,bottom=3,txtid=blk -block:id=157,data=4,north=55,top=4054,east=3,west=3,south=3,bottom=3,txtid=blk -block:id=157,data=5,south=55,top=4054,east=3,west=3,north=3,bottom=3,txtid=blk +block:id=bc-builder,data=2,east=55,top=4054,north=3,south=3,west=3,bottom=3,txtid=blk +block:id=bc-builder,data=3,west=55,top=4054,north=3,south=3,east=3,bottom=3,txtid=blk +block:id=bc-builder,data=4,north=55,top=4054,east=3,west=3,south=3,bottom=3,txtid=blk +block:id=bc-builder,data=5,south=55,top=4054,east=3,west=3,north=3,bottom=3,txtid=blk # TEMPLATE_ID = 158 -block:id=158,data=2,east=52,top=4050,north=48,south=48,west=48,bottom=48,txtid=blk -block:id=158,data=3,west=52,top=4050,north=48,south=48,east=48,bottom=48,txtid=blk -block:id=158,data=4,north=52,top=4050,east=48,west=48,south=48,bottom=48,txtid=blk -block:id=158,data=5,south=52,top=4050,east=48,west=48,north=48,bottom=48,txtid=blk +block:id=bc-template,data=2,east=52,top=4050,north=48,south=48,west=48,bottom=48,txtid=blk +block:id=bc-template,data=3,west=52,top=4050,north=48,south=48,east=48,bottom=48,txtid=blk +block:id=bc-template,data=4,north=52,top=4050,east=48,west=48,south=48,bottom=48,txtid=blk +block:id=bc-template,data=5,south=52,top=4050,east=48,west=48,north=48,bottom=48,txtid=blk # COBBLESTONE_PIPE_ID = 159 -block:id=159,data=*,allfaces=17,txtid=blk,transparency=TRANSPARENT +block:id=bc-cobblestonePipe,data=*,allfaces=17,txtid=blk,transparency=TRANSPARENT # FRAME_ID = 160 -block:id=160,data=*,allfaces=34,txtid=blk,transparency=TRANSPARENT +block:id=bc-frame,data=*,allfaces=34,txtid=blk,transparency=TRANSPARENT # ENGINE_ID = 161 -block:id=161,data=0,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=wood -block:id=161,data=1,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=stone -block:id=161,data=2,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=iron +block:id=bc-engine,data=0,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=wood +block:id=bc-engine,data=1,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=stone +block:id=bc-engine,data=2,north=8004,east=8005,south=8006,west=8007,top=1,bottom=2,txtid=iron # OIL_MOVING_ID = 162 -block:id=162,data=*,allfaces=223,txtid=blk +block:id=bc-oilMoving,data=*,allfaces=223,txtid=blk # OIL_STILL_ID = 163 -block:id=163,data=*,allfaces=223,txtid=blk +block:id=bc-oilStill,data=*,allfaces=223,txtid=blk # PUMP_ID = 164 -block:id=164,data=*,allsides=99,top=4064,bottom=100,txtid=blk +block:id=bc-pump,data=*,allsides=99,top=4064,bottom=100,txtid=blk # TANK_ID = 165 -block:id=165,data=*,allsides=96,topbottom=98,txtid=blk,transparency=TRANSPARENT +block:id=bc-tank,data=*,allsides=96,topbottom=98,txtid=blk,transparency=TRANSPARENT # GENERIC_PIPE_ID = 166 : entity data based, so we can't handle it yet: just map to one type (iron) -block:id=166,data=*,allfaces=18,txtid=blk,transparency=TRANSPARENT +block:id=bc-pipe,data=*,allfaces=18,txtid=blk,transparency=TRANSPARENT # REFINERY_ID = 167 - funky texture mapping - just do tank for now -block:id=167,data=*,allsides=96,topbottom=98,txtid=blk,transparency=TRANSPARENT +block:id=bc-refinery,data=*,allsides=96,topbottom=98,txtid=blk,transparency=TRANSPARENT # DOCKING_STATION_ID = 168 diff --git a/renderdata/ic2-models.txt b/renderdata/ic2-models.txt index 007cdac3..b7d7ef65 100644 --- a/renderdata/ic2-models.txt +++ b/renderdata/ic2-models.txt @@ -1,11 +1,13 @@ # Industrial Craft 2 Texture mapping # define ic2-support: true in configuration.txt to enable enabled:ic2-support +# variables: set in configuration.txt to override +var: ic2-blockCable=228,ic2-blockFenceIron=232,ic2-blockMachine2=223,ic2-blockPersonal=225,ic2-blockLuminator=226,ic2-blockElectric=227,ic2-blockReactorChamber=233,ic2-blockNuke=237,ic2-blockGenerator=246,ic2blockMachine=250 # Wire - set render alg -linkmap:id=228,linkalg=5,linkid=223,linkid=225,linkid=226,linkid=227,linkid=228,linkid=233,linkid=237,linkid=246,linkid=250 +linkmap:id=ic2-blockCable,linkalg=5,linkid=ic2-blockMachine2,linkid=ic2-blockPersonal,linkid=ic2-blockLuminator,linkid=ic2-blockElectric,linkid=ic2-blockCable,linkid=ic2-blockReactorChamber,linkid=ic2-blockNuke,linkid=ic2-blockGenerator,linkid=ic2blockMachine # Wire - (data is faked: 1=north,2=east,4=south,8=west) # Wire - no neighbors -block:id=228,data=0,scale=16 +block:id=ic2-blockCable,data=0,scale=16 layer:5,6,7,8,9,10 ---------------- ---------------- @@ -24,7 +26,7 @@ layer:5,6,7,8,9,10 ---------------- ---------------- # Wire - just north neighbor -block:id=228,data=1,scale=16 +block:id=ic2-blockCable,data=1,scale=16 layer:5,6,7,8,9,10 -----******----- -----******----- @@ -43,16 +45,16 @@ layer:5,6,7,8,9,10 ---------------- ---------------- # Wire - just east neighbor -block:id=228,data=2,scale=16 -rotate:id=228,data=1,rot=90 +block:id=ic2-blockCable,data=2,scale=16 +rotate:id=ic2-blockCable,data=1,rot=90 # Wire - just south neighbor -block:id=228,id=113,data=4,scale=16 -rotate:id=228,data=1,rot=180 +block:id=ic2-blockCable,id=113,data=4,scale=16 +rotate:id=ic2-blockCable,data=1,rot=180 # Wire - just south neighbor -block:id=228,data=8,scale=16 -rotate:id=228,data=1,rot=270 +block:id=ic2-blockCable,data=8,scale=16 +rotate:id=ic2-blockCable,data=1,rot=270 # Wire - north and east neighbor -block:id=228,data=3,scale=16 +block:id=ic2-blockCable,data=3,scale=16 layer:5,6,7,8,9,10 -----******----- -----******----- @@ -71,16 +73,16 @@ layer:5,6,7,8,9,10 ---------------- ---------------- # Wire - east and south neighbor -block:id=228,data=6,scale=16 -rotate:id=228,data=3,rot=90 +block:id=ic2-blockCable,data=6,scale=16 +rotate:id=ic2-blockCable,data=3,rot=90 # Wire - south and west neighbor -block:id=228,data=12,scale=16 -rotate:id=228,data=3,rot=180 +block:id=ic2-blockCable,data=12,scale=16 +rotate:id=ic2-blockCable,data=3,rot=180 # Wire - west and north neighbor -block:id=228,data=9,scale=16 -rotate:id=228,data=3,rot=270 +block:id=ic2-blockCable,data=9,scale=16 +rotate:id=ic2-blockCable,data=3,rot=270 # Wire - north and south neighbor -block:id=228,data=5,scale=16 +block:id=ic2-blockCable,data=5,scale=16 layer:5,6,7,8,9,10 -----******----- -----******----- @@ -99,10 +101,10 @@ layer:5,6,7,8,9,10 -----******----- -----******----- # Wire - east and west neighbor -block:id=228,data=10,scale=16 -rotate:id=228,data=5,rot=90 +block:id=ic2-blockCable,data=10,scale=16 +rotate:id=ic2-blockCable,data=5,rot=90 # Wire - north, east and south neighbor -block:id=228,data=7,scale=16 +block:id=ic2-blockCable,data=7,scale=16 layer:5,6,7,8,9,10 -----******----- -----******----- @@ -121,16 +123,16 @@ layer:5,6,7,8,9,10 -----******----- -----******----- # Wire - east, south and west neighbor -block:id=228,data=14,scale=16 -rotate:id=228,data=7,rot=90 +block:id=ic2-blockCable,data=14,scale=16 +rotate:id=ic2-blockCable,data=7,rot=90 # Wire - south, west and north neighbor -block:id=228,data=13,scale=16 -rotate:id=228,data=7,rot=180 +block:id=ic2-blockCable,data=13,scale=16 +rotate:id=ic2-blockCable,data=7,rot=180 # Wire - west, north and east neighbor -block:id=228,data=11,scale=16 -rotate:id=228,data=7,rot=270 +block:id=ic2-blockCable,data=11,scale=16 +rotate:id=ic2-blockCable,data=7,rot=270 # Wire - north, south, east, west neightbors -block:id=228,data=15,scale=16 +block:id=ic2-blockCable,data=15,scale=16 layer:5,6,7,8,9,10 -----******----- -----******----- @@ -149,53 +151,53 @@ layer:5,6,7,8,9,10 -----******----- -----******----- # Iron Fence - set render algorithm -linkmap:id=232,linkalg=1 +linkmap:id=ic2-blockFenceIron,linkalg=1 # Iron Fence - (data is faked: 1=north,2=east,4=south,8=west) # Iron Fence - no neighbors -block:id=232,data=0,scale=16 +block:id=ic2-blockFenceIron,data=0,scale=16 rotate:id=85,data=0,rot=0 # Iron Fence - just north neighbor -block:id=232,data=1,scale=16 +block:id=ic2-blockFenceIron,data=1,scale=16 rotate:id=85,data=1,rot=0 # Iron Fence - just east neighbor -block:id=232,data=2,scale=16 -rotate:id=232,data=1,rot=90 +block:id=ic2-blockFenceIron,data=2,scale=16 +rotate:id=ic2-blockFenceIron,data=1,rot=90 # Iron Fence - just south neighbor -block:id=232,data=4,scale=16 -rotate:id=232,data=1,rot=180 +block:id=ic2-blockFenceIron,data=4,scale=16 +rotate:id=ic2-blockFenceIron,data=1,rot=180 # Iron Fence - just south neighbor -block:id=232,data=8,scale=16 -rotate:id=232,data=1,rot=270 +block:id=ic2-blockFenceIron,data=8,scale=16 +rotate:id=ic2-blockFenceIron,data=1,rot=270 # Iron Fence - north and east neighbor -block:id=232,data=3,scale=16 +block:id=ic2-blockFenceIron,data=3,scale=16 rotate:id=85,data=3,rot=0 # Iron Fence - east and south neighbor -block:id=232,data=6,scale=16 -rotate:id=232,data=3,rot=90 +block:id=ic2-blockFenceIron,data=6,scale=16 +rotate:id=ic2-blockFenceIron,data=3,rot=90 # Iron Fence - south and west neighbor -block:id=232,data=12,scale=16 +block:id=ic2-blockFenceIron,data=12,scale=16 rotate:id=85,data=3,rot=180 # Iron Fence - west and north neighbor -block:id=232,data=9,scale=16 +block:id=ic2-blockFenceIron,data=9,scale=16 rotate:id=85,data=3,rot=270 # Iron Fence - north and south neighbor -block:id=232,data=5,scale=16 +block:id=ic2-blockFenceIron,data=5,scale=16 rotate:id=85,data=5,rot=0 # Iron Fence - east and west neighbor -block:id=232,id=113,data=10,scale=16 -rotate:id=232,data=5,rot=90 +block:id=ic2-blockFenceIron,id=113,data=10,scale=16 +rotate:id=ic2-blockFenceIron,data=5,rot=90 # Iron Fence - north, east and south neighbor -block:id=232,data=7,scale=16 +block:id=ic2-blockFenceIron,data=7,scale=16 rotate:id=85,data=7,rot=0 # Iron Fence - east, south and west neighbor -block:id=232,data=14,scale=16 -rotate:id=232,data=7,rot=90 +block:id=ic2-blockFenceIron,data=14,scale=16 +rotate:id=ic2-blockFenceIron,data=7,rot=90 # Iron Fence - south, west and north neighbor -block:id=232,data=13,scale=16 -rotate:id=232,data=7,rot=180 +block:id=ic2-blockFenceIron,data=13,scale=16 +rotate:id=ic2-blockFenceIron,data=7,rot=180 # Iron Fence - west, north and east neighbor -block:id=232,data=11,scale=16 -rotate:id=232,data=7,rot=270 +block:id=ic2-blockFenceIron,data=11,scale=16 +rotate:id=ic2-blockFenceIron,data=7,rot=270 # Iron Fence - north, south, east, west neightbors -block:id=232,data=15,scale=16 -rotate:id=232,data=15,rot=0 +block:id=ic2-blockFenceIron,data=15,scale=16 +rotate:id=ic2-blockFenceIron,data=15,rot=0 diff --git a/renderdata/ic2-texture.txt b/renderdata/ic2-texture.txt index e5a1614d..6cafbcc0 100644 --- a/renderdata/ic2-texture.txt +++ b/renderdata/ic2-texture.txt @@ -1,6 +1,12 @@ # Industrial Craft 2 Block mapping # define ic2-support: true in configuration.txt to enable enabled:ic2-support +# variables: set in configuration.txt to override +var:ic2-blockScaffold=220,ic2-blockWall=221,ic2-blockFoam=222,ic2-blockMachine2=223,ic2-blockMetal=224,ic2-blockPersonal=225,ic2-blockLuminator=226,ic2-blockElectric=227 +var:ic2-blockCable=228,ic2-blockDoorAlloy=229,ic2-blockAlloyGlass=230,ic2-blockAlloy=231,ic2-blockFenceIron=232,ic2-blockReactorChamber=233 +var:ic2-blockRubber=234,ic2-blockDynamiteRemote=235,ic2-blockDynamite=236,ic2-blockNuke=237,ic2-blockITNT=239,ic2-blockHarz=240,ic2-blockRubSapling=241 +var:ic2-blockRubLeaves=242,ic2-blockRubWood=243,ic2-blockMiningTip=244,ic2-blockMiningPipe=245,ic2-blockGenerator=246 +var:ic2-blockOreUran=247,ic2-blockOreTin=248,ic2-blockOreCopper=249,ic2-blockMachine=250 # Files texturefile:id=blk0,filename=ic2/sprites/block_0.png,xcount=16,ycount=16 texturefile:id=cable,filename=ic2/sprites/block_cable.png,xcount=16,ycount=16 @@ -12,186 +18,186 @@ texturefile:id=pers,filename=ic2/sprites/block_personal.png,xcount=16,ycount=16 # Blocks # blockScaffold=220 # data=* -block:id=220,data=*,allsides=116,topbottom=117,txtid=blk0 +block:id=ic2-blockScaffold,data=*,allsides=116,topbottom=117,txtid=blk0 # data=2 -block:id=220,data=2,allfaces=118,txtid=blk0 +block:id=ic2-blockScaffold,data=2,allfaces=118,txtid=blk0 # blockWall=221 # data=0 -block:id=221,data=0,allfaces=96,txtid=blk0 +block:id=ic2-blockWall,data=0,allfaces=96,txtid=blk0 # data=1 -block:id=221,data=1,allfaces=97,txtid=blk0 +block:id=ic2-blockWall,data=1,allfaces=97,txtid=blk0 # data=2 -block:id=221,data=2,allfaces=98,txtid=blk0 +block:id=ic2-blockWall,data=2,allfaces=98,txtid=blk0 # data=3 -block:id=221,data=3,allfaces=99,txtid=blk0 +block:id=ic2-blockWall,data=3,allfaces=99,txtid=blk0 # data=4 -block:id=221,data=4,allfaces=100,txtid=blk0 +block:id=ic2-blockWall,data=4,allfaces=100,txtid=blk0 # data=5 -block:id=221,data=5,allfaces=101,txtid=blk0 +block:id=ic2-blockWall,data=5,allfaces=101,txtid=blk0 # data=6 -block:id=221,data=6,allfaces=102,txtid=blk0 +block:id=ic2-blockWall,data=6,allfaces=102,txtid=blk0 # data=7 -block:id=221,data=7,allfaces=103,txtid=blk0 +block:id=ic2-blockWall,data=7,allfaces=103,txtid=blk0 # data=8 -block:id=221,data=8,allfaces=104,txtid=blk0 +block:id=ic2-blockWall,data=8,allfaces=104,txtid=blk0 # data=9 -block:id=221,data=9,allfaces=105,txtid=blk0 +block:id=ic2-blockWall,data=9,allfaces=105,txtid=blk0 # data=10 -block:id=221,data=10,allfaces=106,txtid=blk0 +block:id=ic2-blockWall,data=10,allfaces=106,txtid=blk0 # data=11 -block:id=221,data=11,allfaces=107,txtid=blk0 +block:id=ic2-blockWall,data=11,allfaces=107,txtid=blk0 # data=12 -block:id=221,data=12,allfaces=108,txtid=blk0 +block:id=ic2-blockWall,data=12,allfaces=108,txtid=blk0 # data=13 -block:id=221,data=13,allfaces=109,txtid=blk0 +block:id=ic2-blockWall,data=13,allfaces=109,txtid=blk0 # data=14 -block:id=221,data=14,allfaces=110,txtid=blk0 +block:id=ic2-blockWall,data=14,allfaces=110,txtid=blk0 # data=15 -block:id=221,data=15,allfaces=111,txtid=blk0 +block:id=ic2-blockWall,data=15,allfaces=111,txtid=blk0 # blockFoam=222 -block:id=222,data=*,allfaces=37 +block:id=ic2-blockFoam,data=*,allfaces=37 # blockMachine2=223 # data=0 -block:id=223,data=0,top=0,bottom=16,north=32,south=48,east=64,west=80,txtid=mach2 +block:id=ic2-blockMachine2,data=0,top=0,bottom=16,north=32,south=48,east=64,west=80,txtid=mach2 # data=1 -block:id=223,data=1,top=1,bottom=17,north=33,south=49,east=65,west=81,txtid=mach2 +block:id=ic2-blockMachine2,data=1,top=1,bottom=17,north=33,south=49,east=65,west=81,txtid=mach2 # blockMetal=224 # data=0 (copper) -block:id=224,data=0,allfaces=93,txtid=blk0 +block:id=ic2-blockMetal,data=0,allfaces=93,txtid=blk0 # data=1 (tin) -block:id=224,data=1,allfaces=94,txtid=blk0 +block:id=ic2-blockMetal,data=1,allfaces=94,txtid=blk0 # data=2 (bronze) -block:id=224,data=2,allfaces=78,txtid=blk0 +block:id=ic2-blockMetal,data=2,allfaces=78,txtid=blk0 # data=3 (uranium) -block:id=224,data=3,topbottom=79,allsides=95,txtid=blk0 +block:id=ic2-blockMetal,data=3,topbottom=79,allsides=95,txtid=blk0 # blockPersonal=225 # data=0 -block:id=225,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=pers +block:id=ic2-blockPersonal,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=pers # data=1 -block:id=225,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=pers +block:id=ic2-blockPersonal,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=pers # blockLuminator=226 -block:id=226,data=*,allfaces=31,txtid=blk0 +block:id=ic2-blockLuminator,data=*,allfaces=31,txtid=blk0 # blockElectric=227 # data=0 -block:id=227,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=elec +block:id=ic2-blockElectric,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=elec # data=1 -block:id=227,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=elec +block:id=ic2-blockElectric,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=elec # data=2 -block:id=227,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=elec +block:id=ic2-blockElectric,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=elec # data=3 -block:id=227,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=elec +block:id=ic2-blockElectric,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=elec # data=4 -block:id=227,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=elec +block:id=ic2-blockElectric,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=elec # data=5 -block:id=227,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=elec +block:id=ic2-blockElectric,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=elec # blockCable=228 # data=0 -block:id=228,data=0,allfaces=0,txtid=cable +block:id=ic2-blockCable,data=0,allfaces=0,txtid=cable # data=1 -block:id=228,data=1,allfaces=16,txtid=cable +block:id=ic2-blockCable,data=1,allfaces=16,txtid=cable # data=2 -block:id=228,data=2,allfaces=32,txtid=cable +block:id=ic2-blockCable,data=2,allfaces=32,txtid=cable # data=3 -block:id=228,data=3,allfaces=48,txtid=cable +block:id=ic2-blockCable,data=3,allfaces=48,txtid=cable # data=4 -block:id=228,data=4,allfaces=64,txtid=cable +block:id=ic2-blockCable,data=4,allfaces=64,txtid=cable # data=5 -block:id=228,data=5,allfaces=80,txtid=cable +block:id=ic2-blockCable,data=5,allfaces=80,txtid=cable # data=6 -block:id=228,data=6,allfaces=96,txtid=cable +block:id=ic2-blockCable,data=6,allfaces=96,txtid=cable # data=7 -block:id=228,data=7,allfaces=112,txtid=cable +block:id=ic2-blockCable,data=7,allfaces=112,txtid=cable # data=8 -block:id=228,data=8,allfaces=128,txtid=cable +block:id=ic2-blockCable,data=8,allfaces=128,txtid=cable # data=9 -block:id=228,data=9,allfaces=144,txtid=cable +block:id=ic2-blockCable,data=9,allfaces=144,txtid=cable # data=10 -block:id=228,data=10,allfaces=160,txtid=cable +block:id=ic2-blockCable,data=10,allfaces=160,txtid=cable # blockDoorAlloy=229 # data=0-7 (bottom) -block:id=229,data=0,data=1,data=2,data=3,data=4,data=5,data=6,data=7,allsides=15,topbottom=12,transparency=TRANSPARENT,txtid=blk0 +block:id=ic2-blockDoorAlloy,data=0,data=1,data=2,data=3,data=4,data=5,data=6,data=7,allsides=15,topbottom=12,transparency=TRANSPARENT,txtid=blk0 # data=8-15 (top) -block:id=229,data=8,data=9,data=10,data=11,data=12,data=13,data=14,data=15,allsides=14,topbottom=12,transparency=TRANSPARENT,txtid=blk0 +block:id=ic2-blockDoorAlloy,data=8,data=9,data=10,data=11,data=12,data=13,data=14,data=15,allsides=14,topbottom=12,transparency=TRANSPARENT,txtid=blk0 # blockAlloyGlass=230 -block:id=230,data=*,allfaces=13,txtid=blk0,transparency=TRANSPARENT +block:id=ic2-blockAlloyGlass,data=*,allfaces=13,txtid=blk0,transparency=TRANSPARENT # blockAlloy=231 -block:id=231,data=*,allfaces=12,txtid=blk0 +block:id=ic2-blockAlloy,data=*,allfaces=12,txtid=blk0 # blockFenceIron=232 -block:id=232,data=*,allfaces=1,txtid=blk0,transparency=TRANSPARENT +block:id=ic2-blockFenceIron,data=*,allfaces=1,txtid=blk0,transparency=TRANSPARENT # blockReactorChamber=233 -block:id=233,data=*,bottom=16,top=17,allsides=67,txtid=blk0 +block:id=ic2-blockReactorChamber,data=*,bottom=16,top=17,allsides=67,txtid=blk0 # blockRubber=234 -block:id=234,data=*,allfaces=40,txtid=blk0 +block:id=ic2-blockRubber,data=*,allfaces=40,txtid=blk0 # blockDynamiteRemote=235 -block:id=235,data=*,allsides=56,txtid=blk0 +block:id=ic2-blockDynamiteRemote,data=*,allsides=56,txtid=blk0 # blockDynamite=236 -block:id=236,data=*,allsides=57,txtid=blk0 +block:id=ic2-blockDynamite,data=*,allsides=57,txtid=blk0 # blockNuke=237 -block:id=237,data=*,bottom=61,top=62,allsides=63,txtid=blk0 +block:id=ic2-blockNuke,data=*,bottom=61,top=62,allsides=63,txtid=blk0 # ?=238 # blockITNT=239 -block:id=239,data=*,bottom=58,top=59,allsides=60,txtid=blk0 +block:id=ic2-blockITNT,data=*,bottom=58,top=59,allsides=60,txtid=blk0 # blockHarz=240 -block:id=240,data=*,allfaces=43,txtid=blk0 +block:id=ic2-blockHarz,data=*,allfaces=43,txtid=blk0 # blockRubSapling=241 -block:id=241,data=*,allsides=2038,transparency=TRANSPARENT,txtid=blk0 +block:id=ic2-blockRubSapling,data=*,allsides=2038,transparency=TRANSPARENT,txtid=blk0 # blockRubLeaves=242 -block:id=242,data=*,allfaces=2040,transparency=TRANSPARENT,txtid=blk0 +block:id=ic2-blockRubLeaves,data=*,allfaces=2040,transparency=TRANSPARENT,txtid=blk0 # blockRubWood=243 -block:id=243,data=*,topbottom=47,allsides=44,txtid=blk0 +block:id=ic2-blockRubWood,data=*,topbottom=47,allsides=44,txtid=blk0 # blockMiningTip=244 -block:id=244,data=*,allfaces=36,txtid=blk0 +block:id=ic2-blockMiningTip,data=*,allfaces=36,txtid=blk0 # blockMiningPipe=245 -block:id=245,data=*,allfaces=35,txtid=blk0 +block:id=ic2-blockMiningPipe,data=*,allfaces=35,txtid=blk0 # blockGenerator=246 # data=0 -block:id=246,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=gen +block:id=ic2-blockGenerator,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=gen # data=1 -block:id=246,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=gen +block:id=ic2-blockGenerator,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=gen # data=2 -block:id=246,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=gen +block:id=ic2-blockGenerator,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=gen # data=3 -block:id=246,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=gen +block:id=ic2-blockGenerator,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=gen # data=4 -block:id=246,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=gen +block:id=ic2-blockGenerator,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=gen # data=5 -block:id=246,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=gen +block:id=ic2-blockGenerator,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=gen # blockOreUran=247 -block:id=247,data=*,allfaces=34,txtid=blk0 +block:id=ic2-blockOreUran,data=*,allfaces=34,txtid=blk0 # blockOreTin=248 -block:id=248,data=*,allfaces=33,txtid=blk0 +block:id=ic2-blockOreTin,data=*,allfaces=33,txtid=blk0 # blockOreCopper=249 -block:id=249,data=*,allfaces=32,txtid=blk0 +block:id=ic2-blockOreCopper,data=*,allfaces=32,txtid=blk0 # blockMachine=250 # data=0 -block:id=250,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=mach +block:id=ic2-blockMachine,data=0,bottom=0,top=16,north=32,south=48,east=64,west=80,txtid=mach # data=1 -block:id=250,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=mach +block:id=ic2-blockMachine,data=1,bottom=1,top=17,north=33,south=49,east=65,west=81,txtid=mach # data=2 -block:id=250,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=mach +block:id=ic2-blockMachine,data=2,bottom=2,top=18,north=34,south=50,east=66,west=82,txtid=mach # data=3 -block:id=250,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=mach +block:id=ic2-blockMachine,data=3,bottom=3,top=19,north=35,south=51,east=67,west=83,txtid=mach # data=4 -block:id=250,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=mach +block:id=ic2-blockMachine,data=4,bottom=4,top=20,north=36,south=52,east=68,west=84,txtid=mach # data=5 -block:id=250,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=mach +block:id=ic2-blockMachine,data=5,bottom=5,top=21,north=37,south=53,east=69,west=85,txtid=mach # data=6 -block:id=250,data=6,bottom=6,top=22,north=38,south=54,east=70,west=86,txtid=mach +block:id=ic2-blockMachine,data=6,bottom=6,top=22,north=38,south=54,east=70,west=86,txtid=mach # data=7 -block:id=250,data=7,bottom=7,top=23,north=39,south=55,east=71,west=87,txtid=mach +block:id=ic2-blockMachine,data=7,bottom=7,top=23,north=39,south=55,east=71,west=87,txtid=mach # data=8 -block:id=250,data=8,bottom=8,top=24,north=40,south=56,east=72,west=88,txtid=mach +block:id=ic2-blockMachine,data=8,bottom=8,top=24,north=40,south=56,east=72,west=88,txtid=mach # data=9 -block:id=250,data=9,bottom=9,top=25,north=41,south=57,east=73,west=89,txtid=mach +block:id=ic2-blockMachine,data=9,bottom=9,top=25,north=41,south=57,east=73,west=89,txtid=mach # data=10 -block:id=250,data=10,bottom=10,top=26,north=42,south=58,east=74,west=90,txtid=mach +block:id=ic2-blockMachine,data=10,bottom=10,top=26,north=42,south=58,east=74,west=90,txtid=mach # data=11 -block:id=250,data=11,bottom=11,top=27,north=43,south=59,east=75,west=91,txtid=mach +block:id=ic2-blockMachine,data=11,bottom=11,top=27,north=43,south=59,east=75,west=91,txtid=mach # data=12 -block:id=250,data=12,bottom=12,top=28,north=44,south=60,east=76,west=92,txtid=mach +block:id=ic2-blockMachine,data=12,bottom=12,top=28,north=44,south=60,east=76,west=92,txtid=mach # data=13 -block:id=250,data=13,bottom=13,top=29,north=45,south=61,east=77,west=93,txtid=mach +block:id=ic2-blockMachine,data=13,bottom=13,top=29,north=45,south=61,east=77,west=93,txtid=mach # data=14 -block:id=250,data=14,bottom=14,top=30,north=46,south=62,east=78,west=94,txtid=mach +block:id=ic2-blockMachine,data=14,bottom=14,top=30,north=46,south=62,east=78,west=94,txtid=mach # data=15 -block:id=250,data=15,bottom=15,top=31,north=47,south=63,east=79,west=95,txtid=mach +block:id=ic2-blockMachine,data=15,bottom=15,top=31,north=47,south=63,east=79,west=95,txtid=mach diff --git a/src/main/java/org/dynmap/hdmap/HDBlockModels.java b/src/main/java/org/dynmap/hdmap/HDBlockModels.java index 7094ff1f..0b2ae5d8 100644 --- a/src/main/java/org/dynmap/hdmap/HDBlockModels.java +++ b/src/main/java/org/dynmap/hdmap/HDBlockModels.java @@ -12,6 +12,7 @@ import java.io.LineNumberReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; import org.bukkit.Material; import org.dynmap.ConfigurationNode; @@ -323,6 +324,17 @@ public class HDBlockModels { } } } + private static Integer getIntValue(Map vars, String val) throws NumberFormatException { + if(Character.isLetter(val.charAt(0))) { + Integer v = vars.get(val); + if(v == null) + throw new NumberFormatException("invalid ID - " + val); + return v; + } + else { + return Integer.valueOf(val); + } + } /** * Load models from file */ @@ -332,6 +344,7 @@ public class HDBlockModels { try { String line; ArrayList modlist = new ArrayList(); + HashMap varvals = new HashMap(); int layerbits = 0; int rownum = 0; int scale = 0; @@ -347,13 +360,13 @@ public class HDBlockModels { String[] av = a.split("="); if(av.length < 2) continue; if(av[0].equals("id")) { - blkids.add(Integer.parseInt(av[1])); + blkids.add(getIntValue(varvals,av[1])); } else if(av[0].equals("data")) { if(av[1].equals("*")) databits = 0xFFFF; else - databits |= (1 << Integer.parseInt(av[1])); + databits |= (1 << getIntValue(varvals,av[1])); } else if(av[0].equals("scale")) { scale = Integer.parseInt(av[1]); @@ -390,8 +403,8 @@ public class HDBlockModels { for(String a : args) { String[] av = a.split("="); if(av.length < 2) continue; - if(av[0].equals("id")) { id = Integer.parseInt(av[1]); } - if(av[0].equals("data")) { data = Integer.parseInt(av[1]); } + if(av[0].equals("id")) { id = getIntValue(varvals,av[1]); } + if(av[0].equals("data")) { data = getIntValue(varvals,av[1]); } if(av[0].equals("rot")) { rot = Integer.parseInt(av[1]); } } /* get old model to be rotated */ @@ -434,13 +447,13 @@ public class HDBlockModels { String[] av = a.split("="); if(av.length < 2) continue; if(av[0].equals("id")) { - blkids.add(Integer.parseInt(av[1])); + blkids.add(getIntValue(varvals,av[1])); } else if(av[0].equals("linkalg")) { linktype = Integer.parseInt(av[1]); } else if(av[0].equals("linkid")) { - map.add(Integer.parseInt(av[1])); + map.add(getIntValue(varvals,av[1])); } } if(linktype > 0) { @@ -471,6 +484,25 @@ public class HDBlockModels { Log.info(line + " models enabled"); } } + else if(line.startsWith("var:")) { /* Test if variable declaration */ + line = line.substring(4).trim(); + String args[] = line.split(","); + for(int i = 0; i < args.length; i++) { + String[] v = args[i].split("="); + if(v.length < 2) { + Log.severe("Format error - line " + rdr.getLineNumber() + " of " + fname); + return; + } + try { + int val = Integer.valueOf(v[1]); /* Parse default value */ + int parmval = config.getInteger(v[0], val); /* Read value, with applied default */ + varvals.put(v[0], parmval); /* And save value */ + } catch (NumberFormatException nfx) { + Log.severe("Format error - line " + rdr.getLineNumber() + " of " + fname); + return; + } + } + } else if(layerbits != 0) { /* If we're working pattern lines */ /* Layerbits determine Y, rows count from North to South (X=0 to X=N-1), columns Z are West to East (N-1 to 0) */ for(int i = 0; (i < scale) && (i < line.length()); i++) { diff --git a/src/main/java/org/dynmap/hdmap/TexturePack.java b/src/main/java/org/dynmap/hdmap/TexturePack.java index afd57205..c39b6c11 100644 --- a/src/main/java/org/dynmap/hdmap/TexturePack.java +++ b/src/main/java/org/dynmap/hdmap/TexturePack.java @@ -14,6 +14,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -810,6 +811,18 @@ public class TexturePack { } } + private static Integer getIntValue(Map vars, String val) throws NumberFormatException { + if(Character.isLetter(val.charAt(0))) { + Integer v = vars.get(val); + if(v == null) + throw new NumberFormatException("invalid ID - " + val); + return v; + } + else { + return Integer.valueOf(val); + } + } + /** * Load texture pack mappings from texture.txt file */ @@ -817,6 +830,7 @@ public class TexturePack { LineNumberReader rdr = null; int cnt = 0; HashMap filetoidx = new HashMap(); + HashMap varvals = new HashMap(); try { String line; @@ -835,14 +849,14 @@ public class TexturePack { String[] av = a.split("="); if(av.length < 2) continue; if(av[0].equals("id")) { - blkids.add(Integer.parseInt(av[1])); + blkids.add(getIntValue(varvals, av[1])); } else if(av[0].equals("data")) { if(databits < 0) databits = 0; if(av[1].equals("*")) databits = 0xFFFF; else - databits |= (1 << Integer.parseInt(av[1])); + databits |= (1 << getIntValue(varvals,av[1])); } else if(av[0].equals("top") || av[0].equals("y-")) { faces[BlockStep.Y_MINUS.ordinal()] = Integer.parseInt(av[1]); @@ -965,6 +979,25 @@ public class TexturePack { Log.info(line + " textures enabled"); } } + else if(line.startsWith("var:")) { /* Test if variable declaration */ + line = line.substring(4).trim(); + String args[] = line.split(","); + for(int i = 0; i < args.length; i++) { + String[] v = args[i].split("="); + if(v.length < 2) { + Log.severe("Format error - line " + rdr.getLineNumber() + " of " + txtname); + return; + } + try { + int val = Integer.valueOf(v[1]); /* Parse default value */ + int parmval = config.getInteger(v[0], val); /* Read value, with applied default */ + varvals.put(v[0], parmval); /* And save value */ + } catch (NumberFormatException nfx) { + Log.severe("Format error - line " + rdr.getLineNumber() + " of " + txtname); + return; + } + } + } } Log.verboseinfo("Loaded " + cnt + " texture mappings from " + txtname); } catch (IOException iox) {