/* Code for most implemented blocks. This code isn't in JSON form for reading purposes. If you want to add a modification, use the JSON format documented in [js/loader.js]. */ mainTiles.loadSet( 'Vanilla/Air', [ new Tile('none', 'Air').gravity(1.4 / 1000, 4, 200) .temperature(0, 0.01) .state(['Vanilla/Air', 'Hot Air'], 50, true), new Tile('none', 'Hot Air').gravity(1.4 / 1100, 4, 100) .temperature(100, 0.02) .state(['Vanilla/Air', 'Air'], 50, false) .state(['Vanilla/Air', 'Plasma'], 10000, true), new Tile('rgb(0,0,0)', 'Vacuum').gravity(0.01 / 1000 / 1000, 4, Infinity) .temperature(-296.15, 0), new Tile('rgb(180,156,229)', 'Hydrogen').gravity(0.8 / 1000, 4, 200) //H2 .temperature(0, 0.1) .state(['Vanilla/Air', 'Plasma'], 10000, true) .combine(['Vanilla/Air', 'Air'], ['Vanilla/Air', 'Hydrogen Flame'], ['Vanilla/Air', 'Hydrogen Flame']) .combine(['Vanilla/Air', 'Hot Air'], ['Vanilla/Air', 'Hydrogen Flame'], ['Vanilla/Air', 'Hydrogen Flame']), new Tile('rgb(255,0,239)', 'Plasma').gravity(1.4 / 5000, 4, 200) .temperature(11000, 2) .state(['Vanilla/Air', 'Hydrogen'], 9000, false) .state(['Vanilla/Air', '???'], 1e30, true) .combine(['Vanilla/Air', 'Hydrogen'], ['Vanilla/Air', 'Helium'], ['Vanilla/Air', 'Vacuum']), new Tile('random', '???').gravity(1e100, 4, 1e105) .temperature(1e31, 2) .state(['Vanilla/Air', 'Plasma'], 13000, false), new Tile('rgb(200,186,249)', 'Hydrogen Flame').gravity(0.8 / 1000, 4, 200) .temperature(50, 0.2) .state(['Vanilla/Air', 'Plasma'], 10000, true) .combine(['Vanilla/Air', 'Hydrogen'], ['Vanilla/Water', 'Steam'], ['Vanilla/Air', 'Hydrogen']) .combine(['Vanilla/Air', 'Hydrogen'], ['Vanilla/Air', 'Helium'], ['Vanilla/Air', 'Air']), new Tile('rgb(229,194,156)', 'Helium').gravity(0.7 / 1000, 4, 200) .temperature(0, 0.001) .state(['Vanilla/Air', 'Plasma'], 10000, true), new Tile('rgba(0,0,0,0.2)', 'Carbon Dioxide').gravity(1.3 / 1000, 4, 200) .temperature(0, 0.03) .state(['Vanilla/Air', 'Plasma'], 10000, true) .combine(['Vanilla/Fire', 'Fire'], ['Vanilla/Air', 'Carbon Dioxide'], ['Vanilla/Fire', 'Fire']) .combine(['Vanilla/Fire', 'Hydrogen'], ['Vanilla/Air', 'Charcoal'], ['Vanilla/Fire', 'Water']), new Tile('rgba(0,0,0,0.4)', 'Methane').gravity(1.2 / 1000, 4, 200) .temperature(0, 0.04) .state(['Vanilla/Air', 'Plasma'], 10000, true) .combine(['Vanilla/Fire', 'Fire'], ['Vanilla/Air', 'Methane'], ['Vanilla/Fire', 'Fire']) .combine(['Vanilla/Fire', 'Air'], ['Vanilla/Air', 'Carbon Dioxide'], ['Vanilla/Fire', 'Water']) ] ); mainTiles.loadSet( 'Vanilla/Earth', [ new Tile('rgb(153, 102, 51)', 'Earth').gravity(10, 1, 91), new Tile('rgb(143, 92, 41)', 'Soil').gravity(10, 1, 93), new Tile('rgb(255,0,0)', 'Barrier').unGravity(), new Tile('rgb(20,20,20)', 'Charcoal').gravity(11, 1, 100) .temperature(0, 0.5) .combine(['Vanilla/Air', 'Hot Air'], ['Vanilla/Fire', 'Fire'], ['Vanilla/Fire', 'Fire']) .combine(['Vanilla/Fire', 'Fire'], ['Vanilla/Air', 'Carbon Dioxide'], ['Vanilla/Air', 'Vacuum']) .combine(['Vanilla/Water', 'Steam'], ['Vanilla/Air', 'Methane'], ['Vanilla/Air', 'Air']), new Tile('rgb(53,46,32)', 'Mud').cohesion(2).gravity(12, 1.5, 113), new Tile('rgb(43, 33, 42)', 'Mudstone').gravity(10, 1, 89) .combine(['Vanilla/Water', 'Water'], ['Vanilla/Earth', 'Mud'], ['Vanilla/Air', 'Air']), new Tile('rgb(252,224,133)', 'Sand').gravity(10, 1, 93) .state(['Vanilla/Earth', 'Glass'], 1650, true) .combine(['Vanilla/Fire', 'Fire'], ['Vanilla/Air', 'Air'], ['Vanilla/Earth', 'Sand']) .combine(['Vanilla/Water', 'Acid'], ['Vanilla/Water', 'Water'], ['Vanilla/Earth', 'Clay']), new Tile('rgb(117,111,86)', 'Wet Sand').cohesion(2).gravity(12, 1.5, 112) .combine(['Vanilla/Fire', 'Fire'], ['Vanilla/Air', 'Air'], ['Vanilla/Earth', 'Packed Sand']), new Tile('rgb(187,158,110)', 'Packed Sand').gravity(11, 1.5, 103) .combine(['Vanilla/Fire', 'Fire'], ['Vanilla/Air', 'Air'], ['Vanilla/Earth', 'Sandstone']), new Tile('rgb(167,138,90)', 'Sandstone').unGravity(), new Tile('rgba(128,148,168,0.8)', 'Glass').gravity(10, 1, 93), new Tile('rgb(128,128,128)', 'Gravel').gravity(10, 1, 932) .combine(['Vanilla/Water', 'Acid'], ['Vanilla/Water', 'Water'], ['Vanilla/Earth', 'Sand']) .combine(['Vanilla/Life', 'Mycelium'], ['Vanilla/Air', 'Air'], ['Vanilla/Earth', 'Earth']), new Tile('rgb(56, 54, 52)', 'Basalt') .unGravity() .temperature(0, 1) .state(['Vanilla/Fire', 'Lava'], 773, true), new Tile('rgb(169,179,210)', 'Clay').gravity(10, 1, 89) .state(['Vanilla/Earth', 'Brick'], 1000, true), new Tile('rgb(211,108,108)', 'Brick').unGravity(), new Tile('rgb(66, 64, 62)', 'Rock').gravity(10, 1, 89) .combine(['Vanilla/Water', 'Acid'], ['Vanilla/Water', 'Water'], ['Vanilla/Earth', 'Gravel']), new Tile('rgb(56, 54, 52)', 'Rock Barrier').unGravity() .state(['Vanilla/Earth', 'Rock'], 800, true) .combine(['Vanilla/Water', 'Water'], ['Vanilla/Earth', 'Rock'], ['Vanilla/Water', 'Water']) .combine(['Vanilla/Water', 'Acid'], ['Vanilla/Water', 'Water'], ['Vanilla/Earth', 'Rock']), new Tile('rgb(235, 235, 235)', 'Salt') .gravity(10, 1, 110) .state(['Vanilla/Air', 'Plasma'], 10000, true) ] ) mainTiles.loadSet( 'Vanilla/Life', [ new Tile('rgb(114, 204, 123)', 'Grass').gravity(10, 1, 91) .temperature(0, 0.3) .combine(['Vanilla/Earth', 'Earth'], ['Vanilla/Life', 'Grass'], ['Vanilla/Life', 'Grass'], true) .state(['Vanilla/Earth', 'Charcoal'], 500, true), new Tile('rgb(97, 92, 97)', 'Mycelium').gravity(10, 1, 91) .temperature(0, 0.3) .combine(['Vanilla/Earth', 'Earth'], ['Vanilla/Life', 'Mycelium'], ['Vanilla/Life', 'Mycelium'], true) .combine(['Vanilla/Earth', 'Earth'], ['Vanilla/Earth', 'Soil'], ['Vanilla/Life', 'Mycelium']) .state(['Vanilla/Earth', 'Charcoal'], 500, true), new Tile('rgb(245,245,245)', 'Alive Conway Cell').life( ['Vanilla/Life', 'Alive Conway Cell'], ['Vanilla/Life', 'Dead Conway Cell']), new Tile('rgb(10,10,10)', 'Dead Conway Cell').life( ['Vanilla/Life', 'Alive Conway Cell'], ['Vanilla/Life', 'Dead Conway Cell']), new Tile('rgb(25,30,35)', 'Conway Buffer').gravity(10, 1, 91) .combine(['Vanilla/Life', 'Alive Conway Cell'], ['Vanilla/Life', 'Conway Buffer'], ['Vanilla/Life', 'Grass']) .combine(['Vanilla/Life', 'Dead Conway Cell'], ['Vanilla/Life', 'Conway Buffer'], ['Vanilla/Life', 'Mycelium']) ] ); mainTiles.loadSet( 'Vanilla/Water', [ new Tile('rgb(51, 153, 255)', 'Water').cohesion(2, 0.2).gravity(1, 2, 110) .temperature(-5, 0.05, 5) .state(['Vanilla/Water', 'Steam'], 100, true) .state(['Vanilla/Water', 'Ice'], -23, false) .combine(['Vanilla/Earth', 'Earth'], ['Vanilla/Earth', 'Mud'], ['Vanilla/Air', 'Air']) .combine(['Vanilla/Earth', 'Sand'], ['Vanilla/Earth', 'Wet Sand'], ['Vanilla/Air', 'Air']), new Tile('rgb(45, 255, 15)', 'Acid').cohesion(2, 0.3).gravity(1.01, 2.2, 110) .temperature(-5, 0.05, 5) .state(['Vanilla/Water', 'Steam'], 100, true) .state(['Vanilla/Water', 'Ice'], -23, false), new Tile('rgb(81, 200, 255)', 'Ice').unGravity() .temperature(-30, 0.05, 5) .state(['Vanilla/Water', 'Water'], -23, true), new Tile('rgb(255, 255, 255)', 'Snow') .temperature(-30, 0.05, 5) .state(['Vanilla/Water', 'Water'], -23, true) .gravity(10, 1, 93), new Tile('rgb(208,232,237)', 'Steam').gravity(1.2 / 1000, 3, 11) .temperature(80, 0.1, 0.5) .state(['Vanilla/Air', 'Plasma'], 10000, true) .state(['Vanilla/Water', 'Water'], 77, false) .state(['Vanilla/Water', 'Snow'], -23, false), new Tile('rgb(145,201,152)', 'Slime').cohesion(5, 0.8).gravity(1.5, 2, 16) .combine(['Vanilla/Water', 'Acid'], ['Vanilla/Earth', 'Salt'], ['Vanilla/Water', 'Water']) .state(['Vanilla/Water', 'Steam'], 100, true) .state(['Vanilla/Water', 'Ice'], -23, false) ] ) mainTiles.loadSet( 'Vanilla/Fire', [ new Tile('rgb(255, 64, 0)', 'Fire') .temperature(1200, 1) .state(['Vanilla/Air', 'Carbon Dioxide'], 500, false) .state(['Vanilla/Air', 'Plasma'], 10000, true) .gravity(1.4 / 1000, 4, 200) .combine(['Vanilla/Water', 'Water'], ['Vanilla/Water', 'Steam'], ['Vanilla/Air', 'Carbon Dioxide']) .combine(['Vanilla/Air', 'Vacuum'], ['Vanilla/Air', 'Carbon Dioxide'], ['Vanilla/Air', 'Vacuum']) .combine(['Vanilla/Air', 'Air'], ['Vanilla/Fire', 'Fire'], ['Vanilla/Air', 'Hot Air']) .combine(['Vanilla/Air', 'Hot Air'], ['Vanilla/Fire', 'Fire'], ['Vanilla/Air', 'Hot Air']) .combine(['Vanilla/Air', 'Carbon Dioxide'], ['Vanilla/Air', 'Carbon Dioxide'], ['Vanilla/Air', 'Carbon Dioxide'],), new Tile('rgb(128, 32, 0)', 'Lava').cohesion(2, 0.2).gravity(1, 2, 11) .temperature(9500, 4) .state(['Vanilla/Earth', 'Basalt'], 673, false) .state(['Vanilla/Air', 'Plasma'], 10000, true) .combine(['Vanilla/Water', 'Water'], ['Vanilla/Water', 'Steam'], ['Vanilla/Earth', 'Basalt']) ] ) mainTiles.loadSet( 'Vanilla/Machines', [ new Tile('rgb(237, 162, 71)', 'Copper') .temperature(0, 10), new Tile('rgb(255,255,128)', 'Duplicator') .unGravity() .gravity(1000, 0, 0) .duplicate() ] ) mainTiles.loadSet( 'Vanilla/Sponge', [ new Tile('rgb(158,150,91)', 'Sponge').unGravity() .combine(['Vanilla/Water', 'Water'], ['Vanilla/Air', 'Air'], ['Vanilla/Sponge', 'Wet Sponge']), new Tile('rgb(86,81,39)', 'Wet Sponge').unGravity() .combine(['Vanilla/Fire', 'Fire'], ['Vanilla/Water', 'Steam'], ['Vanilla/Sponge', 'Sponge']) .combine(['Vanilla/Sponge', 'Sponge'], ['Vanilla/Sponge', 'Wet Sponge'], ['Vanilla/Sponge', 'Sponge']), new Tile('rgb(255,255,0)', 'Infinite Sponge').unGravity() .combine(['Vanilla/Water', 'Water'], ['Vanilla/Air', 'Air'], ['Vanilla/Sponge', 'Infinite Sponge']), ] ); let air = mainTiles.resolveID('Vanilla/Air', 'Air'); setTimeout(function () { for (let tile in mainTiles.tiles) { let h = mainTiles.tiles[tile].hook; for (let hh of h) { hh(); } } }, 400)