Comment: | add writing stand for editing codexes; add scissors, ink, erasure fluid, pens; touch up codex UI; add many recipe notes; add craft divination type for crafttools; defuckulate fucktarded crafttool impl; enhance table library with missing features like lua's table.unpack; many bug fixes and enhancements; blood for the blood god |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
72eebac4bc5efbd10e1defef57906dd3 |
User & Date: | lexi on 2020-09-26 18:49:51 |
Other Links: | manifest | tags |
2020-09-29
| ||
12:40 | * remove former hacky registration system, replace with consistent and flexible API; rewrite metal/gem generation to take advantage of this new API; tweaks to init system to enable world-local tweaks to lore and sorcery behavior * initial documentation commit * initial steps towards calendar - add default date format, astrolabe; prepare infra for division/melding/transmutation spells, various tweaks and fixes check-in: 3f6a913e4e user: lexi tags: trunk | |
2020-09-26
| ||
18:49 | add writing stand for editing codexes; add scissors, ink, erasure fluid, pens; touch up codex UI; add many recipe notes; add craft divination type for crafttools; defuckulate fucktarded crafttool impl; enhance table library with missing features like lua's table.unpack; many bug fixes and enhancements; blood for the blood god check-in: 72eebac4bc user: lexi tags: trunk | |
2020-09-24
| ||
23:07 | add blood god, add gravitator, add hand-drawn ore images, add mana hud display for enchanted items, various tweaks and enhancements check-in: f165d9e39f user: lexi tags: trunk | |
Modified cookbook.lua from [89adffa44b] to [f535fa81e6].
31 31 vessel = { caption = 'Any Bottle', cnitem = 'vessels:glass_bottle' }; 32 32 flower = { caption = 'Any Flower', cnitem = 'flowers:rose' }; 33 33 mushroom = { caption = 'Any Mushroom', cnitem = 'flowers:mushroom_brown' }; 34 34 water_bucket = { caption = 'Water Bucket', cnitem = 'bucket:bucket_water' }; 35 35 sorcery_ley_cable = { caption = 'Cable', cnitem = 'sorcery:cable_vidrium' }; 36 36 }; 37 37 } 38 +sorcery.cookbook.constants = constants 38 39 39 40 local slot3x3 = { 40 41 {0,0}, {1,0}, {2,0}; 41 42 {0,1}, {1,1}, {2,1}; 42 43 {0,2}, {1,2}, {2,2}; 43 44 } 44 45 local props_builtin = function(item) ................................................................................ 82 83 return names[math.random(#names)] 83 84 end end 84 85 local find_builtin = function(out) 85 86 local rec = {} 86 87 local i = minetest.get_craft_recipe(out) 87 88 if i == nil or i.items == nil or #i.items == 0 then return nil end 88 89 local w = (i.width == 0) and 3 or i.width 89 - for j=1,#i.items do 90 + -- for j=1,#i.items do 91 + for j,item in pairs(i.items) do 90 92 local row = math.floor((j-1) / w) 91 93 local col = (j-1) % w 92 94 if i.items[j] then 93 95 rec[1 + (row * 3) + col] = i.items[j] 94 96 end 95 97 end 96 98 return rec ................................................................................ 157 159 end 158 160 end; 159 161 } 160 162 sorcery.cookbook.classes = { 161 163 craft = { 162 164 name = 'Crafting Guide'; 163 165 node = 'xdecor:workbench'; 164 - booksuf = 'Manual'; 166 + booksuf = 'Codex'; 165 167 w = 3, h = 3; 166 168 chance = 2; 167 169 slots = slot3x3; 168 170 pick = pick_builtin('normal'); 169 171 find = find_builtin; 170 - desc = desc_builtin; 171 172 props = props_builtin; 172 173 apply_exclusions = true; 173 174 }; 174 175 -- smelt = { 175 176 -- w = 3, h = 3; 176 177 -- slots = slot3x3; 177 178 -- }; ................................................................................ 234 235 w = 1, h = 2; 235 236 pick = function(restrict) 236 237 cache:populate_grindables() 237 238 local i = cache.grindables[math.random(#cache.grindables)] 238 239 local pd = sorcery.itemclass.get(i, 'grindable') 239 240 return pd.powder 240 241 end; 241 - desc = desc_builtin; 242 242 props = props_builtin; 243 243 slots = { 244 244 {0,1}, 245 245 {0,0}; 246 246 }; 247 247 find = function(out) 248 248 cache:populate_grindables() ................................................................................ 377 377 end 378 378 end 379 379 local img, ot 380 380 local props = k.props(result) 381 381 if props.note then 382 382 local nx, ny, nw, nh 383 383 if notes_right then 384 - nx = 5 ny = 0 385 - nw = 3 nh = 3 384 + nx = 5.25 ny = 0 385 + nw = 4 nh = 3 386 386 else 387 387 nx = 0 ny = 3 388 388 nw = 4 nh = 1 389 389 end 390 390 t = t .. string.format([[ 391 - textarea[%f,%f;%f,%f;;;%s] 391 + hypertext[%f,%f;%f,%f;note;<global valign=middle halign=justify size=20>%s] 392 392 ]], nx,ny,nw,nh, minetest.formspec_escape(props.note)) 393 393 end 394 394 if k.icon then img = k.icon(result) end 395 395 if k.outdesc then ot = k.outdesc(result) else ot = desc_builtin(result) end 396 396 -- image[%f,%f;1,1;gui_furnace_arrow_bg.png^[transformR270] 397 397 return t .. string.format([[ 398 398 item_image[%f,%f;1,1;%s]tooltip[%f,%f;1,1;%s] ................................................................................ 468 468 type = 'shapeless'; 469 469 recipe = { 470 470 'sorcery:cookbook'; 471 471 'default:book'; 472 472 }; 473 473 output = 'sorcery:cookbook'; 474 474 }; 475 + 476 +-- erase cookbooks in the usual way 477 +minetest.register_craft { 478 + type = 'shapeless'; 479 + recipe = { 480 + 'sorcery:cookbook'; 481 + 'bucket:bucket_water'; 482 + }; 483 + output = 'default:book'; 484 + replacements = { 485 + {'bucket:bucket_water','bucket:bucket_empty'}; 486 + }; 487 +}; 475 488 476 489 local m = sorcery.lib.marshal 477 490 local encbook, decbook = m.transcoder { 478 491 pages = m.g.array(8, m.g.struct { 479 492 kind = m.t.str; 480 493 name = m.t.str; 481 494 }) ................................................................................ 483 496 484 497 local bookprops = function(stack) 485 498 local meta = stack:get_meta() 486 499 if meta:contains('cookbook') then 487 500 return decbook(sorcery.lib.str.meta_dearmor(meta:get_string('cookbook'),true)) 488 501 else return {pages={}} end 489 502 end 503 + 504 +sorcery.cookbook.get = bookprops 505 +sorcery.cookbook.set = function(stack,props) 506 + local meta = stack:get_meta() 507 + meta:set_string('cookbook', sorcery.lib.str.meta_armor(encbook(props),true)) 508 +end 509 + 510 +sorcery.cookbook.defaults = { 511 + indesc = desc_builtin; 512 + outdesc = desc_builtin; 513 + title = desc_builtin; 514 + props = props_builtin; 515 + pick = pick_builtin; 516 + find = find_builtin; 517 +} 518 + 519 +sorcery.cookbook.recfn = function(class,fn) 520 + local c = sorcery.cookbook.classes[class] 521 + if c[fn] then return c[fn] end 522 + return sorcery.cookbook.defaults[fn] 523 +end 490 524 491 525 local bookform_ctx = {} 492 526 local bookform = function(stack,user) 493 527 bookform_ctx[user:get_player_name()] = user:get_wield_index() 494 528 495 529 local meta = stack:get_meta() 496 530 local book = bookprops(stack) ................................................................................ 498 532 local curpage = meta:contains("pagenr") and meta:get_int("pagenr") or 1 499 533 500 534 local pgofs = (curpage - 1) * constants.recipes_per_cookbook_page 501 535 local form = string.format([[ 502 536 formspec_version[3] 503 537 size[10,12]real_coordinates[true] 504 538 box[0,0;10,1;#580C39FF]label[0.4,0.5;%s] 505 - button_exit[3,11;4,1;quit;Page %u/%u] 539 + style[pgind;border=false] 540 + style[pgind:hovered;content_offset=0,0] 541 + button[3,11;4,1;pgind;Page %u/%u] 506 542 ]], minetest.formspec_escape(meta:get_string('description')), 507 543 curpage, pagect) 544 + -- using an extremely dishonorable trick to fake centered text 508 545 509 546 if curpage > 1 then form = form .. 'button[0,11;3,1;pageback;< Back]' end 510 547 if curpage < pagect then form = form .. 'button[7,11;3,1;pagenext;Next >]' end 511 548 512 549 local coords = { 513 - {2,1.3}; 514 - {2,4.5}; 515 - {2,7.7}; 550 + {0.85,1.3}; 551 + {0.85,4.5}; 552 + {0.85,7.7}; 516 553 -- {0,1.3}, {4, 1.3}; 517 554 -- {0,4.7}, {4, 4.7}; 518 555 -- {0,8.1}, {4, 8.1}; 519 556 } 520 557 for i=pgofs,(pgofs + constants.recipes_per_cookbook_page-1) do 521 558 local maxw, maxh = 3, 2 522 559 if not book.pages[i+1] then break end
Modified crafttools.lua from [569141ccf4] to [68741b438c].
1 1 minetest.register_on_craft(function(stack,crafter,recipe,grid) 2 - local ctoolclass = { 3 - [1] = 200; 4 - [2] = 100; 5 - [3] = 50; 6 - [4] = 10; 7 - [5] = 5; 8 - } 9 2 for i=1,grid:get_size('craft') do 10 3 local s = grid:get_stack('craft',i) 11 4 local v = minetest.get_item_group(s:get_name(),'crafttool') 12 5 if v ~= 0 then 13 - local dmg = 65536 / ctoolclass[v] 6 + local dmg = 65536 / v 14 7 local tool = recipe[i] 15 8 tool:add_wear(dmg) 16 9 grid:set_stack('craft',i,tool) 17 10 end 18 11 end 19 12 return nil 20 13 end) 21 14 22 -if minetest.get_modpath('xdecor') then 23 - local og = minetest.registered_tools['xdecor:hammer'].groups 24 - og.crafttool = 2 25 - minetest.override_item('xdecor:hammer', {groups = og}) 15 +local mod_override = function(mod,name,val) 16 + if minetest.get_modpath(mod) then 17 + local id = mod..':'..name 18 + local og = minetest.registered_tools[id].groups 19 + og.crafttool = val 20 + minetest.override_item(id, {groups = og}) 21 + end 26 22 end 23 + 24 +mod_override('xdecor', 'hammer', 70) 25 +mod_override('screwdriver','screwdriver',40) 27 26 28 27 minetest.register_tool('sorcery:vice', { 29 28 description = 'Vice'; 30 29 inventory_image = 'sorcery_vice.png'; 31 - group = { crafttool = 3; } 30 + group = { crafttool = 100; } 32 31 }) 33 32 minetest.register_craft { 34 33 output = 'sorcery:vice'; 35 34 recipe = { 36 35 {'default:steel_ingot','sorcery:screw_steel','default:steel_ingot'}; 37 36 {'default:bronze_ingot','sorcery:screw_steel','default:bronze_ingot'}; 38 37 {'default:tin_ingot','default:tin_ingot','default:tin_ingot'}; 39 38 }; 40 39 } 41 40 -- chisel
Modified data/gods.lua from [7a41dba628] to [90d2603045].
139 139 idol = { 140 140 desc = "Blood Idol"; 141 141 width = 0.7; 142 142 height = 1.3; 143 143 tex = { 144 144 "default_obsidian.png"; 145 145 "default_gold_block.png"; 146 - "default_bronze_block.png^[multiply:#C32F2F"; 146 + "default_copper_block.png"; 147 + -- "default_bronze_block.png^[multiply:#C32F2F"; 147 148 "default_bronze_block.png"; 148 149 "default_tin_block.png"; 149 150 }; 150 151 }; 151 152 sacrifice = { 152 153 ["sorcery:blood"] = 3; 153 154 ["bonemeal:bone"] = 9;
Modified data/metals.lua from [3567f41644] to [970d414eec].
19 19 return { 20 20 tin = { 21 21 ingot = 'default:tin_ingot'; 22 22 block = 'default:tinblock'; 23 23 tone = {172,172,172}; 24 24 no_tools = true; no_armor = true; grindhead = true; 25 25 hardness = 2; 26 + level = 0; 26 27 }; 27 28 copper = { 28 29 dye = 'orange'; 29 30 ingot = 'default:copper_ingot'; 30 31 block = 'default:copperblock'; 31 32 tone = {255,176,61}; 32 33 no_tools = true; no_armor = true; 33 34 hardness = 2; 34 35 conduct = 0.3; 36 + level = 0; 35 37 }; 36 38 brass = { 37 39 tone = {255,226,87}; 38 40 dye = 'bright_orange'; 39 41 artificial = true; 40 42 no_tools = true; no_armor = true; 41 43 hardness = 3; 44 + level = 0; 42 45 mix = { 43 46 metals = { 44 47 silver = 1; 45 48 copper = 4; 46 49 }; 47 50 }; 48 51 }; ................................................................................ 50 53 ingot = 'default:bronze_ingot'; 51 54 block = 'default:bronzeblock'; 52 55 dye = 'dark_orange'; 53 56 artificial = true; 54 57 tone = {229,115,52}; 55 58 items = default_items('bronze'); 56 59 hardness = 4; 60 + durability = 300; 57 61 maxenergy = 150; 62 + speed = 1.4; 63 + level = 0; 58 64 slots = { 59 65 {affinity = {'counterpraxic'}; confluence = 0.7}; 60 66 }; 61 67 mix = { 62 68 metals = { 63 69 copper = 4; 64 70 tin = 1; ................................................................................ 67 73 }; 68 74 steel = { 69 75 ingot = 'default:steel_ingot'; 70 76 block = 'default:steelblock'; 71 77 tone = {240,240,240}; 72 78 items = default_items('steel'); 73 79 maxenergy = 200; 80 + durability = 500; 74 81 hardness = 5; 82 + speed = 1.9; 83 + level = 1; 75 84 slots = { 76 85 {affinity = {'praxic'}; confluence = 0.5}; 77 86 }; 78 87 }; 79 88 aluminum = { 80 89 tone = {196,64,32}, alpha = 128; 81 90 dye = 'red'; ................................................................................ 82 91 meltpoint = 1; 83 92 rarity = 12; depth = 158; 84 93 power = 3; speed = 2.4; 85 94 durability = 700; cooktime = 25; 86 95 hardness = 6; 87 96 armor_weight = 0.3; 88 97 maxenergy = 400; 98 + level = 1; 99 + maxlevel = 2; 89 100 slots = { 90 101 {affinity = {'syncretic'}; confluence = 0.7}; 91 102 {affinity = {'praxic'}; confluence = 0.4}; 92 103 }; 93 104 }; 94 105 levitanium = { 95 106 tone = {17,255,191}, alpha = 40; 96 107 dye = 'bright_blue'; 97 108 meltpoint = 4; 98 109 hardness = 3; 110 + level = 1; 99 111 rarity = 17; depth = 870; 100 112 power = 1; durability = 50; cooktime = 70; 101 113 armor_weight = -2.2; armor_protection = 1; 102 114 maxenergy = 5000; 103 115 no_tools = true; 104 116 }; 105 117 platinum = { 106 118 tone = {255,233,118}, alpha = 50; 107 119 meltpoint = 1; 108 120 rarity = 15; depth = 580; 109 121 power = 4; speed = 3; 110 122 hardness = 6; 123 + level = 2; 111 124 durability = 1400; cooktime = 40; 112 125 armor_weight = 0.7; 113 126 maxenergy = 1000; 114 127 slots = { 115 128 {affinity = {'praxic','counterpraxic'}; confluence = 0.3}; 116 129 {affinity = {'counterpraxic'}; confluence = 0.8}; 117 130 } ................................................................................ 118 131 }; 119 132 gold = { 120 133 dye = 'yellow'; 121 134 ingot = 'default:gold_ingot'; 122 135 block = 'default:goldblock'; 123 136 tone = {255,225,47}; 124 137 hardness = 1; 138 + level = 1; 125 139 maxenergy = 3000; 126 140 slots = { 127 141 {affinity = {'praxic','counterpraxic'}; confluence = 1.4}; 128 142 {affinity = {'praxic','counterpraxic'}; confluence = 1.2}; 129 143 } 130 144 }; 131 145 silver = { 132 146 tone = {218,255,246}; 133 147 dye = 'white'; 134 148 maxenergy = 2000; 135 149 hardness = 1; 150 + level = 1; 136 151 depth = 380; rarity = 13.5; 137 152 no_armor = true; no_tools = true; 138 153 power = 1; cooktime = 8; hardness = 1; 139 154 }; 140 155 electrum = { 141 156 tone = {212, 255, 0}, alpha = 80; 142 157 artificial = true; 143 158 hardness = 1; 144 159 conduct = 2; 160 + level = 1; 145 161 dye = 'bright_green'; 146 162 mix = { 147 163 metals = { 148 164 silver = 1; 149 165 gold = 1; 150 166 }; 151 167 }; ................................................................................ 158 174 speed = 2.8; 159 175 power = 4; 160 176 hardness = 8; 161 177 meltpoint = 4; 162 178 cooktime = 100; 163 179 durability = 2700; 164 180 maxenergy = 1500; 181 + level = 2; 182 + maxlevel = 3; 165 183 slots = { 166 184 {affinity = {'counterpraxic'}, confluence = 0.6}; 167 185 {affinity = {'praxic','counterpraxic'}, confluence = 1}; 168 186 {affinity = {'praxic'}, confluence = 0.5}; 169 187 }; 170 188 }; 171 189 cobalt = { ................................................................................ 174 192 rarity = 17; 175 193 durabilty = 900; 176 194 hardness = 6; 177 195 power = 3; 178 196 speed = 3.5; 179 197 cooktime = 30; 180 198 maxenergy = 3500; 199 + level = 2; 181 200 slots = { 182 201 { 183 202 affinity = {'counterpraxic'}; 184 203 confluence = 0.65; 185 204 interference = {speed = 1}; 186 205 }; 187 206 } ................................................................................ 188 207 }; 189 208 lithium = { 190 209 tone = {255,252,93}, alpha = 80; 191 210 dye = 'yellow'; 192 211 rarity = 13; 193 212 hardness = 2; 194 213 fuel = 80; 214 + level = 1; 195 215 no_tools = true; 196 216 no_armor = true; 197 217 }; 198 218 vidrium = { 199 219 tone = {119,185,221}, alpha = 140; 200 220 artificial = true; 201 221 dye = 'cyan'; 202 222 hardness = 1; 203 223 durability = 300; 204 224 meltpoint = 2; 205 225 cooktime = 20; 206 226 no_tools = true, no_armor = true; 207 227 conduct = 5; 228 + level = 1; 208 229 mix = { 209 230 metals = { 210 231 lithium = 2; 211 232 tin = 4; 212 233 gold = 1; 213 234 } 214 235 }; ................................................................................ 220 241 iridium = { 221 242 tone = {209,88,241}, alpha = 80; 222 243 dye = 'purple'; 223 244 rarity = 18; 224 245 meltpoint = 3; 225 246 cooktime = 340; 226 247 hardness = 7; 248 + level = 3; 227 249 maxenergy = 1800; 228 250 conduct = 10; 229 251 durability = 1900; 230 252 speed = 3; 231 253 img = { 232 254 -- ingot = 'sorcery_iridium_ingot.png'; 233 255 -- block = 'sorcery_iridium_block.png'; ................................................................................ 241 263 tone = {255,64,175}, alpha = 70; 242 264 cooktime = 120; 243 265 artificial = true; 244 266 durability = 3400; 245 267 speed = 3.1; 246 268 hardness = 9; 247 269 power = 5; 270 + level = 4; 248 271 mix = { 249 272 metals = { 250 273 platinum = 4; 251 274 aluminum = 4; 252 275 tin = 1; 253 276 }; 254 277 }; ................................................................................ 264 287 impervium = { 265 288 tone = {226,255,107}, alpha = 90; 266 289 cooktime = 260; 267 290 meltpoint = 5; 268 291 artificial = true; 269 292 speed = 2.1; 270 293 hardness = 15; 294 + level = 4; 295 + maxlevel = 5; 271 296 durability = 5300; 272 297 maxenergy = 2300; 273 298 watercool = true; 274 299 mix = { 275 300 metals = { 276 301 duranium = 4; 277 302 iridium = 2; ................................................................................ 287 312 eternium = { 288 313 tone = {156,82,222}, alpha = 100; 289 314 cooktime = 500; 290 315 meltpoint = 6; 291 316 artificial = true; 292 317 speed = 2; 293 318 hardness = 10; 319 + level = 4; 294 320 maxenergy = 1200; 295 321 durability = 8100; 296 322 watercool = true; 297 323 mix = { 298 324 metals = { 299 325 iridium = 2; 300 326 tungsten = 2; ................................................................................ 315 341 tone = {114,255,214}, alpha = 120; 316 342 meltpoint = 3; 317 343 cooktime = 330; 318 344 artificial = true; 319 345 maxenergy = 4000; 320 346 hardness = 7; 321 347 durability = 3300; 348 + level = 5; 322 349 conduct = 20; 323 350 speed = 3.4; 324 351 slots = { 325 352 {affinity={'praxic'}, confluence = 0.7}; 326 353 {affinity={'counterpraxic'}, confluence = 1.2}; 327 354 {affinity={'cognic'}, confluence = 1.1}; 328 355 }; ................................................................................ 337 364 draconium = { 338 365 tone = {255,20,80}, alpha = 110; 339 366 artificial=true; 340 367 meltpoint = 5; 341 368 cooktime = 120; 342 369 hardness = 8; 343 370 maxconduct = 15; 371 + level = 2; 344 372 speed = 1.7; 345 373 maxenergy = 2200; 346 374 durability = 1500; 347 375 slots = { 348 376 {affinity={'praxic'},confluence=3}; 349 377 {affinity={'syncretic'},confluence=2}; 350 378 }; ................................................................................ 358 386 artificial=true; 359 387 hardness = 20; 360 388 meltpoint = 6; 361 389 cooktime = 240; 362 390 maxenergy = 800; 363 391 durability = 4000; 364 392 speed = 3.0; 393 + level = 3; 394 + maxlevel = 4; 365 395 slots = {}; 366 396 }; 367 397 };
Modified data/spells.lua from [0d89fbd301] to [c7b64d56d8].
475 475 restrict.group = 'sorcery_worship' 476 476 elseif mod == sorcery.data.metals.gold.parts.powder then 477 477 restrict.group = 'sorcery_grease' 478 478 elseif mod == sorcery.data.metals.silver.parts.powder then 479 479 restrict.group = 'sorcery_oil' 480 480 elseif mod == sorcery.data.metals.electrum.parts.powder then 481 481 restrict.group = 'sorcery_extract' 482 + elseif mod == sorcery.data.metals.steel.parts.powder then 483 + restrict.group = 'crafttool' 482 484 elseif mod == 'farming:sugar' then 483 485 restrict.mod = 'farming' 484 486 else return false end 485 487 end 486 488 elseif ink1 == 'black' and ink2 == 'white' then kind = 'infuse' 487 489 if mod then 488 490 if mod == sorcery.data.metals.gold.parts.powder then
Modified depends.txt from [37d6e3fb32] to [77f19ef08b].
1 +default 2 +tnt? 1 3 farming 2 4 xdecor 5 +basic_materials 3 6 vessels 4 7 late 5 8 instant_ores 9 +screwdriver
Modified disassembly.lua from [5131b0247b] to [5366481e82].
43 43 tiles = { 44 44 'default_copper_block.png'; 45 45 'default_wood.png'; 46 46 'default_steel_block.png'; 47 47 'default_stone.png'; 48 48 'default_gold_block.png'; 49 49 'default_coal_block.png'; 50 + }; 51 + _sorcery = { 52 + recipe = { 53 + note = 'Destroy a device or object to learn how it is crafted'; 54 + }; 50 55 }; 51 56 after_dig_node = sorcery.lib.node.purge_container; 52 57 on_construct = function(pos) 53 58 local m = minetest.get_meta(pos) 54 59 local i = m:get_inventory() 55 60 i:set_size('item',1) 56 61 i:set_size('paper',1) ................................................................................ 63 68 list[current_player;main;0.25,2;8,4] 64 69 65 70 list[context;item;0.25,0.5;1,1;] 66 71 list[context;paper;2.25,0.5;1,1;] 67 72 list[context;ink;4.25,0.5;3,1;] 68 73 list[context;output;9,0.5;1,1;] 69 74 70 - listring[current_player;main] listring[context;item] 75 + listring[context;output] 71 76 listring[current_player;main] listring[context;paper] 72 77 listring[current_player;main] listring[context;ink] 78 + listring[current_player;main] listring[context;item] 79 + listring[current_player;main] 73 80 ]]) 74 81 end; 75 82 on_metadata_inventory_put = update_disassembler; 76 83 on_metadata_inventory_take = function(pos,list,idx,stack,user) 77 84 local m = minetest.get_meta(pos) 78 85 local i = m:get_inventory() 79 86 local paper = i:get_stack('paper',1) 80 87 local item = i:get_stack('item',1) 81 88 82 89 if list == 'output' then 83 90 local count = stack:get_count() 91 + local leftover = sorcery.data.infusion_leftovers[item:get_name()] 92 + local lstack if leftover then 93 + lstack = ItemStack(leftover) 94 + lstack:set_count(lstack:get_count() * count) 95 + -- this slightly idiosyncratic code is used to ensure that 96 + -- itemstrings can be used in the infusion leftovers table 97 + end 84 98 item:take_item(count) 85 - i:set_stack('item',1,item) 99 + if item:get_count() > 0 then 100 + if leftover then 101 + lstack = user:get_inventory():add_item(lstack) 102 + if lstack:get_count() > 0 then minetest.add_item(pos,lstack) end 103 + end 104 + i:set_stack('item',1,item) 105 + else 106 + if leftover then 107 + i:set_stack('item',1,lstack) 108 + else 109 + i:set_stack('item',1,ItemStack()) 110 + end 111 + end 86 112 for j=1,i:get_size('ink') do 87 113 local ink = i:get_stack('ink',j) 88 114 ink:take_item(count) 89 115 i:set_stack('ink',j,ink) 90 116 end 91 117 end 92 118
Modified farcaster.lua from [6f8ef41220] to [af0360a5f2].
19 19 if tune then return 0.3 else return 0 end 20 20 end 21 21 }; 22 22 attune = { 23 23 class = 'sorcery:raycaster', accepts = 'sorcery:raycaster'; 24 24 source = true, target = true, reciprocal = true; 25 25 }; 26 + recipe = { 27 + note = 'Bridges ley-nets by beam. Line of sight between attuned casters required. Constant power draw of <b>0.3 thaum</b>.'; 28 + }; 26 29 farcaster = { 27 30 partner = function(pos) 28 31 local tune = sorcery.attunement.verify(pos) 29 32 if not tune then return nil end 30 33 minetest.load_area(tune.partner) 31 34 local vis = false 32 35 local ignored ................................................................................ 78 81 end 79 82 end; 80 83 }; 81 84 attune = { 82 85 class = 'sorcery:farcaster', accepts = 'sorcery:farcaster'; 83 86 source = true, target = true, reciprocal = true; 84 87 }; 88 + recipe = { 89 + note = 'Bridges ley-nets by nonlocality. Power draw increases <b>2 thaum/km</b> in distance between caster units.'; 90 + }; 85 91 farcaster = { 86 92 partner = function(pos) 87 93 local tune = sorcery.attunement.verify(pos) 88 94 if not tune then return nil end 89 95 90 96 return tune.partner 91 97 end;
Modified harvester.lua from [81d31df3a3] to [61997cebcf].
88 88 list[context;charge;2.5,0;3,1;] 89 89 list[current_player;main;0,1.3;8,4;] 90 90 listring[] 91 91 ]]) 92 92 end; 93 93 on_metadata_inventory_put = update_inv; 94 94 on_metadata_inventory_move = update_inv; 95 + 96 + _sorcery = { 97 + recipe = { 98 + info = "Standalone recharger for wands, amulets, and enchanted tools that draws on the ambient force from the local leylines"; 99 + }; 100 + }; 95 101 }) 96 102 97 103 minetest.register_craftitem('sorcery:harvester_receptacle', { 98 104 description = 'Harvester Receptacle'; 99 105 inventory_image = 'sorcery_harvester_receptacle.png'; 100 106 }) 101 107 ................................................................................ 107 113 {'stairs:slab_stone','stairs:slab_stone','stairs:slab_stone'}; 108 114 }; 109 115 } 110 116 111 117 minetest.register_craftitem('sorcery:accumulator', { 112 118 description = 'Accumulator'; 113 119 inventory_image = 'sorcery_accumulator.png'; 120 + _sorcery = { 121 + recipe = { 122 + info = 'Captures and channels ambient ley current'; 123 + }; 124 + }; 114 125 }) 115 126 116 127 minetest.register_craft { 117 128 output = 'sorcery:accumulator'; 118 129 recipe = { 119 130 {'default:tin_ingot', 'default:tin_ingot', 'default:tin_ingot'}; 120 131 {'sorcery:gem_amethyst','sorcery:gem_emerald','sorcery:gem_amethyst'};
Modified infuser.lua from [994388d832] to [0d2fb4d9eb].
208 208 "default_bronze_block.png", 209 209 "default_tin_block.png", 210 210 }; 211 211 paramtype2 = 'facedir'; 212 212 groups = { 213 213 cracky = 2, oddly_breakable_by_hand = 1, heavy = 1; 214 214 sorcery_alchemy = 1, sorcery_magitech = 1; 215 + }; 216 + _sorcery = { 217 + recipe = { 218 + note = 'Infuse special ingredients into liquids to create and alter powerful potions'; 219 + }; 215 220 }; 216 221 selection_box = { 217 222 type = 'fixed'; 218 223 fixed = { 219 224 -0.37, -0.5, -0.37, 220 225 0.37, 0.5, 0.37 221 226 };
Modified itemclass.lua from [c60971c6b0] to [25dadd17e3].
42 42 compat = 'grindables'; 43 43 subclass = {'metallic'}; 44 44 conform = { 45 45 metallic = function(m) 46 46 if m and m.data and m.data.parts and m.data.parts.powder then 47 47 return { 48 48 hardness = m.data.hardness; 49 - value = m.value or 1, grindcost = 1; 49 + grindcost = 1; 50 + grindvalue = m.value or 1; 50 51 powder = m.data.parts.powder; 51 52 } 52 53 end 53 54 end; 54 55 }; 55 56 predicate = function(name) 56 57 local def = minetest.registered_items[name]._sorcery 57 58 if not def then return nil end 58 59 def = def.material 59 60 if def and def.grindvalue then 60 - return def end 61 + return { 62 + hardness = def.data.hardness; 63 + grindcost = def.grindcost or 1; 64 + grindvalue = def.grindvalue; 65 + powder = def.powder or def.data.parts.powder; 66 + } 67 + end 61 68 end; 62 69 }; 63 70 metal = { 64 71 predicate = function(name) 65 72 -- metallookup is a table of 'primary' metal 66 73 -- items, like ingots, fragments, and powders 67 74 return sorcery.data.metallookup[name] ................................................................................ 71 78 subclass = {'metal'}; 72 79 predicate = function(name) 73 80 -- matreg is a registry binding crafted items, 74 81 -- like armors and tools, to the material they 75 82 -- are made out of 76 83 local mat = sorcery.matreg.lookup[name] 77 84 if mat and mat.metal then return mat end 85 + local prop = minetest.registered_items[name]._sorcery 86 + if prop and prop.material and prop.material.metal then 87 + return prop.material 88 + end 78 89 end; 79 90 }; 80 91 ore = { 81 92 groups = { 'ore' }; 82 93 compat = 'ore'; 83 94 predicate = function(name) 84 95 -- maybe revise this at some point once sorcery is extricated
Modified leylines.lua from [0e41979f02] to [58178ad533].
61 61 }; 62 62 groups = { 63 63 sorcery_ley_device = 1; 64 64 cracky = 3; 65 65 }; 66 66 _sorcery = { 67 67 ley = { mode = 'signal'; power = 100 }; 68 + recipe = { note = 'Conducts up to <b>100 thaum</b>' }; 68 69 }; 69 70 }) 70 71 minetest.register_craft { 71 72 output = 'sorcery:conduit 4'; 72 73 recipe = { 73 74 {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}; 74 75 {'default:copper_ingot', 'sorcery:electrumblock', 'default:copper_ingot'}; ................................................................................ 160 161 paramtype2 = 'facedir'; 161 162 groups = { 162 163 cracky = 2; 163 164 choppy = 1; 164 165 sorcery_ley_device = 1; 165 166 }; 166 167 _sorcery = { 167 - ley = { mode = 'signal'; power = 50; } 168 + ley = { mode = 'signal'; power = 50 }; 169 + recipe = { note = 'Conducts up to <b>50 thaum</b>' }; 168 170 }; 169 171 tiles = tiles; 170 172 }) 171 173 minetest.register_craft { 172 174 output = id .. ' 4'; 173 175 recipe = { 174 176 {item, 'sorcery:conduit'}; ................................................................................ 206 208 drawtype = 'nodebox'; 207 209 groups = { 208 210 sorcery_ley_device = 1; snappy = 3; attached = 1; 209 211 sorcery_ley_cable = 1; 210 212 }; 211 213 _sorcery = { 212 214 ley = { mode = 'signal', power = metal.conduct }; 213 - recipe = { note = 'Conducts up to ' .. metal.conduct .. ' thaum/sec'; }; 215 + recipe = { note = 'Conducts up to <b>' .. metal.conduct .. ' thaum</b>'; }; 214 216 }; 215 217 sunlight_propagates = true; 216 218 node_box = { 217 219 type = 'connected'; 218 220 disconnected = { -0.05, -0.35, -0.40; 0.05, -0.25, 0.40 }; 219 221 connect_front = { -0.05, -0.35, -0.50; 0.05, -0.25, 0.05 }; 220 222 connect_back = { -0.05, -0.35, -0.05; 0.05, -0.25, 0.50 }; ................................................................................ 320 322 power = function(pos,time) 321 323 return sorcery.ley.field_to_current(sorcery.ley.estimate(pos).force, time); 322 324 end; 323 325 affinity = function(pos) 324 326 return sorcery.ley.estimate(pos).aff 325 327 end; 326 328 }; 329 + recipe = { 330 + note = 'Captures radiant force and suffuses it through distribution net. Energy production varies with local leyline strength.'; 331 + }; 327 332 }; 328 333 }) 329 334 end 330 335 331 336 minetest.register_craft { 332 337 output = 'sorcery:condenser'; 333 338 recipe = { ................................................................................ 784 789 ley = { 785 790 mode = 'produce', affinity = {'praxic'}; 786 791 power = function(pos,delta) 787 792 local meta = minetest.get_meta(pos) 788 793 return meta:get_float('power') * delta; 789 794 end; 790 795 }; 796 + recipe = { 797 + note = 'Temporarily provide up to <b>' ..tostring(constants.generator_max_energy_output) .. ' thaum</b> of ley-force from heat by burning fuel'; 798 + }; 791 799 }; 792 800 }) 793 801 end
Modified lib/tbl.lua from [5997708826] to [5046584198].
55 55 return ks 56 56 end 57 57 58 58 fn.pick = function(lst) 59 59 local keys = fn.keys(lst) 60 60 return keys[math.random(#keys)] 61 61 end 62 + 63 +fn.unpack = function(tbl,i) 64 + if i and #tbl == i then return tbl[i] end 65 + i = i or 1 66 + return tbl[i], fn.unpack(tbl, i+1) 67 +end 68 + 69 +fn.each = function(tbl,fn) 70 + local r = {} 71 + for k,v in pairs(tbl) do 72 + r[#r+1] = fn(v,k) 73 + end 74 + return r 75 +end 76 + 77 +fn.each_o = function(tbl,fn) 78 + local keys = fn.keys(tbl) 79 + table.sort(keys) 80 + return fn.each(keys, function(k,i) 81 + return fn(tbl[k],k,i) 82 + end) 83 +end 84 + 85 +fn.iter = function(tbl,fn) 86 + for i=1,#tbl do 87 + fn(tbl[i], i) 88 + end 89 +end 90 + 91 +fn.map = function(tbl,fn) 92 + local new = {} 93 + for k,v in pairs(tbl) do 94 + local nv, nk = fn(v, k) 95 + new[nk or k] = nv 96 + end 97 + return new 98 +end 99 + 100 +fn.fold = function(tbl,fn,acc) 101 + if #tbl == 0 then 102 + fn.each_o(tbl, function(v) 103 + acc = fn(acc, v, k) 104 + end) 105 + else 106 + for i=0,#tbl do 107 + acc = fn(acc,tbl[i],i) 108 + end 109 + end 110 + return acc 111 +end 62 112 63 113 return fn
Modified metallurgy-cold.lua from [e432fc7b5e] to [c145d6a94a].
345 345 local id = 'sorcery:mill_grindhead_' .. name 346 346 minetest.register_tool(id,{ 347 347 description = sorcery.lib.str.capitalize(name) .. ' Grinding Head'; 348 348 inventory_image = sorcery.lib.image('sorcery_mill_grindhead.png'):multiply(sorcery.lib.color(metal.tone)):render(); 349 349 groups = { sorcery_mill_grindhead = 1, sorcery_metallurgy = 1 }; 350 350 _proto = { 351 351 metal = name; 352 + }; 353 + _sorcery = { 354 + recipe = { 355 + note = 'Needed by mills in order to operate. The stronger the metal, the longer the head lasts, the harder the materials it can pulverize, and the faster it grinds.'; 356 + }; 352 357 }; 353 358 }); 354 359 minetest.register_craft { 355 360 output = id; 356 361 recipe = { 357 362 {f,i,f}; 358 363 {i,'',i};
Modified metallurgy-hot.lua from [222da491b8] to [c9beb59240].
412 412 tiles = { 413 413 'sorcery_smelter_top_' .. tostring(kind.size) .. '.png'; 414 414 'sorcery_smelter_bottom.png'; 415 415 'sorcery_smelter_side.png'; 416 416 'sorcery_smelter_side.png'; 417 417 'sorcery_smelter_side.png'; 418 418 'sorcery_smelter_front' .. ((active and '_hot') or '') .. '.png'; 419 + }; 420 + _sorcery = { 421 + recipe = { 422 + note = 'Smelt alloys from raw metals combined in various ratios'; 423 + }; 419 424 }; 420 425 }) 421 426 end 422 427 minetest.register_craft { 423 428 recipe = recipe; 424 429 output = id; 425 430 }
Added models/sorcery-writing-stand.obj version [67a1cd621a].
1 +# Blender v2.82 (sub 7) OBJ File: 'writing-stand.blend' 2 +# www.blender.org 3 +mtllib sorcery-writing-stand.mtl 4 +o ink_Cube.011 5 +v -0.316540 -0.332319 -0.197674 6 +v -0.339437 -0.332319 -0.153270 7 +v -0.383842 -0.332319 -0.176167 8 +v -0.360945 -0.332319 -0.220572 9 +v -0.316540 -0.339532 -0.197674 10 +v -0.339437 -0.339532 -0.153270 11 +v -0.383842 -0.339532 -0.176167 12 +v -0.360945 -0.339532 -0.220572 13 +vt 1.000000 1.000000 14 +vt 1.000000 0.000000 15 +vt 0.000000 0.000000 16 +vt 0.000000 1.000000 17 +vt 1.000000 1.000000 18 +vt 0.000000 1.000000 19 +vt 0.000000 0.000000 20 +vt 1.000000 0.000000 21 +vn 0.0000 -1.0000 -0.0000 22 +vn 0.0000 1.0000 0.0000 23 +vn 0.4583 0.0000 -0.8888 24 +vn 0.8888 0.0000 0.4583 25 +vn -0.8888 0.0000 -0.4583 26 +vn -0.4583 0.0000 0.8888 27 +g ink_Cube.011_ink 28 +usemtl ink 29 +s off 30 +f 3/1/1 4/2/1 1/3/1 2/4/1 31 +f 7/5/2 6/6/2 5/7/2 8/8/2 32 +f 3/1/3 2/4/3 6/6/3 7/5/3 33 +f 4/2/4 3/1/4 7/5/4 8/8/4 34 +f 2/4/5 1/3/5 5/7/5 6/6/5 35 +f 1/3/6 4/2/6 8/8/6 5/7/6 36 +o wood_Cube.014 37 +v -0.348948 -0.277485 -0.211664 38 +v -0.321989 -0.279657 -0.196141 39 +v -0.355224 -0.292284 -0.202835 40 +v -0.328265 -0.294456 -0.187312 41 +v -0.273207 -0.398159 -0.360099 42 +v -0.246248 -0.400332 -0.344577 43 +v -0.252524 -0.415131 -0.335748 44 +v -0.279483 -0.412958 -0.351270 45 +v -0.345859 -0.280020 -0.208026 46 +v -0.326953 -0.281543 -0.197141 47 +v -0.331354 -0.291921 -0.190950 48 +v -0.350260 -0.290398 -0.201835 49 +v 0.025418 -0.500000 0.319472 50 +v -0.006255 -0.500000 0.180570 51 +v 0.147454 -0.500000 0.291645 52 +v 0.115781 -0.500000 0.152743 53 +v 0.115781 -0.468359 0.152743 54 +v -0.006255 -0.468359 0.180570 55 +v 0.025418 -0.468359 0.319472 56 +v 0.147454 -0.468359 0.291645 57 +v 0.096556 -0.468359 0.188214 58 +v 0.026446 -0.468359 0.204201 59 +v 0.044643 -0.468359 0.284001 60 +v 0.114753 -0.468359 0.268015 61 +v 0.096556 -0.179958 0.188214 62 +v 0.026446 -0.179958 0.204201 63 +v 0.044643 -0.179958 0.284001 64 +v 0.114753 -0.179958 0.268015 65 +v 0.114753 -0.377388 0.268015 66 +v 0.114753 -0.458476 0.268015 67 +v 0.096556 -0.458476 0.188214 68 +v 0.096556 -0.377388 0.188214 69 +v 0.110770 -0.395135 0.250550 70 +v 0.110770 -0.440729 0.250550 71 +v 0.100539 -0.440729 0.205679 72 +v 0.100539 -0.395135 0.205679 73 +v 0.145454 -0.179958 0.163194 74 +v -0.028464 -0.179958 0.202852 75 +v -0.004255 -0.179958 0.309022 76 +v 0.169664 -0.179958 0.269364 77 +v 0.145454 -0.126606 0.163194 78 +v -0.028464 -0.036922 0.202852 79 +v -0.004255 0.046263 0.309022 80 +v 0.169664 -0.043421 0.269364 81 +v 0.056318 -0.500000 -0.227711 82 +v -0.117600 -0.500000 -0.188054 83 +v -0.093391 -0.500000 -0.081884 84 +v 0.080528 -0.500000 -0.121541 85 +v 0.056319 -0.431639 -0.227711 86 +v -0.117600 -0.341955 -0.188054 87 +v -0.093391 -0.258770 -0.081884 88 +v 0.080528 -0.348454 -0.121541 89 +v 0.155509 -0.440729 0.240348 90 +v 0.200247 -0.440729 0.230147 91 +v 0.190016 -0.440729 0.185277 92 +v 0.145277 -0.440729 0.195478 93 +v 0.155509 -0.395135 0.240348 94 +v 0.200247 -0.395135 0.230147 95 +v 0.145277 -0.395135 0.195478 96 +v 0.190015 -0.395135 0.185277 97 +v 0.073362 -0.440729 -0.119907 98 +v 0.073362 -0.395135 -0.119907 99 +v 0.080528 -0.440729 -0.121541 100 +v 0.080528 -0.395135 -0.121541 101 +v 0.118100 -0.395135 -0.130108 102 +v 0.118100 -0.440729 -0.130108 103 +v 0.056319 -0.459216 -0.227711 104 +v 0.056319 -0.482622 -0.227711 105 +v -0.117600 -0.460428 -0.188054 106 +v -0.117600 -0.407126 -0.188054 107 +v -0.093391 -0.358359 -0.081884 108 +v -0.093391 -0.439649 -0.081884 109 +v 0.046967 -0.459216 -0.257427 110 +v 0.042793 -0.482622 -0.275730 111 +v -0.135573 -0.460428 -0.278169 112 +v -0.131399 -0.407126 -0.259866 113 +v 0.043006 -0.459216 -0.291300 114 +v 0.043006 -0.482622 -0.291300 115 +v -0.135360 -0.460428 -0.293739 116 +v -0.135360 -0.407126 -0.293739 117 +v 0.050708 -0.430911 -0.277148 118 +v -0.127658 -0.378822 -0.279588 119 +v 0.051271 -0.430911 -0.291187 120 +v -0.127095 -0.378822 -0.293626 121 +v 0.041878 -0.500000 -0.291042 122 +v -0.141385 -0.500000 -0.292365 123 +v 0.485994 -0.500000 0.214450 124 +v 0.454321 -0.500000 0.075548 125 +v 0.363958 -0.500000 0.242277 126 +v 0.332285 -0.500000 0.103375 127 +v 0.332285 -0.468359 0.103375 128 +v 0.454321 -0.468359 0.075548 129 +v 0.485994 -0.468359 0.214450 130 +v 0.363958 -0.468359 0.242277 131 +v 0.364986 -0.468359 0.127006 132 +v 0.435096 -0.468359 0.111019 133 +v 0.453293 -0.468359 0.190819 134 +v 0.383183 -0.468359 0.206806 135 +v 0.364986 -0.179958 0.127006 136 +v 0.435096 -0.179958 0.111019 137 +v 0.453293 -0.179958 0.190819 138 +v 0.383183 -0.179958 0.206806 139 +v 0.383183 -0.377388 0.206806 140 +v 0.383183 -0.458476 0.206806 141 +v 0.364986 -0.458476 0.127006 142 +v 0.364986 -0.377388 0.127006 143 +v 0.379200 -0.395135 0.189341 144 +v 0.379200 -0.440729 0.189341 145 +v 0.368969 -0.440729 0.144471 146 +v 0.368969 -0.395135 0.144471 147 +v 0.244985 -0.395135 0.219945 148 +v 0.244985 -0.440729 0.219945 149 +v 0.234754 -0.440729 0.175075 150 +v 0.234754 -0.395135 0.175075 151 +v 0.310076 -0.179958 0.125656 152 +v 0.483994 -0.179958 0.085999 153 +v 0.508203 -0.179958 0.192169 154 +v 0.334285 -0.179958 0.231827 155 +v 0.310076 -0.126606 0.125656 156 +v 0.483994 -0.036922 0.085999 157 +v 0.508203 0.046263 0.192169 158 +v 0.334285 -0.043421 0.231827 159 +v 0.251974 -0.179958 0.250595 160 +v 0.227765 -0.179958 0.144425 161 +v 0.251974 -0.086934 0.250595 162 +v 0.227765 -0.170899 0.144425 163 +v 0.220940 -0.500000 -0.265249 164 +v 0.394858 -0.500000 -0.304906 165 +v 0.419068 -0.500000 -0.198736 166 +v 0.245149 -0.500000 -0.159079 167 +v 0.220940 -0.431639 -0.265249 168 +v 0.394858 -0.341955 -0.304906 169 +v 0.419068 -0.258770 -0.198736 170 +v 0.245149 -0.348454 -0.159079 171 +v 0.162839 -0.500000 -0.140310 172 +v 0.138629 -0.500000 -0.246480 173 +v 0.162839 -0.391967 -0.140310 174 +v 0.138629 -0.475931 -0.246480 175 +v 0.334462 -0.440729 0.199543 176 +v 0.289724 -0.440729 0.209744 177 +v 0.279492 -0.440729 0.164874 178 +v 0.324230 -0.440729 0.154672 179 +v 0.334462 -0.395135 0.199543 180 +v 0.289724 -0.395135 0.209744 181 +v 0.324230 -0.395135 0.154672 182 +v 0.279492 -0.395135 0.164874 183 +v 0.252315 -0.440729 -0.160713 184 +v 0.252315 -0.395135 -0.160713 185 +v 0.245149 -0.440729 -0.159079 186 +v 0.245149 -0.395135 -0.159079 187 +v 0.207577 -0.395135 -0.150511 188 +v 0.207577 -0.440729 -0.150511 189 +v 0.220940 -0.459215 -0.265249 190 +v 0.220940 -0.482622 -0.265249 191 +v 0.394858 -0.460428 -0.304906 192 +v 0.394858 -0.407126 -0.304906 193 +v 0.419068 -0.358359 -0.198736 194 +v 0.419068 -0.439649 -0.198736 195 +v 0.162839 -0.473265 -0.140310 196 +v 0.162839 -0.437254 -0.140310 197 +v 0.138629 -0.486021 -0.246480 198 +v 0.138629 -0.494044 -0.246480 199 +v 0.216485 -0.459216 -0.296081 200 +v 0.212312 -0.482622 -0.314384 201 +v 0.371989 -0.460428 -0.393905 202 +v 0.376162 -0.407126 -0.375602 203 +v 0.205370 -0.459215 -0.328323 204 +v 0.205370 -0.482622 -0.328323 205 +v 0.365047 -0.460428 -0.407844 206 +v 0.365047 -0.407126 -0.407844 207 +v 0.204564 -0.430911 -0.312231 208 +v 0.364241 -0.378822 -0.391752 209 +v 0.197972 -0.430911 -0.324638 210 +v 0.357649 -0.378822 -0.404159 211 +v 0.206499 -0.500000 -0.328580 212 +v 0.371073 -0.500000 -0.409218 213 +vt 0.424217 -0.000000 214 +vt 0.424217 1.000000 215 +vt 0.575783 1.000000 216 +vt 0.575783 -0.000000 217 +vt 0.455431 -0.000000 218 +vt 0.455431 1.000000 219 +vt 0.544569 1.000000 220 +vt 0.544569 -0.000000 221 +vt 0.575783 -0.000000 222 +vt 0.575783 1.000000 223 +vt 0.424217 1.000000 224 +vt 0.424217 -0.000000 225 +vt 0.544569 -0.000000 226 +vt 0.544569 1.000000 227 +vt 0.455431 1.000000 228 +vt 0.455431 -0.000000 229 +vt 0.544569 0.424217 230 +vt 0.544569 0.575783 231 +vt 0.531255 0.553144 232 +vt 0.531255 0.446856 233 +vt 0.455431 0.575783 234 +vt 0.455431 0.424217 235 +vt 0.468745 0.446856 236 +vt 0.468745 0.553144 237 +vt 0.407565 1.427836 238 +vt 0.407565 1.202985 239 +vt 0.605112 1.202985 240 +vt 0.605112 1.427836 241 +vt 0.407565 1.202985 242 +vt 0.407565 1.427836 243 +vt 0.449593 1.380000 244 +vt 0.449593 1.250822 245 +vt 0.407565 0.372190 246 +vt 0.605112 0.372190 247 +vt 0.605112 0.422128 248 +vt 0.407565 0.422128 249 +vt 0.605112 0.372190 250 +vt 0.407565 0.372190 251 +vt 0.407565 0.422128 252 +vt 0.605112 0.422128 253 +vt 1.202985 0.372190 254 +vt 1.427836 0.372190 255 +vt 1.427836 0.422128 256 +vt 1.202985 0.422128 257 +vt 1.427836 0.372190 258 +vt 1.202985 0.372190 259 +vt 1.202985 0.422128 260 +vt 1.427836 0.422128 261 +vt 0.449593 0.422128 262 +vt 0.563085 0.422128 263 +vt 0.563085 0.877301 264 +vt 0.449593 0.877301 265 +vt 0.449593 0.565705 266 +vt 0.449593 0.437726 267 +vt 0.605112 1.427836 268 +vt 0.605112 1.202985 269 +vt 0.563085 1.250822 270 +vt 0.563085 1.380000 271 +vt 0.449593 1.380000 272 +vt 0.563085 1.380000 273 +vt 0.647106 1.401343 274 +vt 0.365571 1.401343 275 +vt 0.563085 0.422128 276 +vt 0.449593 0.422128 277 +vt 0.449593 0.437726 278 +vt 0.449593 0.565705 279 +vt 0.449593 0.877301 280 +vt 0.563085 0.877301 281 +vt 1.250822 0.565705 282 +vt 1.380000 0.565705 283 +vt 1.380000 0.877301 284 +vt 1.250822 0.877301 285 +vt 1.380000 0.422128 286 +vt 1.250822 0.422128 287 +vt 1.250822 0.877301 288 +vt 1.380000 0.877301 289 +vt 1.250822 0.422128 290 +vt 1.380000 0.422128 291 +vt 1.380000 0.437726 292 +vt 1.250822 0.437726 293 +vt 1.351728 0.465735 294 +vt 1.279093 0.465735 295 +vt 0.304750 1.279093 296 +vt 0.304750 1.351728 297 +vt 0.232329 1.351728 298 +vt 0.232329 1.279093 299 +vt 1.279093 0.537695 300 +vt 1.351728 0.537695 301 +vt 0.304750 0.465735 302 +vt 0.304750 0.537695 303 +vt 0.232329 0.537695 304 +vt 0.232329 0.465735 305 +vt 0.304750 1.351728 306 +vt 0.304750 1.279093 307 +vt 0.232329 1.279093 308 +vt 0.232329 1.351728 309 +vt 0.304750 0.537695 310 +vt 0.304750 0.465735 311 +vt 0.232329 0.465735 312 +vt 0.232329 0.537695 313 +vt 0.365571 1.229478 314 +vt 0.232329 1.401343 315 +vt 0.232329 1.229478 316 +vt 0.563085 1.250822 317 +vt 0.449593 1.250822 318 +vt 0.647106 1.229478 319 +vt 0.365571 1.401343 320 +vt 0.647106 1.401343 321 +vt 0.647106 1.229478 322 +vt 0.365571 1.229478 323 +vt 1.401343 0.877301 324 +vt 1.229478 0.877301 325 +vt 1.229478 1.105982 326 +vt 1.401343 1.238500 327 +vt 0.365571 0.877301 328 +vt 0.647106 0.877301 329 +vt 0.647106 1.238500 330 +vt 0.365571 1.096955 331 +vt 0.647106 0.877301 332 +vt 0.365571 0.877301 333 +vt 0.365571 0.964437 334 +vt 0.647106 1.105982 335 +vt 0.232329 1.024115 336 +vt 0.232329 0.877301 337 +vt 0.232329 0.877301 338 +vt 0.232329 0.891598 339 +vt 0.232329 1.229478 340 +vt 0.232329 1.401343 341 +vt 0.365571 0.596692 342 +vt 0.647106 0.596692 343 +vt 0.647106 0.768557 344 +vt 0.365571 0.768557 345 +vt 0.232329 0.768557 346 +vt 0.232329 0.596692 347 +vt 0.365571 0.768557 348 +vt 0.647106 0.768557 349 +vt 0.647106 0.596692 350 +vt 0.365571 0.596692 351 +vt 0.768557 0.595737 352 +vt 0.596692 0.518769 353 +vt 0.596692 0.624561 354 +vt 0.768557 0.757079 355 +vt 0.365571 0.372190 356 +vt 0.365571 0.465735 357 +vt 0.377171 0.465735 358 +vt 0.377171 0.537695 359 +vt 0.365571 0.537695 360 +vt 0.365571 0.615534 361 +vt 0.647106 0.757079 362 +vt 0.647106 0.595737 363 +vt 0.647106 0.467441 364 +vt 0.647106 0.372190 365 +vt 0.647106 0.518769 366 +vt 0.365571 0.436559 367 +vt 0.365571 0.483016 368 +vt 0.647106 0.624561 369 +vt 0.232329 0.372190 370 +vt 0.232329 0.414386 371 +vt 0.232329 0.471221 372 +vt 0.232329 0.542695 373 +vt 0.304750 0.537695 374 +vt 0.304750 0.465735 375 +vt 0.365571 0.399617 376 +vt 0.365571 0.372190 377 +vt 0.232329 0.372190 378 +vt 0.232329 0.381591 379 +vt 0.232329 0.596692 380 +vt 0.232329 0.768557 381 +vt 0.449593 0.537695 382 +vt 0.449593 0.465735 383 +vt 0.377171 0.465735 384 +vt 0.377171 0.537695 385 +vt 1.279093 0.465735 386 +vt 1.279093 0.537695 387 +vt 0.768557 0.537695 388 +vt 0.768557 0.465735 389 +vt 0.449593 1.351728 390 +vt 0.449593 1.279093 391 +vt 0.377171 1.279093 392 +vt 0.377171 1.351728 393 +vt 0.449593 0.465735 394 +vt 0.449593 0.537695 395 +vt 0.377171 0.537695 396 +vt 0.377171 0.465735 397 +vt 0.449593 1.279093 398 +vt 0.449593 1.351728 399 +vt 0.377171 1.351728 400 +vt 0.377171 1.279093 401 +vt 0.377171 0.768557 402 +vt 0.365571 0.768557 403 +vt 0.304750 0.768557 404 +vt 0.304750 0.768557 405 +vt 0.365571 0.768557 406 +vt 0.377171 0.768557 407 +vt 1.279093 0.537695 408 +vt 1.279093 0.465735 409 +vt 0.768557 0.465735 410 +vt 0.768557 0.537695 411 +vt 0.232329 0.394253 412 +vt 0.232329 0.410177 413 +vt 0.647106 0.372190 414 +vt 0.647106 0.434646 415 +vt 0.596692 0.434646 416 +vt 0.451720 0.434646 417 +vt 0.481348 0.518769 418 +vt 0.768557 0.372190 419 +vt 0.596692 0.372190 420 +vt 0.768557 0.467441 421 +vt 0.647106 0.427836 422 +vt 0.365571 0.494173 423 +vt 0.596692 0.399617 424 +vt 0.596692 0.436559 425 +vt 0.547686 0.436559 426 +vt 0.518057 0.399617 427 +vt 0.365571 0.596692 428 +vt 0.647106 0.596692 429 +vt 0.643142 0.481348 430 +vt 0.369535 0.547686 431 +vt 0.637352 0.434646 432 +vt 0.363744 0.399617 433 +vt 0.363744 0.436559 434 +vt 0.637352 0.518769 435 +vt 0.494173 0.436559 436 +vt 0.494173 0.399617 437 +vt 0.351067 0.481231 438 +vt 0.624674 0.563441 439 +vt 0.427836 0.434646 440 +vt 0.427836 0.518769 441 +vt 0.356858 0.518652 442 +vt 0.630465 0.452314 443 +vt 0.624674 0.430910 444 +vt 0.351067 0.497247 445 +vt 0.369535 0.436559 446 +vt 0.643142 0.518769 447 +vt 0.630465 0.563441 448 +vt 0.356858 0.481231 449 +vt 0.518652 0.481231 450 +vt 0.497247 0.481231 451 +vt 0.430910 0.563441 452 +vt 0.452314 0.563441 453 +vt 0.647106 0.372190 454 +vt 0.365571 0.372190 455 +vt 0.427836 0.372190 456 +vt 0.596692 0.372190 457 +vt 0.494173 0.372190 458 +vt 0.057094 1.427836 459 +vt -0.140454 1.427836 460 +vt -0.140454 1.202985 461 +vt 0.057094 1.202985 462 +vt 0.057094 1.202985 463 +vt 0.015066 1.250822 464 +vt 0.015066 1.380000 465 +vt 0.057094 1.427836 466 +vt 0.057094 0.372190 467 +vt 0.057094 0.422128 468 +vt -0.140454 0.422128 469 +vt -0.140454 0.372190 470 +vt -0.140454 0.372190 471 +vt -0.140454 0.422128 472 +vt 0.057094 0.422128 473 +vt 0.057094 0.372190 474 +vt 1.202985 0.372190 475 +vt 1.202985 0.422128 476 +vt 1.427836 0.422128 477 +vt 1.427836 0.372190 478 +vt 1.427836 0.372190 479 +vt 1.427836 0.422128 480 +vt 1.202985 0.422128 481 +vt 1.202985 0.372190 482 +vt 0.015066 0.422128 483 +vt 0.015066 0.437726 484 +vt 0.015066 0.565705 485 +vt 0.015066 0.877301 486 +vt -0.098426 0.877301 487 +vt -0.098426 0.422128 488 +vt -0.140454 1.427836 489 +vt -0.098426 1.380000 490 +vt -0.098426 1.250822 491 +vt -0.140454 1.202985 492 +vt 0.015066 1.380000 493 +vt 0.099087 1.401343 494 +vt -0.182447 1.401343 495 +vt -0.098426 1.380000 496 +vt -0.098426 0.422128 497 +vt -0.098426 0.877301 498 +vt 0.015066 0.877301 499 +vt 0.015066 0.565705 500 +vt 0.015066 0.437726 501 +vt 0.015066 0.422128 502 +vt 1.250822 0.565705 503 +vt 1.250822 0.877301 504 +vt 1.380000 0.877301 505 +vt 1.380000 0.565705 506 +vt 1.380000 0.422128 507 +vt 1.380000 0.877301 508 +vt 1.250822 0.877301 509 +vt 1.250822 0.422128 510 +vt 1.250822 0.422128 511 +vt 1.250822 0.437726 512 +vt 1.380000 0.437726 513 +vt 1.380000 0.422128 514 +vt 1.279093 0.465735 515 +vt 1.351728 0.465735 516 +vt 0.159908 1.279093 517 +vt 0.159908 1.351728 518 +vt 1.351728 0.537695 519 +vt 1.279093 0.537695 520 +vt 1.279093 0.465735 521 +vt 1.279093 0.537695 522 +vt 1.351728 0.537695 523 +vt 1.351728 0.465735 524 +vt 0.159908 0.465735 525 +vt 0.159908 0.537695 526 +vt 0.159908 1.351728 527 +vt 0.159908 1.279093 528 +vt 0.159908 0.537695 529 +vt 0.159908 0.465735 530 +vt 0.099087 1.229478 531 +vt -0.098426 1.250822 532 +vt -0.182447 1.229478 533 +vt 0.015066 1.250822 534 +vt 0.099087 1.401343 535 +vt 0.099087 1.229478 536 +vt -0.182447 1.229478 537 +vt -0.182447 1.401343 538 +vt 1.401343 0.877301 539 +vt 1.401343 1.238500 540 +vt 1.229478 1.105982 541 +vt 1.229478 0.877301 542 +vt 0.099087 0.877301 543 +vt 0.099087 1.096955 544 +vt -0.182447 1.238500 545 +vt -0.182447 0.877301 546 +vt -0.182447 0.877301 547 +vt -0.182447 1.105982 548 +vt 0.099087 0.964437 549 +vt 0.099087 0.877301 550 +vt 1.229478 0.877301 551 +vt 1.229478 0.891598 552 +vt 1.401343 1.024115 553 +vt 1.401343 0.877301 554 +vt 0.099087 0.596692 555 +vt 0.099087 0.768557 556 +vt -0.182447 0.768557 557 +vt -0.182447 0.596692 558 +vt 0.099087 0.768557 559 +vt 0.099087 0.596692 560 +vt -0.182447 0.596692 561 +vt -0.182447 0.768557 562 +vt 0.768557 0.595737 563 +vt 0.768557 0.757079 564 +vt 0.596692 0.624561 565 +vt 0.596692 0.518769 566 +vt 0.099087 0.372190 567 +vt -0.182447 0.372190 568 +vt -0.182447 0.467441 569 +vt -0.182447 0.595737 570 +vt -0.182447 0.757079 571 +vt 0.099087 0.615534 572 +vt 0.099087 0.537695 573 +vt 0.087487 0.537695 574 +vt 0.087487 0.465735 575 +vt 0.099087 0.465735 576 +vt -0.182447 0.518769 577 +vt -0.182447 0.624561 578 +vt 0.099087 0.483016 579 +vt 0.099087 0.436559 580 +vt 0.596692 0.394253 581 +vt 0.596692 0.410177 582 +vt 0.768557 0.542695 583 +vt 0.768557 0.471221 584 +vt 0.159908 0.465735 585 +vt 0.159908 0.537695 586 +vt 0.099087 0.399617 587 +vt 0.099087 0.372190 588 +vt 0.015066 0.537695 589 +vt 0.087487 0.537695 590 +vt 0.087487 0.465735 591 +vt 0.015066 0.465735 592 +vt 1.279093 0.465735 593 +vt 0.768557 0.465735 594 +vt 0.768557 0.537695 595 +vt 1.279093 0.537695 596 +vt 0.015066 1.351728 597 +vt 0.087487 1.351728 598 +vt 0.087487 1.279093 599 +vt 0.015066 1.279093 600 +vt 0.015066 0.465735 601 +vt 0.087487 0.465735 602 +vt 0.087487 0.537695 603 +vt 0.015066 0.537695 604 +vt 0.015066 1.279093 605 +vt 0.087487 1.279093 606 +vt 0.087487 1.351728 607 +vt 0.015066 1.351728 608 +vt 0.159908 0.768557 609 +vt 0.099087 0.768557 610 +vt 0.087487 0.768557 611 +vt 0.087487 0.768557 612 +vt 0.099087 0.768557 613 +vt 0.159908 0.768557 614 +vt 1.279093 0.537695 615 +vt 0.768557 0.537695 616 +vt 0.768557 0.465735 617 +vt 1.279093 0.465735 618 +vt 0.596692 0.372190 619 +vt 0.596692 0.381591 620 +vt 0.768557 0.414386 621 +vt 0.768557 0.372190 622 +vt -0.182447 0.372190 623 +vt -0.182447 0.434646 624 +vt 0.481348 0.518769 625 +vt 0.451720 0.434646 626 +vt 0.596692 0.434646 627 +vt 0.768557 0.372190 628 +vt 0.768557 0.467441 629 +vt 0.596692 0.372190 630 +vt 0.099087 0.494173 631 +vt -0.182447 0.427836 632 +vt 0.596692 0.399617 633 +vt 0.518057 0.399617 634 +vt 0.547686 0.436559 635 +vt 0.596692 0.436559 636 +vt 0.099087 0.596692 637 +vt 0.095124 0.547686 638 +vt -0.178483 0.481348 639 +vt -0.182447 0.596692 640 +vt -0.172693 0.434646 641 +vt -0.172693 0.518769 642 +vt 0.100914 0.436559 643 +vt 0.100914 0.399617 644 +vt 0.494173 0.399617 645 +vt 0.494173 0.436559 646 +vt -0.160016 0.563441 647 +vt 0.113592 0.481231 648 +vt 0.427836 0.518769 649 +vt 0.427836 0.434646 650 +vt 0.107801 0.518652 651 +vt 0.113592 0.497247 652 +vt -0.160016 0.430910 653 +vt -0.165806 0.452314 654 +vt 0.095124 0.436559 655 +vt 0.107801 0.481231 656 +vt -0.165806 0.563441 657 +vt -0.178483 0.518769 658 +vt 0.497247 0.481231 659 +vt 0.518652 0.481231 660 +vt 0.452314 0.563441 661 +vt 0.430910 0.563441 662 +vt -0.182447 0.372190 663 +vt 0.099087 0.372190 664 +vt 0.427836 0.372190 665 +vt 0.596692 0.372190 666 +vt 0.494173 0.372190 667 +vn 0.3422 0.8069 -0.4814 668 +vn 0.8645 -0.0697 0.4978 669 +vn -0.3422 -0.8069 0.4814 670 +vn -0.8645 0.0697 -0.4978 671 +vn -0.3681 0.5865 0.7214 672 +vn 0.0000 1.0000 0.0000 673 +vn -0.0000 -1.0000 0.0000 674 +vn -0.2223 0.0000 -0.9750 675 +vn 0.2223 -0.0000 0.9750 676 +vn -0.9750 0.0000 0.2223 677 +vn 0.9750 0.0000 -0.2223 678 +vn -0.2364 -0.7379 0.6321 679 +vn -0.2467 -0.7333 0.6335 680 +vn 0.9813 -0.0054 -0.1925 681 +vn -0.9590 -0.0248 0.2822 682 +vn -0.2769 -0.9588 0.0631 683 +vn -0.0137 -0.0000 0.9999 684 +vn -0.9954 0.0592 0.0754 685 +vn 0.9968 -0.0261 -0.0756 686 +vn -0.2802 -0.9599 -0.0112 687 +vn -0.1499 -0.5518 -0.8204 688 +vn -0.9708 0.2297 0.0689 689 +vn 0.9708 -0.2297 -0.0689 690 +vn 0.0086 -0.0297 -0.9995 691 +vn 0.9886 -0.1501 0.0135 692 +vn 0.9771 -0.0341 -0.2099 693 +vn 0.9667 0.0815 -0.2428 694 +vn -0.9978 0.0646 -0.0136 695 +vn 0.4871 -0.7379 0.4671 696 +vn 0.4969 -0.7333 0.4640 697 +vn -0.9677 -0.0054 0.2519 698 +vn 0.9866 -0.0248 -0.1614 699 +vn 0.2769 -0.9588 -0.0631 700 +vn 0.4458 -0.0000 0.8951 701 +vn 0.9297 0.0592 -0.3635 702 +vn -0.9310 -0.0261 0.3640 703 +vn 0.2476 -0.9599 -0.1316 704 +vn -0.2205 -0.5518 -0.8043 705 +vn 0.9047 0.2297 -0.3588 706 +vn -0.9047 -0.2297 0.3588 707 +vn -0.4410 -0.0297 -0.8970 708 +vn -0.8850 -0.1501 0.4407 709 +vn -0.9715 -0.0341 0.2345 710 +vn -0.9763 0.0815 0.2003 711 +vn 0.8933 0.0646 -0.4449 712 +vn 0.3681 -0.5865 -0.7214 713 +g wood_Cube.014_wood.001 714 +usemtl wood.001 715 +s off 716 +f 13/9/7 9/10/7 10/11/7 14/12/7 717 +f 14/13/8 10/14/8 12/15/8 15/16/8 718 +f 15/17/9 12/18/9 11/19/9 16/20/9 719 +f 16/21/10 11/22/10 9/23/10 13/24/10 720 +f 11/25/11 12/26/11 19/27/11 20/28/11 721 +f 10/29/11 9/30/11 17/31/11 18/32/11 722 +f 9/30/11 11/25/11 20/28/11 17/31/11 723 +f 12/26/11 10/29/11 18/32/11 19/27/11 724 +f 23/33/12 24/34/12 22/35/12 21/36/12 725 +f 25/37/13 28/38/13 32/39/13 29/40/13 726 +f 23/41/14 21/42/14 27/43/14 28/44/14 727 +f 22/45/15 24/46/15 25/47/15 26/48/15 728 +f 24/49/16 23/50/16 28/51/16 25/52/16 729 +f 21/53/17 22/54/17 26/55/17 27/56/17 730 +f 32/57/14 31/58/14 35/59/14 36/60/14 37/61/14 38/62/14 731 +f 27/63/13 26/64/13 30/65/13 31/66/13 732 +f 28/38/13 27/63/13 31/66/13 32/39/13 733 +f 26/64/13 25/37/13 29/40/13 30/65/13 734 +f 36/67/12 35/68/12 47/69/12 48/70/12 735 +f 30/71/15 29/72/15 39/73/15 40/74/15 33/75/15 34/76/15 736 +f 40/77/16 37/78/16 36/79/16 33/80/16 737 +f 31/81/17 30/82/17 34/83/17 35/84/17 738 +f 29/85/16 32/86/16 38/87/16 39/88/16 739 +f 39/88/16 38/87/16 42/89/16 43/90/16 740 +f 63/91/12 62/92/12 120/93/12 121/94/12 741 +f 37/78/16 40/77/16 44/95/16 41/96/16 742 +f 40/77/16 39/88/16 43/90/16 44/95/16 743 +f 38/87/16 37/78/16 41/96/16 42/89/16 744 +f 62/97/14 66/98/14 119/99/14 120/100/14 745 +f 66/101/13 68/102/13 122/103/13 119/104/13 746 +f 68/105/15 63/106/15 121/107/15 122/108/15 747 +f 45/109/12 48/70/12 131/110/12 132/111/12 748 +f 34/112/12 33/113/12 45/109/12 46/114/12 749 +f 33/113/12 36/67/12 48/70/12 45/109/12 750 +f 35/68/12 34/112/12 46/114/12 47/69/12 751 +f 52/115/18 51/116/18 50/117/18 49/118/18 752 +f 47/119/17 46/120/17 50/121/17 51/122/17 753 +f 48/123/14 47/124/14 51/125/14 52/126/14 754 +f 46/127/15 45/128/15 49/129/15 50/130/15 755 +f 48/123/14 52/126/14 133/131/14 131/132/14 756 +f 49/129/15 45/128/15 132/133/15 134/134/15 757 +f 52/115/19 49/118/19 134/135/19 133/136/19 758 +f 53/137/12 54/138/12 55/139/12 56/140/12 759 +f 53/137/12 56/140/12 143/141/12 144/142/12 760 +f 60/143/18 59/144/18 58/145/18 57/146/18 761 +f 79/147/17 78/148/17 58/149/17 59/150/17 762 +f 56/151/15 71/152/15 69/153/15 70/154/15 72/155/15 60/156/15 59/157/15 79/158/15 80/159/15 55/160/15 763 +f 78/161/15 75/162/15 57/163/15 58/164/15 764 +f 56/151/15 143/165/15 167/166/15 168/167/15 145/168/15 60/156/15 72/155/15 73/169/15 74/170/15 71/152/15 765 +f 76/171/15 53/172/15 144/173/15 170/174/15 766 +f 60/143/19 57/146/19 146/175/19 145/176/19 767 +f 44/177/15 43/178/15 64/179/15 67/180/15 768 +f 63/181/16 68/182/16 73/183/16 74/184/16 769 +f 41/185/13 44/186/13 67/187/13 65/188/13 770 +f 65/188/13 67/187/13 68/102/13 66/101/13 771 +f 42/189/14 41/190/14 65/191/14 61/192/14 772 +f 61/192/14 65/191/14 66/98/14 62/97/14 773 +f 43/193/12 42/194/12 61/195/12 64/196/12 774 +f 64/196/12 61/195/12 62/92/12 63/91/12 775 +f 68/102/13 67/187/13 70/197/13 72/198/13 73/199/13 776 +f 64/196/12 63/91/12 74/200/12 71/201/12 69/202/12 777 +f 67/203/17 64/204/17 69/205/17 70/206/17 778 +f 57/163/15 75/162/15 169/207/15 146/208/15 779 +f 75/162/15 76/171/15 170/174/15 169/207/15 780 +f 54/209/15 53/172/15 76/171/15 77/210/15 781 +f 78/148/20 77/211/20 83/212/20 84/213/20 782 +f 55/214/17 54/215/17 77/211/17 80/216/17 783 +f 80/216/17 77/211/17 78/148/17 79/147/17 784 +f 53/137/13 54/138/13 94/217/13 93/218/13 785 +f 76/219/21 75/220/21 81/221/21 82/222/21 786 +f 75/223/22 78/224/22 84/225/22 81/226/22 787 +f 87/227/23 86/228/23 85/229/23 88/230/23 788 +f 82/222/24 81/221/24 85/231/24 86/232/24 789 +f 88/230/23 85/229/23 91/233/23 92/234/23 790 +f 84/213/25 83/212/25 87/235/25 88/236/25 791 +f 89/237/26 90/238/26 92/239/26 91/240/26 792 +f 81/241/27 84/242/27 90/243/27 89/244/27 793 +f 85/231/28 81/221/28 89/245/28 91/246/28 794 +f 84/213/29 88/236/29 92/247/29 90/248/29 795 +f 94/249/30 87/227/30 86/228/30 93/250/30 796 +f 87/235/31 83/212/31 94/251/31 797 +f 54/215/32 94/251/32 83/212/32 77/211/32 798 +f 53/252/33 93/253/33 82/222/33 76/219/33 799 +f 86/232/34 93/253/34 82/222/34 800 +f 97/254/12 95/255/12 96/256/12 98/257/12 801 +f 99/258/13 103/259/13 106/260/13 102/261/13 802 +f 97/262/14 102/263/14 101/264/14 95/265/14 803 +f 96/266/15 100/267/15 99/268/15 98/269/15 804 +f 98/270/17 99/271/17 102/272/17 97/273/17 805 +f 95/274/16 101/275/16 100/276/16 96/277/16 806 +f 106/278/14 112/279/14 111/280/14 110/281/14 109/282/14 105/283/14 807 +f 101/284/13 105/285/13 104/286/13 100/287/13 808 +f 102/261/13 106/260/13 105/285/13 101/284/13 809 +f 100/287/13 104/286/13 103/259/13 99/258/13 810 +f 110/288/12 126/289/12 125/290/12 109/291/12 811 +f 104/292/15 108/293/15 107/294/15 114/295/15 113/296/15 103/297/15 812 +f 114/298/17 107/299/17 110/300/17 111/301/17 813 +f 105/302/16 109/303/16 108/304/16 104/305/16 814 +f 103/306/17 113/307/17 112/308/17 106/309/17 815 +f 113/307/17 117/310/17 116/311/17 112/308/17 816 +f 149/312/12 121/94/12 120/93/12 148/313/12 817 +f 111/301/17 115/314/17 118/315/17 114/298/17 818 +f 114/298/17 118/315/17 117/310/17 113/307/17 819 +f 112/308/17 116/311/17 115/314/17 111/301/17 820 +f 121/316/17 122/317/17 119/318/17 120/319/17 821 +f 148/320/14 120/100/14 119/99/14 152/321/14 822 +f 152/322/13 119/104/13 122/103/13 154/323/13 823 +f 154/324/15 122/108/15 121/107/15 149/325/15 824 +f 123/326/12 132/111/12 131/110/12 126/289/12 825 +f 108/327/12 124/328/12 123/326/12 107/329/12 826 +f 107/329/12 123/326/12 126/289/12 110/288/12 827 +f 109/291/12 125/290/12 124/328/12 108/327/12 828 +f 130/330/35 127/331/35 128/332/35 129/333/35 829 +f 125/334/16 129/335/16 128/336/16 124/337/16 830 +f 126/338/14 130/339/14 129/340/14 125/341/14 831 +f 124/342/15 128/343/15 127/344/15 123/345/15 832 +f 132/346/17 134/347/17 133/348/17 131/349/17 833 +f 126/338/14 131/132/14 133/131/14 130/339/14 834 +f 127/344/15 134/134/15 132/133/15 123/345/15 835 +f 130/330/36 133/136/36 134/135/36 127/331/36 836 +f 135/350/12 138/351/12 137/352/12 136/353/12 837 +f 135/350/12 144/142/12 143/141/12 138/351/12 838 +f 142/354/35 139/355/35 140/356/35 141/357/35 839 +f 165/358/16 141/359/16 140/360/16 164/361/16 840 +f 138/362/15 137/363/15 166/364/15 165/365/15 141/366/15 142/367/15 158/368/15 156/369/15 155/370/15 157/371/15 841 +f 164/372/15 140/373/15 139/374/15 161/375/15 842 +f 169/376/17 146/377/17 145/378/17 168/379/17 843 +f 138/362/15 157/371/15 160/380/15 159/381/15 158/368/15 142/367/15 145/168/15 168/167/15 167/166/15 143/165/15 844 +f 162/382/15 170/174/15 144/173/15 135/383/15 845 +f 142/354/36 145/176/36 146/175/36 139/355/36 846 +f 118/384/15 153/385/15 150/386/15 117/387/15 847 +f 149/388/17 160/389/17 159/390/17 154/391/17 848 +f 115/392/13 151/393/13 153/394/13 118/395/13 849 +f 151/393/13 152/322/13 154/323/13 153/394/13 850 +f 116/396/14 147/397/14 151/398/14 115/399/14 851 +f 147/397/14 148/320/14 152/321/14 151/398/14 852 +f 117/400/12 150/401/12 147/402/12 116/403/12 853 +f 150/401/12 149/312/12 148/313/12 147/402/12 854 +f 154/323/13 159/404/13 158/405/13 156/406/13 153/394/13 855 +f 150/401/12 155/407/12 157/408/12 160/409/12 149/312/12 856 +f 153/410/16 156/411/16 155/412/16 150/413/16 857 +f 139/374/15 146/208/15 169/207/15 161/375/15 858 +f 161/375/15 169/207/15 170/174/15 162/382/15 859 +f 144/414/17 170/415/17 167/416/17 143/417/17 860 +f 170/415/17 169/376/17 168/379/17 167/416/17 861 +f 136/418/15 163/419/15 162/382/15 135/383/15 862 +f 164/361/37 174/420/37 173/421/37 163/422/37 863 +f 137/423/16 166/424/16 163/422/16 136/425/16 864 +f 166/424/16 165/358/16 164/361/16 163/422/16 865 +f 135/350/13 183/426/13 184/427/13 136/353/13 866 +f 162/428/38 172/429/38 171/430/38 161/431/38 867 +f 161/432/39 171/433/39 174/434/39 164/435/39 868 +f 177/436/40 178/437/40 175/438/40 176/439/40 869 +f 172/429/41 176/440/41 175/441/41 171/430/41 870 +f 178/437/40 182/442/40 181/443/40 175/438/40 871 +f 174/420/42 178/444/42 177/445/42 173/421/42 872 +f 179/446/43 181/447/43 182/448/43 180/449/43 873 +f 171/450/44 179/451/44 180/452/44 174/453/44 874 +f 175/441/45 181/454/45 179/455/45 171/430/45 875 +f 174/420/46 180/456/46 182/457/46 178/444/46 876 +f 184/458/47 183/459/47 176/439/47 177/436/47 877 +f 177/445/48 184/460/48 173/421/48 878 +f 136/425/49 163/422/49 173/421/49 184/460/49 879 +f 135/461/50 162/428/50 172/429/50 183/462/50 880 +f 176/440/51 172/429/51 183/462/51 881 +f 16/20/52 13/9/52 14/13/52 15/17/52 882 +f 17/31/11 20/28/11 19/27/11 18/32/11 883 +o gold_Cube.015 884 +v -0.273207 -0.398159 -0.360099 885 +v -0.246248 -0.400332 -0.344577 886 +v -0.252524 -0.415131 -0.335748 887 +v -0.279483 -0.412958 -0.351270 888 +v -0.192325 -0.481063 -0.444578 889 +v -0.223545 -0.478547 -0.462554 890 +v -0.243622 -0.399334 -0.344048 891 +v -0.198996 -0.499335 -0.434146 892 +v -0.250890 -0.416472 -0.333824 893 +v -0.230216 -0.496819 -0.452121 894 +v -0.282109 -0.413956 -0.351799 895 +v -0.274841 -0.396818 -0.362023 896 +v -0.244824 -0.499368 -0.220592 897 +v -0.244824 -0.342933 -0.220592 898 +v -0.316520 -0.499368 -0.081554 899 +v -0.316520 -0.342933 -0.081554 900 +v -0.383862 -0.499368 -0.292288 901 +v -0.383862 -0.342933 -0.292288 902 +v -0.455558 -0.499368 -0.153250 903 +v -0.455558 -0.342933 -0.153250 904 +v -0.290427 -0.342933 -0.206019 905 +v -0.331093 -0.342933 -0.127157 906 +v -0.409954 -0.342933 -0.167823 907 +v -0.369289 -0.342933 -0.246684 908 +v -0.290427 -0.316475 -0.206019 909 +v -0.331093 -0.316475 -0.127157 910 +v -0.409954 -0.316475 -0.167823 911 +v -0.369289 -0.316475 -0.246684 912 +v -0.316540 -0.316475 -0.197674 913 +v -0.339437 -0.316475 -0.153270 914 +v -0.383842 -0.316475 -0.176167 915 +v -0.360945 -0.316475 -0.220572 916 +v -0.316540 -0.332319 -0.197674 917 +v -0.339437 -0.332319 -0.153270 918 +v -0.383842 -0.332319 -0.176167 919 +v -0.360945 -0.332319 -0.220572 920 +v -0.316540 -0.425754 -0.197674 921 +v -0.339437 -0.425754 -0.153270 922 +v -0.383842 -0.425754 -0.176167 923 +v -0.360945 -0.425754 -0.220572 924 +vt 0.544569 0.575783 925 +vt 0.544569 0.424217 926 +vt 0.551613 0.412241 927 +vt 0.551613 0.587759 928 +vt 0.455431 0.424217 929 +vt 0.455431 0.575783 930 +vt 0.448387 0.587759 931 +vt 0.448387 0.412241 932 +vt 0.576208 0.000000 933 +vt 0.576208 1.000000 934 +vt 0.423792 1.000000 935 +vt 0.423792 0.000000 936 +vt 0.629579 0.000000 937 +vt 0.629579 1.000000 938 +vt 0.370421 1.000000 939 +vt 0.370421 0.000000 940 +vt 0.423792 0.000000 941 +vt 0.423792 1.000000 942 +vt 0.576208 1.000000 943 +vt 0.576208 0.000000 944 +vt 0.370421 0.000000 945 +vt 0.370421 1.000000 946 +vt 0.629579 1.000000 947 +vt 0.629579 0.000000 948 +vt 0.393131 0.671643 949 +vt 0.606869 0.678412 950 +vt 0.606869 0.328357 951 +vt 0.393131 0.321588 952 +vt 0.000000 0.000000 953 +vt 0.000000 1.000000 954 +vt 1.000000 1.000000 955 +vt 1.000000 0.000000 956 +vt 0.000000 0.000000 957 +vt 0.000000 1.000000 958 +vt 1.000000 1.000000 959 +vt 1.000000 0.000000 960 +vt 0.000000 1.000000 961 +vt 0.000000 0.000000 962 +vt 1.000000 0.000000 963 +vt 1.000000 1.000000 964 +vt 0.072331 0.927669 965 +vt 0.927669 0.927669 966 +vt 0.927669 0.072331 967 +vt 0.072331 0.072331 968 +vt 0.000000 0.000000 969 +vt 0.216403 0.216403 970 +vt 0.216403 0.783597 971 +vt 0.000000 0.350907 972 +vt 1.000000 0.350907 973 +vt 1.000000 0.649093 974 +vt 0.000000 0.649093 975 +vt 1.000000 0.000000 976 +vt 0.783597 0.216403 977 +vt 0.783597 0.783597 978 +vt 1.000000 0.000000 979 +vt 1.000000 1.000000 980 +vt 0.781535 0.781535 981 +vt 0.781535 0.218465 982 +vt 1.000000 0.350907 983 +vt 0.000000 0.350907 984 +vt 0.000000 0.649093 985 +vt 1.000000 0.649093 986 +vt 0.000000 0.350907 987 +vt 0.000000 0.649093 988 +vt 1.000000 0.350907 989 +vt 1.000000 0.649093 990 +vt 1.000000 0.658562 991 +vt 0.000000 0.658562 992 +vt 0.000000 0.341438 993 +vt 1.000000 0.341438 994 +vt 0.000000 1.000000 995 +vt 0.000000 0.000000 996 +vt 0.218465 0.218465 997 +vt 0.218465 0.781535 998 +vt 1.000000 0.658562 999 +vt 1.000000 0.341438 1000 +vt 1.000000 0.658562 1001 +vt 0.000000 0.658562 1002 +vt 0.000000 0.341438 1003 +vt 1.000000 0.341438 1004 +vt 0.000000 0.658562 1005 +vt 0.000000 0.341438 1006 +vt 0.000000 0.341438 1007 +vt 1.000000 0.341438 1008 +vt 0.000000 0.341438 1009 +vt 0.000000 0.341438 1010 +vt 1.000000 0.341438 1011 +vt 1.000000 0.341438 1012 +vn -0.3681 0.5865 0.7214 1013 +vn -0.3681 0.5865 0.7215 1014 +vn -0.8690 0.0552 -0.4917 1015 +vn -0.3443 -0.8035 0.4856 1016 +vn 0.8690 -0.0552 0.4917 1017 +vn 0.3422 0.8069 -0.4814 1018 +vn 0.3793 -0.5593 -0.7371 1019 +vn 0.8888 0.0000 0.4583 1020 +vn -0.4583 -0.0000 0.8888 1021 +vn -0.8888 -0.0000 -0.4583 1022 +vn 0.4583 0.0000 -0.8888 1023 +vn 0.0000 -1.0000 0.0000 1024 +vn 0.0000 1.0000 0.0000 1025 +g gold_Cube.015_gold 1026 +usemtl gold 1027 +s off 1028 +f 187/463/53 188/464/53 195/465/53 193/466/53 1029 +f 185/467/54 186/468/54 191/469/54 196/470/54 1030 +f 188/464/53 185/467/53 196/470/53 195/465/53 1031 +f 194/471/55 195/472/55 196/473/55 190/474/55 1032 +f 192/475/56 193/476/56 195/477/56 194/478/56 1033 +f 189/479/57 191/480/57 193/481/57 192/482/57 1034 +f 190/483/58 196/484/58 191/485/58 189/486/58 1035 +f 186/468/53 187/463/53 193/466/53 191/469/53 1036 +f 189/487/59 192/488/59 194/489/59 190/490/59 1037 +f 197/491/60 198/492/60 200/493/60 199/494/60 1038 +f 199/495/61 200/496/61 204/497/61 203/498/61 1039 +f 203/498/62 204/497/62 202/499/62 201/500/62 1040 +f 201/501/63 202/502/63 198/492/63 197/491/63 1041 +f 199/503/64 203/504/64 201/505/64 197/506/64 1042 +f 200/496/65 198/507/65 205/508/65 206/509/65 1043 +f 205/510/63 208/511/63 212/512/63 209/513/63 1044 +f 198/507/65 202/514/65 208/515/65 205/508/65 1045 +f 204/497/65 200/496/65 206/509/65 207/516/65 1046 +f 202/514/65 204/497/65 207/516/65 208/515/65 1047 +f 212/517/65 211/518/65 215/519/65 216/520/65 1048 +f 207/521/61 206/522/61 210/523/61 211/524/61 1049 +f 208/525/62 207/521/62 211/524/62 212/526/62 1050 +f 206/527/60 205/510/60 209/513/60 210/528/60 1051 +f 214/529/62 213/530/62 217/531/62 218/532/62 1052 +f 210/533/65 209/534/65 213/535/65 214/536/65 1053 +f 209/534/65 212/517/65 216/520/65 213/535/65 1054 +f 211/518/65 210/533/65 214/536/65 215/519/65 1055 +f 213/530/61 216/537/61 220/538/61 217/531/61 1056 +f 215/539/63 214/540/63 218/541/63 219/542/63 1057 +f 216/543/60 215/539/60 219/542/60 220/544/60 1058 +f 219/542/63 218/541/63 222/545/63 223/546/63 1059 +f 220/544/60 219/542/60 223/546/60 224/547/60 1060 +f 218/532/62 217/531/62 221/548/62 222/549/62 1061 +f 217/531/61 220/538/61 224/550/61 221/548/61 1062 +f 221/548/65 224/550/65 223/546/65 222/545/65 1063 +f 188/464/53 187/463/53 186/468/53 185/467/53 1064 +o steel_Cube.016 1065 +v -0.345859 -0.280020 -0.208026 1066 +v -0.326953 -0.281543 -0.197141 1067 +v -0.331354 -0.291921 -0.190950 1068 +v -0.350260 -0.290398 -0.201835 1069 +v -0.353622 -0.267651 -0.192812 1070 +v -0.334716 -0.269174 -0.181927 1071 +v -0.339118 -0.279552 -0.175735 1072 +v -0.358023 -0.278029 -0.186620 1073 +v -0.354893 -0.270648 -0.191024 1074 +v -0.335988 -0.272171 -0.180138 1075 +v -0.337846 -0.276555 -0.177523 1076 +v -0.356752 -0.275031 -0.188409 1077 +v -0.361055 -0.257837 -0.173929 1078 +v -0.346108 -0.259041 -0.165323 1079 +v -0.347967 -0.263424 -0.162708 1080 +v -0.362914 -0.262220 -0.171314 1081 +vt 0.753081 -0.031154 1082 +vt 0.246919 -0.031154 1083 +vt 0.246919 0.456970 1084 +vt 0.753081 0.456970 1085 +vt 0.351158 0.246919 1086 +vt 0.648842 0.246919 1087 +vt 0.562862 0.246919 1088 +vt 0.437138 0.246919 1089 +vt 0.351158 -0.031154 1090 +vt 0.648842 -0.031154 1091 +vt 0.648842 0.456970 1092 +vt 0.351158 0.456970 1093 +vt 0.648842 -0.031154 1094 +vt 0.351158 -0.031154 1095 +vt 0.351158 0.456970 1096 +vt 0.648842 0.456970 1097 +vt 0.246919 -0.031154 1098 +vt 0.753081 -0.031154 1099 +vt 0.753081 0.456970 1100 +vt 0.246919 0.456970 1101 +vt 0.246919 0.456970 1102 +vt 0.753081 0.456970 1103 +vt 0.700094 0.968846 1104 +vt 0.299906 0.968846 1105 +vt 0.648842 0.753081 1106 +vt 0.351158 0.753081 1107 +vt 0.437138 0.753081 1108 +vt 0.562862 0.753081 1109 +vt 0.562862 0.700094 1110 +vt 0.437138 0.700094 1111 +vt 0.437138 0.299906 1112 +vt 0.562862 0.299906 1113 +vt 0.753081 0.456970 1114 +vt 0.246919 0.456970 1115 +vt 0.299906 0.968846 1116 +vt 0.700094 0.968846 1117 +vt 0.437138 0.456970 1118 +vt 0.562862 0.456970 1119 +vt 0.562862 0.968846 1120 +vt 0.437138 0.968846 1121 +vt 0.562862 0.456970 1122 +vt 0.437138 0.456970 1123 +vt 0.437138 0.968846 1124 +vt 0.562862 0.968846 1125 +vn 0.3422 0.8069 -0.4814 1126 +vn 0.0000 0.7071 -0.7071 1127 +vn -0.8645 0.0697 -0.4978 1128 +vn 0.8645 -0.0697 0.4978 1129 +vn -0.3422 -0.8069 0.4814 1130 +vn 0.0000 -1.0000 0.0000 1131 +vn -0.3681 0.5865 0.7214 1132 +vn -0.8978 0.1297 -0.4208 1133 +vn 0.8220 -0.0089 0.5694 1134 +vn 0.3681 -0.5865 -0.7214 1135 +g steel_Cube.016_steel 1136 +usemtl steel 1137 +s off 1138 +f 226/551/66 225/552/66 229/553/66 230/554/66 1139 +f 229/555/67 232/556/67 236/557/67 233/558/67 1140 +f 225/559/68 228/560/68 232/561/68 229/562/68 1141 +f 227/563/69 226/564/69 230/565/69 231/566/69 1142 +f 228/567/70 227/568/70 231/569/70 232/570/70 1143 +f 236/571/70 235/572/70 239/573/70 240/574/70 1144 +f 231/575/71 230/576/71 234/577/71 235/578/71 1145 +f 232/556/72 231/575/72 235/578/72 236/557/72 1146 +f 230/576/72 229/555/72 233/558/72 234/577/72 1147 +f 239/579/72 238/580/72 237/581/72 240/582/72 1148 +f 234/583/66 233/584/66 237/585/66 238/586/66 1149 +f 233/587/73 236/588/73 240/589/73 237/590/73 1150 +f 235/591/74 234/592/74 238/593/74 239/594/74 1151 +f 225/559/75 226/564/75 227/568/75 228/560/75 1152 +o book_Cube.017 1153 +v 0.433852 -0.378962 -0.407961 1154 +v 0.566656 0.075573 0.174455 1155 +v 0.421077 -0.361852 -0.418401 1156 +v 0.553881 0.092683 0.164014 1157 +v 0.408630 -0.352919 -0.388531 1158 +v 0.532099 0.069664 0.152943 1159 +v -0.197414 -0.378962 -0.264017 1160 +v -0.064609 0.075573 0.318398 1161 +v 0.135629 -0.481882 -0.259637 1162 +v 0.268434 -0.027346 0.322778 1163 +v -0.190427 -0.361852 -0.278963 1164 +v -0.057623 0.092683 0.303452 1165 +v 0.265234 -0.008431 0.308745 1166 +v 0.132429 -0.462966 -0.273670 1167 +v -0.166263 -0.352919 -0.257442 1168 +v -0.042794 0.069664 0.284032 1169 +v 0.260566 -0.024407 0.288275 1170 +v 0.137097 -0.446990 -0.253199 1171 +v -0.022239 -0.497668 -0.023755 1172 +v -0.022239 -0.409943 -0.023755 1173 +v -0.108186 -0.497668 0.490735 1174 +v -0.108186 -0.409943 0.490735 1175 +v -0.407411 -0.497668 -0.088099 1176 +v -0.407411 -0.409943 -0.088099 1177 +v -0.493358 -0.497668 0.426391 1178 +v -0.493358 -0.409943 0.426391 1179 +v -0.022239 -0.475201 -0.023755 1180 +v -0.022239 -0.432410 -0.023755 1181 +v -0.108186 -0.432410 0.490735 1182 +v -0.108186 -0.475201 0.490735 1183 +v -0.493358 -0.432410 0.426391 1184 +v -0.493358 -0.475201 0.426391 1185 +v -0.407411 -0.432410 -0.088099 1186 +v -0.407411 -0.475201 -0.088099 1187 +v -0.130727 -0.497668 0.486632 1188 +v -0.130727 -0.409943 0.486632 1189 +v -0.044780 -0.497668 -0.027858 1190 +v -0.044780 -0.409943 -0.027858 1191 +v -0.044780 -0.475201 -0.027858 1192 +v -0.044780 -0.432410 -0.027858 1193 +v -0.130727 -0.475201 0.486632 1194 +v -0.130727 -0.432410 0.486632 1195 +v -0.475525 -0.432410 0.408332 1196 +v -0.475525 -0.475201 0.408332 1197 +v -0.396412 -0.432410 -0.065251 1198 +v -0.396412 -0.475201 -0.065251 1199 +v -0.127313 -0.475201 0.466191 1200 +v -0.127313 -0.432410 0.466191 1201 +v -0.048199 -0.475201 -0.007391 1202 +v -0.048199 -0.432410 -0.007391 1203 +v -0.065352 -0.409777 -0.061571 1204 +v -0.065352 -0.345480 -0.061571 1205 +v -0.059758 -0.409777 0.460018 1206 +v -0.059758 -0.345480 0.460018 1207 +v -0.455839 -0.409777 -0.057382 1208 +v -0.455839 -0.345480 -0.057382 1209 +v -0.450245 -0.409776 0.464207 1210 +v -0.450245 -0.345480 0.464207 1211 +v -0.065352 -0.393309 -0.061571 1212 +v -0.065352 -0.361947 -0.061571 1213 +v -0.059758 -0.361947 0.460018 1214 +v -0.059758 -0.393309 0.460018 1215 +v -0.450245 -0.361947 0.464207 1216 +v -0.450245 -0.393309 0.464207 1217 +v -0.455839 -0.361947 -0.057382 1218 +v -0.455839 -0.393309 -0.057382 1219 +v -0.082669 -0.409777 0.459931 1220 +v -0.082669 -0.345480 0.459931 1221 +v -0.088264 -0.409777 -0.061658 1222 +v -0.088264 -0.345480 -0.061658 1223 +v -0.088264 -0.393309 -0.061658 1224 +v -0.088264 -0.361947 -0.061658 1225 +v -0.082669 -0.393309 0.459931 1226 +v -0.082669 -0.361947 0.459931 1227 +v -0.435854 -0.361947 0.443301 1228 +v -0.435854 -0.393309 0.443301 1229 +v -0.441004 -0.361947 -0.036817 1230 +v -0.441004 -0.393309 -0.036817 1231 +v -0.082892 -0.393309 0.439209 1232 +v -0.082892 -0.361947 0.439209 1233 +v -0.088041 -0.393309 -0.040909 1234 +v -0.088041 -0.361947 -0.040909 1235 +vt 0.290580 0.000000 1236 +vt 0.708362 0.000000 1237 +vt 0.708362 0.035148 1238 +vt 0.315593 0.035148 1239 +vt 0.708362 1.000000 1240 +vt 0.290580 1.000000 1241 +vt 0.315593 0.964852 1242 +vt 0.708362 0.964852 1243 +vt 0.277079 1.000000 1244 +vt 0.708362 1.000000 1245 +vt 0.708362 0.000000 1246 +vt 0.277079 0.000000 1247 +vt 0.708362 0.395063 1248 +vt 0.708362 0.426728 1249 +vt 0.290580 0.595994 1250 +vt 0.277079 0.567352 1251 +vt 0.277079 0.567352 1252 +vt 0.290580 0.595994 1253 +vt 0.708362 0.426728 1254 +vt 0.708362 0.395063 1255 +vt 0.000000 0.567352 1256 +vt 0.000000 0.595994 1257 +vt 1.000000 0.595994 1258 +vt 1.000000 0.567352 1259 +vt 0.290580 0.000000 1260 +vt 0.315593 0.035148 1261 +vt 0.315593 0.964852 1262 +vt 0.290580 1.000000 1263 +vt 0.277079 1.000000 1264 +vt 0.277079 0.000000 1265 +vt 0.277079 0.567352 1266 +vt 0.290580 0.595994 1267 +vt 0.277079 0.567352 1268 +vt 0.290580 0.595994 1269 +vt 0.000000 0.567352 1270 +vt 1.000000 0.567352 1271 +vt 1.000000 0.595994 1272 +vt 0.000000 0.595994 1273 +vt -0.498724 0.540990 1274 +vt -0.498724 0.584036 1275 +vt 0.500638 0.584036 1276 +vt 0.500638 0.540990 1277 +vt 0.500000 0.540990 1278 +vt 0.500000 0.584036 1279 +vt 1.204279 0.584036 1280 +vt 1.204279 0.540990 1281 +vt 0.500638 0.540990 1282 +vt 0.500638 0.584036 1283 +vt -0.498724 0.584036 1284 +vt -0.498724 0.540990 1285 +vt 0.500000 0.540990 1286 +vt 0.500000 0.584036 1287 +vt 0.456108 0.584036 1288 +vt 0.456108 0.540990 1289 +vt 0.500000 0.500000 1290 +vt 1.204279 0.500638 1291 +vt 1.204279 -0.498724 1292 +vt 0.500000 -0.499362 1293 +vt 0.500000 0.500000 1294 +vt 0.456108 0.500638 1295 +vt 0.456108 -0.498724 1296 +vt 0.500000 -0.499362 1297 +vt 0.500000 0.415964 1298 +vt 0.500000 0.459010 1299 +vt 0.456108 0.459010 1300 +vt 0.456108 0.415964 1301 +vt 0.500638 0.415964 1302 +vt 0.500638 0.459010 1303 +vt -0.498724 0.459010 1304 +vt -0.498724 0.415964 1305 +vt 1.204279 -0.498724 1306 +vt 1.204279 0.500638 1307 +vt 1.176281 0.460883 1308 +vt 1.176281 -0.459020 1309 +vt 0.500000 0.415964 1310 +vt 0.500000 0.459010 1311 +vt 1.204279 0.459010 1312 +vt 1.204279 0.415964 1313 +vt 1.204279 -0.498724 1314 +vt 0.500000 -0.499362 1315 +vt 0.500000 -0.459607 1316 +vt 1.176281 -0.459020 1317 +vt -0.498724 0.415964 1318 +vt -0.498724 0.459010 1319 +vt 0.500638 0.459010 1320 +vt 0.500638 0.415964 1321 +vt 0.456108 0.459010 1322 +vt 0.456108 0.540990 1323 +vt 0.456108 0.415964 1324 +vt 0.500000 0.500000 1325 +vt 0.500000 0.460296 1326 +vt 1.204279 0.415964 1327 +vt 1.204279 0.459010 1328 +vt 1.204279 0.500638 1329 +vt 1.204279 -0.498724 1330 +vt 0.456108 0.500638 1331 +vt 0.456108 -0.498724 1332 +vt 1.204279 0.540990 1333 +vt 1.204279 0.584036 1334 +vt 0.456108 0.584036 1335 +vt -0.499362 0.540990 1336 +vt -0.499362 0.459010 1337 +vt -0.459607 0.459010 1338 +vt -0.459607 0.540990 1339 +vt 0.460296 0.540990 1340 +vt 0.460296 0.459010 1341 +vt 0.500000 0.500000 1342 +vt 1.204279 0.500638 1343 +vt 1.176281 0.460883 1344 +vt 0.500000 0.460296 1345 +vt 0.500000 -0.499362 1346 +vt 0.500000 -0.459607 1347 +vt -0.498724 0.540990 1348 +vt -0.498724 0.584036 1349 +vt 0.500638 0.584036 1350 +vt 0.500638 0.540990 1351 +vt 0.500000 0.540990 1352 +vt 0.500000 0.584036 1353 +vt 1.204279 0.584036 1354 +vt 1.204279 0.540990 1355 +vt 0.500638 0.540990 1356 +vt 0.500638 0.584036 1357 +vt -0.498724 0.584036 1358 +vt -0.498724 0.540990 1359 +vt 0.500000 0.540990 1360 +vt 0.500000 0.584036 1361 +vt 0.456108 0.584036 1362 +vt 0.456108 0.540990 1363 +vt 0.500000 0.500000 1364 +vt 1.204279 0.500638 1365 +vt 1.204279 -0.498724 1366 +vt 0.500000 -0.499362 1367 +vt 0.500000 0.500000 1368 +vt 0.456108 0.500638 1369 +vt 0.456108 -0.498724 1370 +vt 0.500000 -0.499362 1371 +vt 0.500000 0.415964 1372 +vt 0.500000 0.459010 1373 +vt 0.456108 0.459010 1374 +vt 0.456108 0.415964 1375 +vt 0.500638 0.415964 1376 +vt 0.500638 0.459010 1377 +vt -0.498724 0.459010 1378 +vt -0.498724 0.415964 1379 +vt 1.204279 -0.498724 1380 +vt 1.204279 0.500638 1381 +vt 1.176281 0.460883 1382 +vt 1.176281 -0.459020 1383 +vt 0.500000 0.415964 1384 +vt 0.500000 0.459010 1385 +vt 1.204279 0.459010 1386 +vt 1.204279 0.415964 1387 +vt 1.204279 -0.498724 1388 +vt 0.500000 -0.499362 1389 +vt 0.500000 -0.459607 1390 +vt 1.176281 -0.459020 1391 +vt -0.498724 0.415964 1392 +vt -0.498724 0.459010 1393 +vt 0.500638 0.459010 1394 +vt 0.500638 0.415964 1395 +vt 0.456108 0.459010 1396 +vt 0.456108 0.540990 1397 +vt 0.456108 0.415964 1398 +vt 0.500000 0.500000 1399 +vt 0.500000 0.460296 1400 +vt 1.204279 0.415964 1401 +vt 1.204279 0.459010 1402 +vt 1.204279 0.500638 1403 +vt 1.204279 -0.498724 1404 +vt 0.456108 0.500638 1405 +vt 0.456108 -0.498724 1406 +vt 1.204279 0.540990 1407 +vt 1.204279 0.584036 1408 +vt 0.456108 0.584036 1409 +vt -0.499362 0.540990 1410 +vt -0.499362 0.459010 1411 +vt -0.459607 0.459010 1412 +vt -0.459607 0.540990 1413 +vt 0.460296 0.540990 1414 +vt 0.460296 0.459010 1415 +vt 0.500000 0.500000 1416 +vt 1.204279 0.500638 1417 +vt 1.176281 0.460883 1418 +vt 0.500000 0.460296 1419 +vt 0.500000 -0.499362 1420 +vt 0.500000 -0.459607 1421 +vn -0.4853 0.7515 -0.4469 1422 +vn -0.4932 0.7243 -0.4818 1423 +vn 0.4867 -0.7390 0.4658 1424 +vn -0.1769 -0.6055 -0.7759 1425 +vn 0.1769 0.6055 0.7759 1426 +vn 0.8245 0.3393 -0.4528 1427 +vn -0.5375 0.7199 -0.4392 1428 +vn 0.2436 0.7516 -0.6131 1429 +vn 0.2356 0.7243 -0.6480 1430 +vn -0.2367 -0.7390 0.6307 1431 +vn 0.2379 0.7387 -0.6307 1432 +vn -0.9393 0.3393 -0.0506 1433 +vn 0.2939 0.7199 -0.6288 1434 +vn -0.4878 0.7387 -0.4652 1435 +vn 0.9863 0.0000 0.1648 1436 +vn -0.1639 -0.0000 0.9865 1437 +vn -0.9863 -0.0000 -0.1648 1438 +vn 0.1791 0.0000 -0.9838 1439 +vn -0.0000 -1.0000 -0.0000 1440 +vn -0.0000 1.0000 0.0000 1441 +vn -0.1791 0.0000 0.9838 1442 +vn 0.1639 0.0000 -0.9865 1443 +vn 0.9999 -0.0000 -0.0107 1444 +vn 0.0116 -0.0000 0.9999 1445 +vn -0.9999 0.0000 0.0107 1446 +vn 0.0038 0.0000 -1.0000 1447 +vn -0.0038 -0.0000 1.0000 1448 +vn -0.0116 -0.0000 -0.9999 1449 +g book_Cube.017_book 1450 +usemtl book 1451 +s off 1452 +f 243/595/76 254/596/76 258/597/76 245/598/76 1453 +f 253/599/77 244/600/77 246/601/77 257/602/77 1454 +f 242/603/78 250/604/78 249/605/78 241/606/78 1455 +f 249/607/79 254/608/79 243/609/79 241/610/79 1456 +f 242/611/80 244/612/80 253/613/80 250/614/80 1457 +f 241/615/81 243/616/81 244/617/81 242/618/81 1458 +f 244/600/82 243/595/82 245/598/82 246/601/82 1459 +f 251/619/83 255/620/83 258/597/83 254/596/83 1460 +f 253/599/84 257/602/84 256/621/84 252/622/84 1461 +f 248/623/85 247/624/85 249/605/85 250/604/85 1462 +f 249/607/79 247/625/79 251/626/79 254/608/79 1463 +f 257/602/86 258/597/86 255/620/86 256/621/86 1464 +f 248/627/80 250/614/80 253/613/80 252/628/80 1465 +f 247/629/87 248/630/87 252/631/87 251/632/87 1466 +f 252/622/88 256/621/88 255/620/88 251/619/88 1467 +f 258/597/89 257/602/89 246/601/89 245/598/89 1468 +f 268/633/90 260/634/90 262/635/90 269/636/90 1469 +f 282/637/91 276/638/91 266/639/91 271/640/91 1470 +f 271/641/92 266/642/92 264/643/92 273/644/92 1471 +f 280/645/93 278/646/93 260/647/93 268/648/93 1472 +f 275/649/94 265/650/94 263/651/94 277/652/94 1473 +f 276/653/95 262/654/95 260/655/95 278/656/95 1474 +f 277/657/93 279/658/93 267/659/93 259/660/93 1475 +f 279/658/93 280/645/93 268/648/93 267/659/93 1476 +f 265/661/92 272/662/92 274/663/92 263/664/92 1477 +f 274/665/95 272/666/95 284/667/95 286/668/95 1478 +f 275/669/91 281/670/91 272/671/91 265/672/91 1479 +f 273/673/94 280/674/94 290/675/94 285/676/94 1480 +f 259/677/90 267/678/90 270/679/90 261/680/90 1481 +f 267/678/90 268/633/90 269/636/90 270/679/90 1482 +f 270/681/96 269/682/96 282/637/96 281/670/96 1483 +f 261/683/96 270/681/96 281/670/96 275/669/96 1484 +f 272/666/95 281/684/95 287/685/95 284/667/95 1485 +f 263/686/97 274/687/97 279/658/97 277/657/97 1486 +f 266/688/95 276/653/95 278/656/95 264/689/95 1487 +f 261/690/94 275/649/94 277/652/94 259/691/94 1488 +f 273/692/97 264/693/97 278/646/97 280/645/97 1489 +f 269/682/96 262/694/96 276/638/96 282/637/96 1490 +f 280/695/92 279/696/92 289/697/92 290/698/92 1491 +f 281/670/92 282/637/92 288/699/92 287/700/92 1492 +f 282/701/94 271/702/94 283/703/94 288/704/94 1493 +f 271/702/94 273/673/94 285/676/94 283/703/94 1494 +f 279/705/95 274/665/95 286/668/95 289/706/95 1495 +f 300/707/98 292/708/98 294/709/98 301/710/98 1496 +f 314/711/99 308/712/99 298/713/99 303/714/99 1497 +f 303/715/100 298/716/100 296/717/100 305/718/100 1498 +f 312/719/101 310/720/101 292/721/101 300/722/101 1499 +f 307/723/94 297/724/94 295/725/94 309/726/94 1500 +f 308/727/95 294/728/95 292/729/95 310/730/95 1501 +f 309/731/101 311/732/101 299/733/101 291/734/101 1502 +f 311/732/101 312/719/101 300/722/101 299/733/101 1503 +f 297/735/100 304/736/100 306/737/100 295/738/100 1504 +f 306/739/95 304/740/95 316/741/95 318/742/95 1505 +f 307/743/99 313/744/99 304/745/99 297/746/99 1506 +f 305/747/94 312/748/94 322/749/94 317/750/94 1507 +f 291/751/98 299/752/98 302/753/98 293/754/98 1508 +f 299/752/98 300/707/98 301/710/98 302/753/98 1509 +f 302/755/102 301/756/102 314/711/102 313/744/102 1510 +f 293/757/102 302/755/102 313/744/102 307/743/102 1511 +f 304/740/95 313/758/95 319/759/95 316/741/95 1512 +f 295/760/103 306/761/103 311/732/103 309/731/103 1513 +f 298/762/95 308/727/95 310/730/95 296/763/95 1514 +f 293/764/94 307/723/94 309/726/94 291/765/94 1515 +f 305/766/103 296/767/103 310/720/103 312/719/103 1516 +f 301/756/102 294/768/102 308/712/102 314/711/102 1517 +f 312/769/100 311/770/100 321/771/100 322/772/100 1518 +f 313/744/100 314/711/100 320/773/100 319/774/100 1519 +f 314/775/94 303/776/94 315/777/94 320/778/94 1520 +f 303/776/94 305/747/94 317/750/94 315/777/94 1521 +f 311/779/95 306/739/95 318/742/95 321/780/95 1522 +f 317/750/94 322/749/94 320/778/94 315/777/94 1523 +f 318/742/95 316/741/95 319/759/95 321/780/95 1524 +f 319/759/100 320/778/100 322/772/100 321/780/100 1525 +f 287/700/92 288/699/92 290/698/92 289/697/92 1526 +f 286/668/95 284/667/95 287/700/95 289/706/95 1527 +f 285/676/94 290/675/94 288/699/94 283/703/94 1528 +o paper_Cube.018 1529 +v 0.408630 -0.351585 -0.388531 1530 +v 0.394118 -0.324203 -0.406592 1531 +v 0.517587 0.098380 0.134882 1532 +v 0.532099 0.070998 0.152943 1533 +v -0.166263 -0.351585 -0.257442 1534 +v -0.161014 -0.324203 -0.280009 1535 +v -0.037545 0.098380 0.261465 1536 +v 0.255629 0.006115 0.266622 1537 +v 0.132160 -0.416469 -0.274852 1538 +v -0.042794 0.070998 0.284032 1539 +v 0.260566 -0.023072 0.288275 1540 +v 0.137097 -0.445656 -0.253199 1541 +v -0.475525 -0.432410 0.408332 1542 +v -0.475525 -0.475201 0.408332 1543 +v -0.396412 -0.432410 -0.065251 1544 +v -0.396412 -0.475201 -0.065251 1545 +v -0.127313 -0.475201 0.466191 1546 +v -0.127313 -0.432410 0.466191 1547 +v -0.048199 -0.475201 -0.007391 1548 +v -0.048199 -0.432410 -0.007391 1549 +v -0.435854 -0.361947 0.443301 1550 +v -0.435854 -0.393309 0.443301 1551 +v -0.441004 -0.361947 -0.036817 1552 +v -0.441004 -0.393309 -0.036817 1553 +v -0.082892 -0.393309 0.439209 1554 +v -0.082892 -0.361947 0.439209 1555 +v -0.088041 -0.393309 -0.040909 1556 +v -0.088041 -0.361947 -0.040909 1557 +vt 0.000000 0.554134 1558 +vt 0.000000 0.603438 1559 +vt 1.000000 0.603438 1560 +vt 1.000000 0.554134 1561 +vt 0.284410 0.554134 1562 +vt 0.298932 0.603438 1563 +vt 0.706877 0.437305 1564 +vt 0.706877 0.384751 1565 +vt 0.706877 0.384751 1566 +vt 0.706877 0.437305 1567 +vt 0.298932 0.603438 1568 +vt 0.284410 0.554134 1569 +vt 0.298932 0.000000 1570 +vt 0.706877 0.000000 1571 +vt 0.706877 1.000000 1572 +vt 0.298932 1.000000 1573 +vt 0.000000 0.554134 1574 +vt 1.000000 0.554134 1575 +vt 1.000000 0.603438 1576 +vt 0.000000 0.603438 1577 +vt 0.284410 0.554134 1578 +vt 0.298932 0.603438 1579 +vt 1.000000 0.384751 1580 +vt 0.000000 0.384751 1581 +vt 0.000000 0.437305 1582 +vt 1.000000 0.437305 1583 +vt 0.284410 0.554134 1584 +vt 0.298932 0.603438 1585 +vt 0.298932 0.000000 1586 +vt 0.298932 1.000000 1587 +vt 0.460883 0.459010 1588 +vt 0.460883 0.540990 1589 +vt -0.459020 0.540990 1590 +vt -0.459020 0.459010 1591 +vt 0.500000 0.459010 1592 +vt 0.500000 0.540990 1593 +vt 1.176281 0.540990 1594 +vt 1.176281 0.459010 1595 +vt 1.176281 0.459010 1596 +vt 1.176281 0.540990 1597 +vt 0.500000 0.540990 1598 +vt 0.500000 0.459010 1599 +vt 0.460883 0.459010 1600 +vt 0.460883 0.540990 1601 +vt -0.459020 0.540990 1602 +vt -0.459020 0.459010 1603 +vt 0.500000 0.459010 1604 +vt 0.500000 0.540990 1605 +vt 1.176281 0.540990 1606 +vt 1.176281 0.459010 1607 +vt 1.176281 0.459010 1608 +vt 1.176281 0.540990 1609 +vt 0.500000 0.540990 1610 +vt 0.500000 0.459010 1611 +vt 0.000000 0.000000 1612 +vt 0.000000 0.000000 1613 +vt 0.000000 0.000000 1614 +vt 0.000000 0.000000 1615 +vn 0.8972 0.2248 -0.3801 1616 +vn 0.1769 0.6055 0.7759 1617 +vn -0.1769 -0.6055 -0.7759 1618 +vn -0.4924 0.7370 -0.4629 1619 +vn -0.9733 0.2248 0.0465 1620 +vn 0.9750 0.0000 -0.2223 1621 +vn 0.2430 0.7370 -0.6306 1622 +vn -0.9863 0.0000 -0.1648 1623 +vn -0.1639 0.0000 0.9865 1624 +vn 0.1639 -0.0000 -0.9865 1625 +vn -0.9999 -0.0000 0.0107 1626 +vn 0.0116 0.0000 0.9999 1627 +vn -0.0116 -0.0000 -0.9999 1628 +vn 0.9999 -0.0000 -0.0107 1629 +vn 0.0000 -1.0000 -0.0000 1630 +vn 0.0000 1.0000 0.0000 1631 +vn 0.9863 -0.0000 0.1648 1632 +vn 0.4878 -0.7387 0.4652 1633 +vn -0.2379 -0.7387 0.6307 1634 +g paper_Cube.018_paper 1635 +usemtl paper 1636 +s off 1637 +f 323/781/104 324/782/104 325/783/104 326/784/104 1638 +f 326/785/105 325/786/105 330/787/105 333/788/105 1639 +f 334/789/106 331/790/106 324/791/106 323/792/106 1640 +f 324/793/107 331/794/107 330/795/107 325/796/107 1641 +f 327/797/108 332/798/108 329/799/108 328/800/108 1642 +f 332/801/105 333/788/105 330/787/105 329/802/105 1643 +f 333/803/109 334/804/109 331/805/109 330/806/109 1644 +f 334/789/106 327/807/106 328/808/106 331/790/106 1645 +f 328/809/110 329/810/110 330/795/110 331/794/110 1646 +f 336/811/111 335/812/111 337/813/111 338/814/111 1647 +f 339/815/112 340/816/112 335/817/112 336/818/112 1648 +f 338/819/113 337/820/113 342/821/113 341/822/113 1649 +f 344/823/114 343/824/114 345/825/114 346/826/114 1650 +f 347/827/115 348/828/115 343/829/115 344/830/115 1651 +f 346/831/116 345/832/116 350/833/116 349/834/116 1652 +f 347/827/117 349/834/117 350/833/117 348/828/117 1653 +f 346/831/118 349/834/118 347/827/118 344/830/118 1654 +f 345/832/119 343/829/119 348/828/119 350/833/119 1655 +f 338/819/118 341/822/118 339/815/118 336/818/118 1656 +f 337/820/119 335/817/119 340/816/119 342/821/119 1657 +f 339/815/120 341/822/120 342/821/120 340/816/120 1658 +f 334/804/121 323/781/121 326/785/121 333/803/121 1659 +f 333/835/122 332/836/122 327/837/122 334/838/122
Modified recipes.lua from [c312eb6c73] to [b5f23ba87a].
1 +-- tweaks 2 + 1 3 minetest.register_craft { 2 4 type = "shapeless"; 3 5 recipe = { 4 6 "group:water_bucket", 5 7 "vessels:glass_bottle", 6 8 "vessels:glass_bottle", 7 9 "vessels:glass_bottle" ................................................................................ 34 36 output = "bucket:bucket_water"; 35 37 replacements = { 36 38 { "sorcery:potion_water", "vessels:glass_bottle" }; 37 39 { "sorcery:potion_water", "vessels:glass_bottle" }; 38 40 { "sorcery:potion_water", "vessels:glass_bottle" }; 39 41 }; 40 42 } 43 + 44 +minetest.register_craft { 45 + type = 'shapeless'; 46 + recipe = { 47 + 'group:scissors'; 48 + 'basic_materials:plastic_sheet'; 49 + }; 50 + output = 'basic_materials:plastic_strip 3'; 51 + replacements = { 52 + {'group:scissors','group:scissors'}; 53 + }; 54 +} 41 55 42 56 --[[ 43 57 minetest.register_craft { 44 58 type = "shapeless"; 45 59 recipe = { 46 60 "farming:mortar_pestle", 47 61 "farming:sugar", ................................................................................ 568 582 {'default:steel_ingot','default:furnace','default:steel_ingot'}; 569 583 }; 570 584 replacements = { 571 585 {'basic_materials:copper_wire', 'basic_materials:empty_spool'}; 572 586 }; 573 587 } 574 588 589 +---- writing 590 +minetest.register_craftitem('sorcery:ink', { 591 + description = "Ink"; 592 + inventory_image = "sorcery_ink_bottle.png"; 593 + groups = { liquid = 1; ink = 1; } 594 +}) 595 + 596 +minetest.register_craftitem('sorcery:erasure_fluid', { 597 + description = "Erasure Fluid"; 598 + inventory_image = "sorcery_erasure_fluid_bottle.png"; 599 + groups = { liquid = 1; sorcery_writingstand_operand = 1; } 600 +}) 601 + 602 +minetest.register_craft { 603 + output = 'sorcery:ink'; 604 + type = 'shapeless'; 605 + recipe = { 606 + 'sorcery:potion_water'; 607 + 'dye:black', 'dye:black', 'dye:black'; 608 + 'xdecor:honey'; 609 + 'basic_materials:oil_extract'; 610 + 'basic_materials:oil_extract'; 611 + }; 612 +} 613 + 614 +minetest.register_craft { 615 + output = 'sorcery:erasure_fluid 3'; 616 + type = 'shapeless'; 617 + recipe = { 618 + 'sorcery:potion_water'; 619 + 'sorcery:potion_water'; 620 + 'sorcery:potion_water'; 621 + 'basic_materials:oil_extract'; 622 + 'sorcery:powder_aluminum'; 623 + 'sorcery:powder_tin'; 624 + } 625 +} 626 + 627 +minetest.register_craft { 628 + output = 'sorcery:erasure_fluid 3'; 629 + type = 'shapeless'; 630 + recipe = { 631 + 'vessels:glass_bottle'; 632 + 'vessels:glass_bottle'; 633 + 'vessels:glass_bottle'; 634 + 'bucket:bucket_water'; 635 + 'basic_materials:oil_extract'; 636 + 'sorcery:powder_aluminum'; 637 + 'sorcery:powder_tin'; 638 + }; 639 + replacements = { 640 + {'bucket:bucket_water','bucket:bucket_empty'}; 641 + }; 642 +} 643 +minetest.register_craft { 644 + output = 'sorcery:writing_stand'; 645 + recipe = { 646 + {'screwdriver:screwdriver','default:book','default:gold_ingot'}; 647 + {'sorcery:screw_steel','group:wood','sorcery:screw_steel'}; 648 + {'group:wood','default:stick','group:wood'}; 649 + }; 650 + replacements = { 651 + {'screwdriver:screwdriver','screwdriver:screwdriver'}; 652 + }; 653 +}; 654 + 655 +sorcery.data.register.infusion_leftover('sorcery:ink','vessels:glass_bottle') 656 +sorcery.data.register.infusion_leftover('sorcery:erasure_fluid','vessels:glass_bottle') 657 + 575 658 ---- altar 576 659 minetest.register_craftitem('sorcery:candle', { 577 660 -- TODO make candle node 578 661 inventory_image = 'sorcery_candle.png'; 579 662 description = 'Votive Candle'; 580 663 groups = { 581 664 candle = 1;
Added textures/sorcery_erasure_fluid_bottle.png version [6cc2e06a0c].
cannot compute difference between binary files
Added textures/sorcery_ink_bottle.png version [9cd1cb7026].
cannot compute difference between binary files
Added textures/sorcery_pen.png version [dbab6605a4].
cannot compute difference between binary files
Added textures/sorcery_pen_nib.png version [20a8f60412].
cannot compute difference between binary files
Added textures/sorcery_scissors_aluminum.png version [2d37a11f3d].
cannot compute difference between binary files
Added textures/sorcery_scissors_bronze.png version [d1baf6e9c4].
cannot compute difference between binary files
Added textures/sorcery_scissors_iridium.png version [19c8d02f68].
cannot compute difference between binary files
Added textures/sorcery_scissors_steel.png version [4a46c3698e].
cannot compute difference between binary files
Added textures/sorcery_scissors_tungsten.png version [b8529839fc].
cannot compute difference between binary files
Added textures/sorcery_ui_ghost_ink_bottle.png version [7c2f6ae8df].
cannot compute difference between binary files
Added textures/sorcery_ui_ghost_pen.png version [35aabc24b3].
cannot compute difference between binary files
Added textures/sorcery_ui_inkwell.png version [abb71778a3].
cannot compute difference between binary files
Added textures/sorcery_ui_inkwell_bar.png version [619704ff57].
cannot compute difference between binary files
Added textures/sorcery_ui_inkwell_bar_black.png version [790e8f3039].
cannot compute difference between binary files
Added textures/sorcery_ui_pg_next.png version [6be954ccbc].
cannot compute difference between binary files
Modified wands.lua from [54442c247e] to [a570130d91].
695 695 696 696 local register_station = function(water) 697 697 local tilebase = { 698 698 "default_aspen_wood.png"; 699 699 "sorcery_wandworking_station_side.png"; 700 700 } 701 701 local base = { 702 - description = "Wandworking station"; 702 + description = "Wandworking Station"; 703 703 groups = { 704 704 choppy = 2; 705 705 }; 706 706 paramtype2 = 'facedir'; 707 707 on_construct = function(pos) 708 708 local meta = minetest.get_meta(pos) 709 709 local inv = meta:get_inventory() ................................................................................ 791 791 elseif list == 'wandparts' then 792 792 if wwi:is_empty('preview') then update_wand(wwi) 793 793 else update_preview(wwi) end 794 794 elseif list == 'tank' then 795 795 minetest.get_node_timer(pos):start(1) 796 796 end 797 797 end; 798 + _sorcery = { 799 + recipe = { 800 + note = 'Construct wands from tree blocks and gems; fill with water and soak wands with philters to enchant them'; 801 + }; 802 + }; 798 803 } 799 804 800 805 local id 801 806 if water then 802 807 id = 'sorcery:wandworking_station_water' 803 808 base = u.tbl.merge(base, { 804 - description = "Wandworking station (full)"; 809 + description = "Wandworking Station (full)"; 805 810 tiles = u.tbl.append({"sorcery_wandworking_station_top_water.png"}, tilebase) 806 811 }) 807 812 else 808 813 id = 'sorcery:wandworking_station' 809 814 base = u.tbl.merge(base, { 810 - description = "Wandworking station"; 815 + description = "Wandworking Station"; 811 816 drop = "sorcery:wandworking_station"; 812 817 tiles = u.tbl.append({"sorcery_wandworking_station_top.png"}, tilebase) 813 818 }) 814 819 end 815 820 minetest.register_node(id, base) 816 821 end 817 822
Modified writing.lua from [d9df5661ad] to [324c6534ec].
3 3 -- making them appear as by an "unknown author", by smudging out 4 4 -- the byline with black dye. it also allows written books to be 5 5 -- soaked in a bucket of water to wash out the ink and return 6 6 -- them to a virginal, unwritten state. finally, it makes it so 7 7 -- that when a book (or any owned item, for that matter) is 8 8 -- copied, the owner of the new copy is set to the user who 9 9 -- copied it, allowing users to collaborate on books. 10 + 11 +local constants = { 12 + ops_per_pen_level = 15; 13 + ops_per_ink_bottle = 8; 14 + cuts_per_scissor_hardness = 10; 15 + op_cost_retitle = 1; 16 + op_cost_copy_rec = 2; 17 + op_cost_insert_rec = 2; 18 +}; 10 19 11 20 local paperburn = function(item,value) 12 21 minetest.register_craft { type = 'fuel', recipe = item, burntime = 3 * value } 13 22 minetest.register_craft { 14 23 type = 'cooking'; 15 24 recipe = item; 16 25 output = 'sorcery:ash ' .. tostring(value); ................................................................................ 59 68 meta:set_string('owner','unknown author') 60 69 meta:set_string('description','"'..meta:get_string('title')..'"') 61 70 pinv:set_stack('craft',book_idx,ItemStack()) 62 71 end 63 72 end 64 73 return itemstack 65 74 end) 75 + 76 +do 77 + local penbase = sorcery.lib.image('sorcery_pen.png') 78 + local pennib = sorcery.lib.image('sorcery_pen_nib.png') 79 + for name,metal in pairs(sorcery.data.metals) do 80 + if not metal.no_tools then 81 + local nib if name ~= 'steel' then 82 + nib = pennib:multiply(sorcery.lib.color(metal.tone):brighten(1.3)) 83 + else nib = pennib end 84 + local cc if metal.hardness < 4 then cc = 3 85 + elseif metal.hardness < 7 then cc = 4 86 + else cc = 5 end 87 + local id = 'sorcery:pen_' .. name 88 + minetest.register_tool(id, { 89 + description = sorcery.lib.str.capitalize(name) .. ' Pen'; 90 + inventory_image = penbase:blit(nib):render(); 91 + groups = { pen = 1; sorcery_pen = 1; crafttool = cc }; 92 + _sorcery = { 93 + material = { 94 + metal = true, grindvalue = 1; 95 + id = name, data = metal; 96 + }; 97 + }; 98 + }) 99 + minetest.register_craft { 100 + output = id; 101 + recipe = { 102 + {'sorcery:fragment_gold','sorcery:fragment_copper'}; 103 + {'default:stick',''}; 104 + {metal.parts.fragment,''}; 105 + }; 106 + } 107 + end 108 + end 109 +end 110 + 111 +for _,name in pairs { 112 + 'bronze', 'steel', 'aluminum', 'tungsten', 'iridium' 113 +} do -- :/ 114 + local metal = sorcery.data.metals[name] 115 + local id = 'sorcery:scissors_' .. name 116 + minetest.register_tool(id, { 117 + description = sorcery.lib.str.capitalize(name) .. ' Scissors'; 118 + inventory_image = 'sorcery_scissors_' .. name .. '.png'; 119 + groups = { crafttool = metal.hardness * 15; scissors = 1 }; 120 + tool_capabilities = { 121 + full_punch_interval = 1.5; 122 + max_drop_level = metal.maxlevel or metal.level; 123 + groupcaps = { 124 + snappy = { 125 + uses = math.floor(metal.durability * 0.10); 126 + leveldiff = 1; 127 + maxlevel = metal.maxlevel or metal.level; 128 + times = { 129 + [1] = 3 / metal.speed; 130 + [2] = 2 / metal.speed; 131 + [3] = 1 / metal.speed; 132 + }; 133 + }; 134 + }; 135 + damage_groups = { fleshy = 1; }; 136 + }; 137 + _sorcery = { 138 + material = { 139 + metal = true, data = metal, name = name; 140 + grindvalue = 3; 141 + }; 142 + recipe = { 143 + note = "An editor's best friend"; 144 + }; 145 + }; 146 + }) 147 + local frag = metal.parts.fragment; 148 + local screw = metal.parts.screw; 149 + local ingot = metal.parts.ingot; 150 + minetest.register_craft { 151 + output = id; 152 + recipe = { 153 + {frag,'screwdriver:screwdriver',frag}; 154 + {'basic_materials:plastic_strip',screw,'basic_materials:plastic_strip'}; 155 + {ingot,'',ingot}; 156 + }; 157 + replacements = { 158 + {'screwdriver:screwdriver', 'screwdriver:screwdriver'}; 159 + }; 160 + } 161 +end 162 + 163 +-- the writing stand node allows books to be modified 164 +-- in more complex ways than just inserting pages 165 + 166 +local ws_props = function(pos) 167 + local meta = minetest.get_meta(pos) 168 + local inv = meta:get_inventory() 169 + local reservoir = meta:get_int('inkwell') 170 + local inkstack = inv:get_stack('ink',1) 171 + local inkbottles = 0 172 + if minetest.get_item_group(inkstack:get_name(),'ink') ~= 0 then 173 + inkbottles = inkstack:get_count() 174 + end 175 + local penstack = inv:get_stack('pen',1) 176 + local penstr if not penstack:is_empty() then 177 + penstr = penstack:get_definition()._sorcery.material.data.hardness * constants.ops_per_pen_level 178 + end 179 + local operstack = inv:get_stack('operand',1) 180 + local mode if not operstack:is_empty() then 181 + if operstack:get_name() == 'sorcery:erasure_fluid' then 182 + mode = 'delete'; 183 + elseif operstack:get_name() == 'sorcery:recipe' then 184 + mode = 'insert'; 185 + elseif operstack:get_name() == 'default:paper' then 186 + mode = 'copy'; 187 + elseif minetest.get_item_group(operstack:get_name(), 'scissors') ~= 0 then 188 + mode = 'cut'; 189 + end 190 + end 191 + return { 192 + meta = meta; 193 + inv = inv; 194 + haspen = not penstack:is_empty(); 195 + hasink = not inkstack:is_empty(); 196 + inkwell = reservoir, penstr = penstr; 197 + mode = mode; 198 + inkstack = inkstack, penstack = penstack; 199 + operstack = operstack; 200 + totalink = reservoir + inkbottles * constants.ops_per_ink_bottle; 201 + } 202 +end 203 +local ws_formspec = function(pos) 204 + local props = ws_props(pos) 205 + local meta = props.meta 206 + local inv = props.inv 207 + local base = [[ 208 + formspec_version[3] size[10.25,10.5] 209 + real_coordinates[true] 210 + 211 + list[context;subject;0.25,0.25;1,1;] 212 + list[context;pen;0.25,1.50;1,1;] 213 + list[context;ink;0.25,2.75;1,1;] 214 + 215 + list[context;operand;9,0.25;1,1;] 216 + image[9,1.50;1,1;sorcery_ui_inkwell.png] 217 + list[context;output;9,2.75;1,1;] 218 + 219 + list[current_player;main;0.25,5.5;8,4;] 220 + 221 + listring[context;output] 222 + listring[current_player;main] listring[context;subject] 223 + listring[current_player;main] listring[context;pen] 224 + listring[current_player;main] listring[context;ink] 225 + listring[current_player;main] listring[context;operand] 226 + listring[current_player;main] 227 + ]] 228 + local mkbtn = function(x,y,tex,name,presstex) 229 + tex = 'sorcery_ui_' .. tex 230 + if presstex then 231 + presstex = 'sorcery_ui_' .. presstex 232 + else presstex = tex end 233 + return string.format('image_button[' .. 234 + '%f,%f;' .. 235 + '1,1;' .. 236 + '%s;%s;;' .. 237 + 'false;false;%s' .. 238 + ']',x,y,tex,name,presstex) 239 + end 240 + 241 + local form = base 242 + local subj = inv:get_stack('subject',1) 243 + 244 + if subj:is_empty() then 245 + form = form .. 'image[0.25,0.25;1,1;default_bookshelf_slot.png]' 246 + end 247 + if props.penstack:is_empty() then 248 + form = form .. 'image[0.25,1.50;1,1;sorcery_ui_ghost_pen.png]' 249 + end 250 + if props.inkstack:is_empty() then 251 + form = form .. 'image[0.25,2.75;1,1;sorcery_ui_ghost_ink_bottle.png]' 252 + end 253 + 254 + if props.inkwell > 0 then 255 + form = form .. string.format( 256 + 'image[8.8,1.50;0.5,0.5;sorcery_ui_inkwell_bar.png^[lowpart:%u:sorcery_ui_inkwell_bar_black.png]', 257 + 258 + math.min(100,math.ceil((props.inkwell / constants.ops_per_ink_bottle) * 100)) 259 + ) 260 + end 261 + 262 + if subj:get_name() == 'sorcery:cookbook' then 263 + local book = sorcery.cookbook.get(subj) 264 + local bm = subj:get_meta() 265 + local rpp = sorcery.cookbook.constants.recipes_per_cookbook_page 266 + local page = bm:contains("pagenr") and bm:get_int("pagenr") or 1 267 + local lastpage = math.ceil(#book.pages / rpp) 268 + 269 + if page > 1 then form = form .. mkbtn(0.25,4,'pg_next.png^[transformFX','prevpage') end 270 + if page < lastpage then form = form .. mkbtn(9.00,4,'pg_next.png','nextpage'); end 271 + 272 + local desctext = minetest.formspec_escape(bm:get_string('description')) 273 + if props.haspen and props.totalink >= constants.op_cost_retitle then 274 + form = form .. string.format([[ 275 + field[1.75,0.25;7,1;title;;%s] 276 + field_close_on_enter[title;false] 277 + ]], desctext) 278 + else 279 + form = form .. string.format([[ 280 + label[1.75,0.75;%s] 281 + ]], desctext) 282 + end 283 + 284 + local mode = props.mode 285 + local modecolors = { 286 + delete = {255,127,127}; 287 + cut = {255,127,64}; 288 + insert = {127,255,127}; 289 + copy = {127,127,255}; 290 + } 291 + 292 + for i=1,rpp do 293 + local chap = rpp * (page-1) + i 294 + local rec = book.pages[chap] 295 + if rec == nil then break end 296 + local text = sorcery.cookbook.recfn(rec.kind,'title')(rec.name) 297 + local class = sorcery.cookbook.classes[rec.kind] 298 + 299 + local id = 'recipe_' .. tostring(i) 300 + local height = 1.50 + 1.25*(i-1) 301 + local img if class.icon then 302 + img = class.icon(rec.name) 303 + end 304 + local mcolor = sorcery.lib.color(modecolors[mode] or {255,255,255}) 305 + form = form .. string.format([[ 306 + style[%s;border=%s;textcolor=%s] 307 + style[%s:hovered;textcolor=#ffffff] 308 + style[%s:pressed;content_offset=0,0;textcolor=%s] 309 + button[1.75,%f;7,1;%s;%u. %s] 310 + %s[1.80,%f;0.90,0.90;%s] 311 + ]], id, mode and 'true' or 'false', 312 + mode and mcolor:brighten(1.2):hex() or mcolor:hex(), 313 + id, id, mcolor:hex(), 314 + height, id, chap, 315 + minetest.formspec_escape(text), 316 + img and 'image' or 'item_image', 317 + height + 0.05, img or rec.name 318 + ) 319 + end 320 + end 321 + 322 + meta:set_string('formspec',form) 323 +end 324 + 325 +local wsbox = { 326 + type = 'fixed'; 327 + fixed = { 328 + -0.5, -0.5, -0.43; 329 + 0.5, 0.05, 0.43; 330 + }; 331 +} 332 + 333 +minetest.register_node('sorcery:writing_stand', { 334 + description = 'Writing Stand'; 335 + drawtype = 'mesh'; 336 + mesh = 'sorcery-writing-stand.obj'; 337 + sunlight_propagates = true; 338 + paramtype = 'light'; 339 + paramtype2 = 'facedir'; 340 + collision_box = wsbox; 341 + selection_box = wsbox; 342 + after_dig_node = sorcery.lib.node.purge_container; 343 + tiles = { 344 + 'default_obsidian.png'; 345 + 'default_wood.png'; 346 + 'default_gold_block.png'; 347 + 'default_steel_block.png'; 348 + 'default_desert_stone.png'; 349 + 'default_cloud.png'; 350 + }; 351 + groups = { 352 + choppy = 2, oddly_breakable_by_hand = 2; 353 + sorcery_tech = 1; 354 + flammable = 2; 355 + }; 356 + on_construct = function(pos) 357 + local meta = minetest.get_meta(pos) 358 + local inv = meta:get_inventory() 359 + 360 + meta:set_string('infotext','Writing Stand') 361 + inv:set_size('subject',1) 362 + inv:set_size('ink',1) 363 + inv:set_size('pen',1) 364 + inv:set_size('operand',1) 365 + inv:set_size('output',1) 366 + 367 + ws_formspec(pos) 368 + end; 369 + 370 + on_metadata_inventory_put = ws_formspec; 371 + on_metadata_inventory_take = ws_formspec; 372 + on_metadata_inventory_move = ws_formspec; 373 + 374 + on_receive_fields = function(pos,fname,fields,user) 375 + local p = ws_props(pos) 376 + local subj = p.inv:get_stack('subject',1) 377 + local changed = false 378 + local charge_ink = function(val) 379 + if p.totalink < val then return false end 380 + if p.inkwell >= val then 381 + p.inkwell = p.inkwell - val 382 + else 383 + local bottles = math.ceil(val / constants.ops_per_ink_bottle) 384 + local inkbtls = p.inkstack:get_count() 385 + p.inkstack:take_item(bottles) 386 + local empties = ItemStack { 387 + name = 'vessels:glass_bottle'; 388 + count = bottles; 389 + } 390 + if p.inkstack:is_empty() then 391 + p.inkstack = empties 392 + else 393 + local r = user:get_inventory():add_item('main',empties) 394 + if not r:is_empty() then 395 + minetest.add_item(pos,r) 396 + end 397 + end 398 + p.inkwell = (p.inkwell + bottles*constants.ops_per_ink_bottle) - val 399 + p.totalink = p.inkwell + (inkbtls-bottles)*constants.ops_per_ink_bottle 400 + end 401 + p.penstack:add_wear(math.ceil((65535 / p.penstr) * val)) 402 + changed = true 403 + return true 404 + end 405 + if subj:is_empty() then return nil end 406 + if subj:get_name() == 'sorcery:cookbook' then 407 + local bm = subj:get_meta() 408 + local book = sorcery.cookbook.get(subj) 409 + 410 + -- handle page change request 411 + if fields.nextpage or fields.prevpage then 412 + local page = math.max(1,bm:get_int('pagenr')) 413 + if fields.nextpage then page = page + 1 414 + elseif fields.prevpage then page = page - 1 end 415 + bm:set_int('pagenr',math.max(1,page)) 416 + changed = true 417 + end 418 + 419 + -- handle retitle request 420 + if fields.title then 421 + if fields.title ~= bm:get_string('description') then 422 + if charge_ink(constants.op_cost_retitle) then 423 + bm:set_string('description',fields.title) 424 + end 425 + end 426 + end 427 + 428 + -- handle editing request 429 + local rpp = sorcery.cookbook.constants.recipes_per_cookbook_page 430 + if p.mode then for idx=1,rpp do 431 + if fields['recipe_' .. tostring(idx)] then 432 + local recnr = (bm:get_int('pagenr')-1)*rpp + idx 433 + local rec = book.pages[recnr] 434 + local bookchanged = false 435 + if p.mode == 'delete' then 436 + p.operstack:take_item(1) 437 + table.remove(book.pages,recnr) 438 + bookchanged = true 439 + elseif p.mode == 'copy' and 440 + charge_ink(constants.op_cost_copy_rec) then 441 + local recipe = ItemStack('sorcery:recipe') 442 + sorcery.cookbook.setrecipe(recipe,rec.kind,rec.name) 443 + if p.operstack:get_count() == 1 then 444 + p.operstack = recipe 445 + else 446 + p.operstack:take_item(1) 447 + minetest.add_item(pos, user:get_inventory():add_item('main',recipe)) 448 + end 449 + changed = true 450 + elseif p.mode == 'insert' then 451 + local rm = p.operstack:get_meta() 452 + if not rm:contains('recipe_kind') then 453 + sorcery.cookbook.setrecipe(p.operstack) 454 + end 455 + table.insert(book.pages,recnr,{ 456 + kind = rm:get_string('recipe_kind'); 457 + name = rm:get_string('recipe_name'); 458 + }) 459 + -- insertion can operate in one of two modes: copying 460 + -- the recipe into the book, or inserting the paper 461 + -- directly. if there is no ink available, we use the 462 + -- latter mode. in effect, this means deleting the 463 + -- recipe item is insufficient ink is available. 464 + if charge_ink(constants.op_cost_insert_rec) == false then 465 + p.operstack = ItemStack(nil) 466 + end 467 + bookchanged = true 468 + elseif p.mode == 'cut' then 469 + local spr = p.operstack:get_definition()._sorcery 470 + local sch = (spr and spr.material and spr.material.data.hardness) or 2 471 + local suses = sch * constants.cuts_per_scissor_hardness 472 + local dmg = 65535 / suses 473 + 474 + local cutrec = ItemStack('sorcery:recipe') 475 + sorcery.cookbook.setrecipe(cutrec,rec.kind,rec.name) 476 + table.remove(book.pages,recnr) 477 + minetest.add_item(pos, user:get_inventory():add_item('main', p.inv:add_item('output', cutrec))) 478 + 479 + p.operstack:add_wear(dmg) 480 + bookchanged = true 481 + end 482 + if bookchanged then 483 + sorcery.cookbook.set(subj, book) 484 + changed = true 485 + end 486 + break 487 + end 488 + end end 489 + end 490 + 491 + if changed then 492 + p.inv:set_stack('subject',1,subj) 493 + p.inv:set_stack('ink',1,p.inkstack) 494 + p.inv:set_stack('pen',1,p.penstack) 495 + p.inv:set_stack('operand',1,p.operstack) 496 + p.meta:set_int('inkwell',p.inkwell) 497 + ws_formspec(pos) 498 + end 499 + end; 500 + 501 + allow_metadata_inventory_put = function(pos,list,index,stack,user) 502 + local matchgrp = function(grp) 503 + return minetest.get_item_group(stack:get_name(), grp) ~= 0 504 + end 505 + local allowgroups = function(groups) 506 + for g,c in pairs(groups) do 507 + if matchgrp(g) then 508 + if c==0 then return stack:get_count() 509 + else return c end 510 + end 511 + end 512 + return 0 513 + end 514 + if list == 'subject' then 515 + return allowgroups{book=1,paper=1} 516 + elseif list == 'ink' then 517 + return allowgroups{ink=0} 518 + elseif list == 'pen' then 519 + return allowgroups{sorcery_pen=1} 520 + elseif list == 'operand' then 521 + -- TODO restrict to meaningful operands 522 + return stack:get_count() 523 + -- return allowgroups{book=0,paper=0,ink=0,...} 524 + end 525 + return 0 526 + end; 527 + allow_metadata_inventory_move = function(pos,fl,fi,tl,ti,ct,user) 528 + -- TODO this is lazy, defuckulate 529 + if tl == 'operand' then return ct end 530 + return 0 531 + end; 532 + 533 + _sorcery = { 534 + recipe = { 535 + note = 'Edit manuals, copy their chapters, splice them together, or cut them apart'; 536 + }; 537 + }; 538 +})