From 85ba90bef59b7f2c30204a75828fae76a7bebf6b Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sat, 20 Jan 2024 08:13:24 +0000 Subject: [PATCH 01/34] Update 1.1 more_gold.js adds gold tree Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mods/more_gold.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/mods/more_gold.js b/mods/more_gold.js index 0e7d944d..ec98ce31 100644 --- a/mods/more_gold.js +++ b/mods/more_gold.js @@ -15,4 +15,26 @@ elements.molten_green_gold = { density: 13000, conduct: 0.87, Hidden: true -}; \ No newline at end of file +}; +elements.gold_tree = { + color: "#f2e013", + tick: function (pixel) { + if (pixel.h > 0 && pixelTicks % (50+pixel.h) === 0) { + + if (isEmpty(pixel.x-1,pixel.y)) { + createPixel("gold",pixel.x-1,pixel.y); + pixelMap[pixel.x-1][pixel.y].h = pixel.h-2; + } + if (isEmpty(pixel.x+1,pixel.y)) { + createPixel("gold",pixel.x+1,pixel.y); + pixelMap[pixel.x+1][pixel.y].h = pixel.h-2; + } + } + doDefaults(pixel); + }, + category:"solid", + breakInto: "gold", + state: "solid", + density: 8000, + seed: "gold_coin", +}, From c19b6aff9ebb2006d54884e90aedd6d282c496a3 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sat, 20 Jan 2024 08:15:03 +0000 Subject: [PATCH 02/34] Update mod-list.html for more_gold.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mod-list.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mod-list.html b/mod-list.html index 5eff199f..a6730624 100644 --- a/mod-list.html +++ b/mod-list.html @@ -215,6 +215,7 @@ fairy_chain.jsAdds way too many fairies to fey_and_more.jsAlice fantastic_creatures.jsAdds various animalsMelecie fantasy_elements.jsFantasy creatures and substancespixelegend4 +more_gold.jsAdds more gold variants and even a tree? fey_and_more.jsAdds fairies, magic, and a lot of other thingsMelecie fwibblen.jsAdds a flying creature that turns nickel into itself, and a second creature that does the same to the first oneAlice human_edit.jsImprovements to humansAlice From 9d40055e99911d6d1c9ed488f37cc0a4a6d47df0 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sat, 20 Jan 2024 08:15:55 +0000 Subject: [PATCH 03/34] Update mod-list.html for more_gold.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mod-list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index a6730624..74c158b7 100644 --- a/mod-list.html +++ b/mod-list.html @@ -215,7 +215,7 @@ fairy_chain.jsAdds way too many fairies to fey_and_more.jsAlice fantastic_creatures.jsAdds various animalsMelecie fantasy_elements.jsFantasy creatures and substancespixelegend4 -more_gold.jsAdds more gold variants and even a tree? +more_gold.jsAdds more gold variants and even a tree?pixelegend4 fey_and_more.jsAdds fairies, magic, and a lot of other thingsMelecie fwibblen.jsAdds a flying creature that turns nickel into itself, and a second creature that does the same to the first oneAlice human_edit.jsImprovements to humansAlice From a25730c0cc94c55f3ee40d675c586510565c912c Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sun, 21 Jan 2024 08:19:26 +0000 Subject: [PATCH 04/34] Update mod-list.html Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mod-list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index 2780b4e3..41ff5da2 100644 --- a/mod-list.html +++ b/mod-list.html @@ -219,7 +219,7 @@ fairy_chain.jsAdds way too many fairies to fey_and_more.jsAlice fantastic_creatures.jsAdds various animalsMelecie fantasy_elements.jsFantasy creatures and substancespixelegend4 -more_gold.jsAdds more gold variants and even a tree?pixelegend4 +more_gold.jsAdds more gold variants and even a tree?pixelegend4 fey_and_more.jsAdds fairies, magic, and a lot of other thingsMelecie fwibblen.jsAdds a flying creature that turns nickel into itself, and a second creature that does the same to the first oneAlice human_edit.jsImprovements to humansAlice From 50a038e16c7d5e6b24cb91686a70503be5a9e746 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sun, 21 Jan 2024 20:58:38 +0000 Subject: [PATCH 05/34] Add files via upload Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- leek.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 leek.js diff --git a/leek.js b/leek.js new file mode 100644 index 00000000..b19fd15d --- /dev/null +++ b/leek.js @@ -0,0 +1,31 @@ +elements.leek = { + color: ["#3ad664","#34cf5d","#20d450","#2fd65c"], + behavior: behaviors.SOLID, + category: "food", + viscosity: 35, + state: "solid", + density: 9999, + breakInto: "leek_mash", +}; + +elements.leek_mash = { + color: "#75eb95", + behavior: behaviors.POWDER, + category: "food", + viscosity: 35, + state: "solid", + density: 9999, + reactions: { + "mashed_potato": { elem1: "leek_soup", elem2: "leek_soup" }, + }, +}; + +elements.leek_soup = { + color: ["#b8eb75","#b6ed6d"], + behavior: behaviors.LIQUID, + category: "food", + viscosity: 35, + state: "liquid", + density: 800, +}; + From f67b0b5a611b0f77d42afa719b326082b8f172cc Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sun, 21 Jan 2024 21:11:03 +0000 Subject: [PATCH 06/34] Update leek.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- leek.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/leek.js b/leek.js index b19fd15d..5adec07c 100644 --- a/leek.js +++ b/leek.js @@ -27,5 +27,8 @@ elements.leek_soup = { viscosity: 35, state: "liquid", density: 800, + reactions: { + "water": { elem1: "leek_soup", elem2: "leek_soup" }, + }, }; From c679fbe39d2a4e5bb59535b8008fdcb11bda8f19 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Mon, 22 Jan 2024 07:57:27 +0000 Subject: [PATCH 07/34] Update 1.0.1 leek.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> From f5c5757a2c2a5890017a835e364544c385e56548 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Mon, 22 Jan 2024 07:58:02 +0000 Subject: [PATCH 08/34] Update 1.0.1 more_gold.js removed bug Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mods/more_gold.js | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/mods/more_gold.js b/mods/more_gold.js index ec98ce31..642d2d8e 100644 --- a/mods/more_gold.js +++ b/mods/more_gold.js @@ -16,25 +16,4 @@ elements.molten_green_gold = { conduct: 0.87, Hidden: true }; -elements.gold_tree = { - color: "#f2e013", - tick: function (pixel) { - if (pixel.h > 0 && pixelTicks % (50+pixel.h) === 0) { - if (isEmpty(pixel.x-1,pixel.y)) { - createPixel("gold",pixel.x-1,pixel.y); - pixelMap[pixel.x-1][pixel.y].h = pixel.h-2; - } - if (isEmpty(pixel.x+1,pixel.y)) { - createPixel("gold",pixel.x+1,pixel.y); - pixelMap[pixel.x+1][pixel.y].h = pixel.h-2; - } - } - doDefaults(pixel); - }, - category:"solid", - breakInto: "gold", - state: "solid", - density: 8000, - seed: "gold_coin", -}, From 82cd3bbe2ef5f453d924d6705daff581915b8e36 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Mon, 22 Jan 2024 16:07:45 +0000 Subject: [PATCH 09/34] Update mod-list.html Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mod-list.html | 1 - 1 file changed, 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index 41ff5da2..d0c8854f 100644 --- a/mod-list.html +++ b/mod-list.html @@ -219,7 +219,6 @@ fairy_chain.jsAdds way too many fairies to fey_and_more.jsAlice fantastic_creatures.jsAdds various animalsMelecie fantasy_elements.jsFantasy creatures and substancespixelegend4 -more_gold.jsAdds more gold variants and even a tree?pixelegend4 fey_and_more.jsAdds fairies, magic, and a lot of other thingsMelecie fwibblen.jsAdds a flying creature that turns nickel into itself, and a second creature that does the same to the first oneAlice human_edit.jsImprovements to humansAlice From eb561d7ba5f02f0d0be5bcbcf5273a20b6bc1b30 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Mon, 22 Jan 2024 17:14:54 +0000 Subject: [PATCH 10/34] Update more_gold.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mods/more_gold.js | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/more_gold.js b/mods/more_gold.js index 642d2d8e..8886aaaf 100644 --- a/mods/more_gold.js +++ b/mods/more_gold.js @@ -16,4 +16,3 @@ elements.molten_green_gold = { conduct: 0.87, Hidden: true }; - From aaaee3e4a618640e40f5508846363d97771c29bb Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Mon, 22 Jan 2024 17:15:37 +0000 Subject: [PATCH 11/34] Update more_gold.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> From 705b882cc190bcfb4670c23bb440b57028602f36 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Mon, 22 Jan 2024 17:16:01 +0000 Subject: [PATCH 12/34] Update more_gold.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> From da322a53e2cc140142fd434bc839a609a9ed9a80 Mon Sep 17 00:00:00 2001 From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com> Date: Thu, 25 Jan 2024 17:41:18 +0800 Subject: [PATCH 13/34] A Chef's Dream v1.3! --- mods/aChefsDream.js | 695 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 683 insertions(+), 12 deletions(-) diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js index 6269b075..a87f7415 100644 --- a/mods/aChefsDream.js +++ b/mods/aChefsDream.js @@ -127,6 +127,36 @@ Changelog (v1.2) - added cream of tartar - added wine - added corn syrup + + + +Changelog (v1.3) + - added shrimp + - added coconuts + - added coconut stems + - added coconut leaves + - added coconut tree tops + - added coconut milk and coconut juice + - added cut coconuts + - salmon and tuna meats no longer melt + - added knife description + - added lemons and related stuff + - lemons + - lemon wood + - lemon branches + - lemon leaves + - lemon juice + - made by smashing lemons + - lemon seeds + - lemon slices + - made by cutting lemons + - lemon zest + - byproduct of cutting lemons + - lemon marmalade can now be made by mixing lemon slices or lemon zest with sugar + - added carrots + - added carrot seeds and leaves + - added carrot juice + - added dry icing */ /* @@ -150,6 +180,8 @@ elements.knife = { changePixel(pixel, cutInto) }, category:"tools", + canPlace: false, + desc: "Use on pixels to cut them, if possible." } elements.chicken = { @@ -912,13 +944,25 @@ elements.icing_sugar = { elements.icing = { color: "#fefefb", - behavior: behaviors.STURDYPOWDER, + behavior: behaviors.LIQUID, onMix: function(icing_sugar1, icing_sugar2) { if ((shiftDown && Math.random() < 0.2) || (elements[icing_sugar2.element].id === elements.icing_sugar.id && Math.random() < 0.25)) { changePixel(icing_sugar1,"icing") } }, - viscosity: 1.5, + tempHigh: 45, + stateHigh: ["dry_icing"], + stateLowColorMultiplier: 0.97, + category: "food", + isFood: true, + state: "solid", + density: 959.97, + viscosity: 9000, +}; + +elements.dry_icing = { + color: "#fffefa", + behavior: behaviors.STURDYPOWDER, tempHigh: 1000, stateHigh: ["smoke","smoke","smoke","steam","steam","calcium"], stateLowColorMultiplier: 0.97, @@ -926,6 +970,7 @@ elements.icing = { isFood: true, state: "solid", density: 959.97, + viscosity: 9000, }; elements.cream.reactions.baked_batter = {elem2: "cake" } @@ -1370,18 +1415,18 @@ elements.smoked_salmon = { state: "solid", temp:55, tempHigh: 600, - stageHigh: ["ash", "smoke"], + stateHigh: ["ash", "smoke"], isFood: true, } -elements.steaned_salmon = { +elements.steamed_salmon = { color: ["#BB7B4B", "#B07B54"], behavior: behaviors.STURDYPOWDER, category: "food", state: "solid", temp:60, tempHigh: 600, - stageHigh: ["ash", "smoke"], + stateHigh: ["ash", "smoke"], isFood: true, } @@ -1392,7 +1437,7 @@ elements.boiled_salmon = { state: "solid", temp:70, tempHigh: 600, - stageHigh: ["ash", "smoke"], + stateHigh: ["ash", "smoke"], isFood: true, } @@ -1403,7 +1448,7 @@ elements.fried_salmon = { state: "solid", temp:70, tempHigh: 600, - stageHigh: ["ash", "smoke"], + stateHigh: ["ash", "smoke"], isFood: true, } @@ -1443,7 +1488,7 @@ elements.smoked_tuna = { state: "solid", temp:55, tempHigh: 600, - stageHigh: ["ash", "smoke"], + stateHigh: ["ash", "smoke"], isFood: true, } @@ -1454,7 +1499,7 @@ elements.steamed_tuna = { state: "solid", temp:60, tempHigh: 600, - stageHigh: ["ash", "smoke"], + stateHigh: ["ash", "smoke"], isFood: true, } @@ -1465,7 +1510,7 @@ elements.boiled_tuna = { state: "solid", temp:70, tempHigh: 600, - stageHigh: ["ash", "smoke"], + stateHigh: ["ash", "smoke"], isFood: true, } @@ -1476,7 +1521,7 @@ elements.fried_tuna = { state: "solid", temp:70, tempHigh: 600, - stageHigh: ["ash", "smoke"], + stateHigh: ["ash", "smoke"], isFood: true, } @@ -1655,6 +1700,7 @@ elements.grape_juice = { "clay_soil": { elem1: null, elem2: "clay" }, "seltzer": { elem1: "soda", elem2: "foam" }, "carbon_dioxide": { elem1: "soda", elem2: "foam" }, + "milk": { elem1: "fruit_milk", elem2: "fruit_milk" }, "yeast": { elem1: ["wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","wine","cream_of_tartar"], elem2: null, chance:80 }, }, tempHigh: 160, @@ -1665,6 +1711,7 @@ elements.grape_juice = { state: "liquid", density: 1054, stain: 0.05, + hidden: true, isFood: true }; @@ -1677,6 +1724,7 @@ elements.cream_of_tartar = { stateHigh: "caramel", density: 1500, isFood: true, + hidden: true, reaction: { "sugar_water": {elem2: "corn_syrup", elem1: null, tempMin: 110} } @@ -1690,7 +1738,9 @@ elements.wine = { tempHigh: 100, stateHigh: "steam", isFood: true, - density: 1200, + density: 1000, + hidden: true, + tempLow: 0 } elements.corn_syrup = { @@ -1701,5 +1751,626 @@ elements.corn_syrup = { tempHigh: 100, stateHigh: "caramel", isFood: true, + hidden: true, viscosity: 10000 } + +elements.shrimp = { + color: ["#EE5422", "#E9683C", "#F3583F", "#EDA270"], + behavior: [ + "SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14|M2%7.5 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%5|SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14", + "SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14|FX%20|SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14", + "M2 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%15|M1|M2 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%15", + ], + category: "life", + state: "solid", + reactions: { + "algae": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "plant": { elem2:null, chance:0.125, func:behaviors.FEEDPIXEL }, + "fly": { elem2:null, chance:0.4, func:behaviors.FEEDPIXEL }, + "firefly": { elem2:null, chance:0.6, func:behaviors.FEEDPIXEL }, + "worm": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "tadpole": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "oxygen": { elem2:"carbon_dioxide", chance:0.5 }, + "dead_bug": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL }, + "broth": { elem2:"water", chance:0.2, func:behaviors.FEEDPIXEL }, + "slug": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL }, + "herb": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "lettuce": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "dead_plant": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "lichen": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL }, + "yeast": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "yogurt": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "tea": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL }, + "meat": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "rotten_meat": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "cooked_meat": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "yolk": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "cell": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "crumb": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL }, + }, +} + + +elements.coconut_seed = { + color: "#7a603d", + tick: function(pixel) { + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100) { + if (!outOfBounds(pixel.x,pixel.y+1)) { + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { + changePixel(dirtPixel,"root"); + } + } + if (isEmpty(pixel.x,pixel.y-1) && pixel.height < 7) { + movePixel(pixel,pixel.x,pixel.y-1); + createPixel(Math.random() > 0.5 ? "coconut_stem" : "coconut_stem",pixel.x,pixel.y+1); + + pixel.height++ + } + } + else if (pixel.age > 150 && pixel.height > 6 && Math.random() < 0.1) { + changePixel(pixel,"coconut_tree_top"); + } + pixel.age++; + doDefaults(pixel); + }, + properties: { + "age":0, + "height": 0 + }, + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -2, + stateLow: "frozen_plant", + burn: 65, + burnTime: 15, + category: "life", + state: "solid", + density: 1500, + cooldown: defaultCooldown, + seed: true, + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|M1|XX", + ], +}; + +elements.coconut_stem = { + color: "#8f6c3f", + behavior: behaviors.WALL, + tempHigh: 400, + stateHigh: ["ember","charcoal","fire","fire","fire"], + category: "solids", + burn: 5, + burnTime: 300, + burnInto: ["ember","charcoal","fire"], + state: "solid", + hardness: 0.15, + breakInto: "sawdust", + breakIntoColor: ["#dba66e","#cc8a64"], + hidden: true +} +elements.coconut_tree_top = { + color: "#8f6c3f", + behavior: behaviors.WALL, + tempHigh: 400, + stateHigh: ["ember","charcoal","fire","fire","fire"], + category: "solids", + burn: 5, + burnTime: 300, + burnInto: ["ember","charcoal","fire"], + state: "solid", + hardness: 0.15, + breakInto: "sawdust", + breakIntoColor: ["#dba66e","#cc8a64"], + properties:{ + "leftleaves": 0, + "rightleaves": 0, + }, + hidden: true, + tick: function(pixel) { + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.rightleaves == 0) { + if (isEmpty(pixel.x+1,pixel.y)) { + createPixel(Math.random() > 0.5 ? "coconut_leaves" : "coconut_leaves",pixel.x+1,pixel.y); + + pixel.rightleaves++ + } + } + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.rightleaves == 1) { + if (isEmpty(pixel.x+2,pixel.y)) { + createPixel(Math.random() > 0.5 ? "coconut_leaves" : "coconut_leaves",pixel.x+2,pixel.y); + + pixel.rightleaves++ + } + } + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.rightleaves == 2) { + if (isEmpty(pixel.x+3,pixel.y)) { + createPixel(Math.random() > 0.5 ? "coconut_leaves" : "coconut_leaves",pixel.x+3,pixel.y); + + pixel.rightleaves++ + } + } + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.rightleaves == 3) { + if (isEmpty(pixel.x+4,pixel.y+1)) { + createPixel(Math.random() > 0.5 ? "coconut_leaves" : "coconut_leaves",pixel.x+4,pixel.y+1); + + pixel.rightleaves++ + } + } + + + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.leftleaves == 0) { + if (isEmpty(pixel.x-1,pixel.y)) { + createPixel(Math.random() > 0.5 ? "coconut_leaves" : "coconut_leaves",pixel.x-1,pixel.y); + + pixel.leftleaves++ + } + } + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.leftleaves == 1) { + if (isEmpty(pixel.x-2,pixel.y)) { + createPixel(Math.random() > 0.5 ? "coconut_leaves" : "coconut_leaves",pixel.x-2,pixel.y); + + pixel.leftleaves++ + } + } + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.leftleaves == 2) { + if (isEmpty(pixel.x-3,pixel.y)) { + createPixel(Math.random() > 0.5 ? "coconut_leaves" : "coconut_leaves",pixel.x-3,pixel.y); + + pixel.leftleaves++ + } + } + if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.leftleaves == 3) { + if (isEmpty(pixel.x-4,pixel.y+1)) { + createPixel(Math.random() > 0.5 ? "coconut_leaves" : "coconut_leaves",pixel.x-4,pixel.y+1); + + pixel.leftleaves++ + } + } + + + if (Math.random() < 0.1 && pixel.age > 70 && pixel.temp < 100 && pixel.leftleaves > 0 && pixel.rightleaves > 0) { + if (isEmpty(pixel.x+1,pixel.y+1)) { + createPixel(Math.random() > 0.5 ? "coconut" : "coconut",pixel.x+1,pixel.y+1); + } + } + if (Math.random() < 0.1 && pixel.age > 70 && pixel.temp < 100 && pixel.leftleaves > 0 && pixel.rightleaves > 0) { + if (isEmpty(pixel.x-1,pixel.y+1)) { + createPixel(Math.random() > 0.5 ? "coconut" : "coconut",pixel.x-1,pixel.y+1); + } + } + pixel.age++; + doDefaults(pixel); +}, +} +elements.coconut_leaves = { + color: ["#569923","#5ea12b"], + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 } + }, + category:"life", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "dead_plant", + state: "solid", + density: 1050, + hidden: true +} +elements.coconut = { + color: "#6e4621", + behavior: [ + "ST:coconut_tree_top|ST:coconut_leaves|ST:coconut_tree_top", + "ST:coconut_stem|XX|ST:coconut_stem", + "M2|M1|M2", + ], + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 } + }, + category:"food", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "coconut_milk", + cutInto: ["cut_coconut"], + state: "solid", + density: 1050, +} + +elements.coconut_milk = { + color: "#fffcf2", + behavior: behaviors.LIQUID, + reactions: { + "melted_chocolate": { elem1:"chocolate_milk", elem2:null }, + "chocolate": { elem1:"chocolate_milk", elem2:"melted_chocolate", chance:0.05 }, + "coffee_ground": { elem1:"chocolate_milk", chance:0.05 }, + "juice": { elem1:"fruit_milk", elem2:null, chance:0.05 }, + "soda": { elem1:"pilk", elem2:null, chance:0.1 }, + "yolk": { elem1:"eggnog", elem2:null, chance:0.1 }, + "dirt": { elem1: null, elem2: "mud" }, + "sand": { elem1: null, elem2: "wet_sand" }, + "clay_soil": { elem1: null, elem2: "clay" }, + "caramel": { color1:"#C8B39A", elem2:null, chance:0.05 }, + "sugar": { elem2:null, chance:0.005}, + }, + tempLow: 0, + stateLow: "ice_cream", + stateLowColorMultiplier: [0.97,0.93,0.87], + tempHigh: 93, + stateHigh: "yogurt", + viscosity: 1.5, + category: "liquids", + state: "liquid", + density: 1036.86, + isFood: true +} + +elements.tea.reactions.coconut_milk = { elem2:null, color1:"#ad8955", chance:0.005} +elements.coffee.reactions.coconut_milk = { elem2:"foam", color1:"#856545", chance:0.005} + +elements.cut_coconut = { + color: "#fff2cf", + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "M2|M1|M2", + ], + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 } + }, + category:"food", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "coconut_juice", + state: "solid", + density: 1050, + hidden: true, +} + +elements.coconut_juice = { + color: "#e9ebe4", + behavior: behaviors.LIQUID, + reactions: { + "dirt": { elem1: null, elem2: "mud" }, + "sand": { elem1: null, elem2: "wet_sand" }, + "clay_soil": { elem1: null, elem2: "clay" }, + "caramel": { color1:"#C8B39A", elem2:null, chance:0.05 }, + }, + tempLow: 0, + tempHigh: 93, + stateHigh: ["sugar","steam"], + viscosity: 1.5, + category: "liquids", + state: "liquid", + density: 1036.86, + hidden: true, + isFood: true +} + +elements.lemon_wood = { + color: "#786531", + behavior: behaviors.WALL, + tempHigh: 400, + stateHigh: ["ember","charcoal","fire","fire","fire"], + category: "solids", + burn: 5, + burnTime: 300, + burnInto: ["ember","charcoal","fire"], + state: "solid", + hardness: 0.15, + breakInto: "sawdust", + breakIntoColor: ["#dba66e","#cc8a64"], +} +elements.lemon_branch = { + color: "#786531", + behavior: [ + "CR:lemon_leaves,lemon_branch%2|CR:lemon_leaves,lemon_leaves,lemon_leaves,lemon_branch%2|CR:lemon_leaves,lemon_branch%2", + "XX|XX|XX", + "XX|XX|XX", + ], + tempHigh: 100, + stateHigh: "lemon_wood", + tempLow: -30, + stateLow: "lemon_wood", + category: "life", + burn: 40, + burnTime: 50, + burnInto: ["sap","ember","charcoal"], + hidden: true, + state: "solid", + density: 1500, + hardness: 0.15, + breakInto: ["sap","sawdust"], + hidden: true, +} +elements.lemon_leaves = { + color: ["#42b336","#46a83b"], + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|CR:lemon%0.15|XX", + ], + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035} + }, + category:"life", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "dead_plant", + state: "solid", + density: 1050, + seed: "lemon_seed", + hidden: true +} +elements.lemon = { + color: ["#dbd937","#e0dd28"], + behavior: behaviors.POWDER, + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "sugar": { elem1:"marmalade", elem2:null, color1:"#e0bf2b", chance:0.35 } + }, + category:"food", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "lemon_juice", + state: "solid", + density: 1050, + isFood: true, + cutInto: ["lemon_zest","lemon_slice","lemon_slice","lemon_slice","lemon_slice"], +} + +elements.lemon_juice = { + color: "#e0d358", + behavior: behaviors.LIQUID, + category: "liquids", + tempHigh: 100, + stateHigh: ["steam","sugar"], + burn: 70, + burnTime: 300, + burnInto: ["steam", "smoke"], + state: "liquid", + density: 825, + hidden: true, + temp: 30, + hidden: true, + tempLow: 0 +}; + +elements.lemon_zest = { + color: "#dbc535", + behavior: behaviors.POWDER, + category:"food", + tempHigh: 100, + stateHigh: ["sugar","steam"], + burn:65, + burnTime:60, + burnInto: "dead_plant", + state: "solid", + density: 1050, + hidden: true, + reactions: { + "sugar": { elem1:"marmalade", elem2:null, color1:"#e0bf2b", chance:0.35 } + }, +} + +elements.lemon_slice = { + color: "#ebe431", + behavior: behaviors.STURDYPOWDER, + category:"food", + tempHigh: 100, + stateHigh: ["sugar","steam"], + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "lemon_juice", + state: "solid", + density: 1050, + hidden: true, + reactions: { + "sugar": { elem1:"marmalade", elem2:null, color1:"#e0bf2b", chance:0.35 } + }, +} + +elements.lemon_seed = { + color: "#854610", + tick: function(pixel) { + if (isEmpty(pixel.x,pixel.y+1)) { + movePixel(pixel,pixel.x,pixel.y+1); + } + else { + if (Math.random() < 0.02 && pixel.age > 50 && pixel.temp < 100) { + if (!outOfBounds(pixel.x,pixel.y+1)) { + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { + changePixel(dirtPixel,"root"); + } + } + if (isEmpty(pixel.x,pixel.y-1)) { + movePixel(pixel,pixel.x,pixel.y-1); + createPixel(Math.random() > 0.5 ? "lemon_wood" : "lemon_branch",pixel.x,pixel.y+1); + } + } + else if (pixel.age > 1000) { + changePixel(pixel,"lemon_wood"); + } + pixel.age++; + } + doDefaults(pixel); + }, + properties: { + "age":0 + }, + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -2, + stateLow: "frozen_plant", + burn: 65, + burnTime: 15, + category: "life", + state: "solid", + density: 1500, + cooldown: defaultCooldown, + seed: true, + behavior: [ + "XX|XX|XX", + "XX|FX%10|XX", + "XX|M1|XX", + ], +}; + + +elements.carrot_seed = { + color: "#b08d35", + tick: function(pixel) { + if (Math.random() < 0.1 && pixel.age > 100 && pixel.temp < 100 && pixel.leafgrown == true && pixel.growthpixel == 0) { + if (!outOfBounds(pixel.x,pixel.y+1)) { + var randomNumber1 = Math.round(Math.random()) + pixel.growthpixel = pixel.growthpixel+randomNumber1 + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { + deletePixel(pixel.x,pixel.y+1); + movePixel(pixel,pixel.x,pixel.y+1); + createPixel("carrot_leaves",pixel.x,pixel.y-1); + pixel.growthpixel++; + } + } + + } + if (Math.random() < 0.1 && pixel.age > 100 && pixel.temp < 100 && pixel.leafgrown == true && pixel.growthpixel > 0 && pixel.growthpixel < 4) { + if (!outOfBounds(pixel.x,pixel.y+1)) { + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { + deletePixel(pixel.x,pixel.y+1); + movePixel(pixel,pixel.x,pixel.y+1); + createPixel("carrot",pixel.x,pixel.y-1); + pixel.growthpixel++; + } + } + + } + if (!isEmpty(pixel.x,pixel.y+1) && Math.random() > 0.95 && isEmpty(pixel.x-1,pixel.y-1) && isEmpty(pixel.x+1,pixel.y-1) && pixel.leafgrown == false) { + createPixel("carrot_leaves",pixel.x-1,pixel.y-1); + createPixel("carrot_leaves",pixel.x+1,pixel.y-1); + pixel.leafgrown++ + } + else if (pixel.age > 150 && pixel.growthpixel == 4 && Math.random() < 0.1) { + changePixel(pixel,"carrot"); + } + pixel.age++; + doDefaults(pixel); + }, + properties: { + "age":0, + "growthpixel": 0, + "leafgrown": false + }, + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -2, + stateLow: "frozen_plant", + burn: 65, + burnTime: 15, + category: "life", + state: "solid", + density: 1500, + cooldown: defaultCooldown, + seed: true, + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|M1|XX", + ], +}; +elements.carrot_leaves = { + color: ["#61cc3d","#58c234"], + behavior: behaviors.WALL, + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035} + }, + category:"life", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "dead_plant", + state: "solid", + density: 1050, + seed: "carrot_seed", + hidden: true +} +elements.carrot = { + color: "#e39919", + behavior: behaviors.STURDYPOWDER, + category:"food", + tempHigh: 100, + stateHigh: ["steam"], + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "carrot_juice", + state: "solid", + density: 1050, + hidden: true, +} + +elements.carrot_juice = { + color: "#f5a742", + behavior: behaviors.LIQUID, + category: "liquids", + tempHigh: 100, + stateHigh: ["steam","sugar"], + burn: 70, + tempLow: 0, + burnTime: 300, + burnInto: ["steam", "smoke"], + state: "liquid", + density: 825, + hidden: true, + temp: 30, +}; From fec4ac7b754b9f558cc31145d978d8b2c46da12b Mon Sep 17 00:00:00 2001 From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com> Date: Thu, 25 Jan 2024 17:42:39 +0800 Subject: [PATCH 14/34] Update Changelog! --- mods/aChefsDream.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js index a87f7415..fe4bb621 100644 --- a/mods/aChefsDream.js +++ b/mods/aChefsDream.js @@ -2,7 +2,7 @@ Created by SquareScreamYT and RealerRaddler Thanks to Alice, nousernamefound and Fioushemastor for helping :) -v1.1 +v1.3 Changelog (v1.0) - added chickens From dc831edc5777ee728a43bc28ddc12cc404aeda5d Mon Sep 17 00:00:00 2001 From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com> Date: Thu, 25 Jan 2024 18:02:08 +0800 Subject: [PATCH 15/34] A Chef's Dream v1.3.1! --- mods/aChefsDream.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js index fe4bb621..7d9ea2c2 100644 --- a/mods/aChefsDream.js +++ b/mods/aChefsDream.js @@ -2,7 +2,7 @@ Created by SquareScreamYT and RealerRaddler Thanks to Alice, nousernamefound and Fioushemastor for helping :) -v1.3 +v1.1 Changelog (v1.0) - added chickens @@ -157,6 +157,11 @@ Changelog (v1.3) - added carrot seeds and leaves - added carrot juice - added dry icing + + + +Changelog (v1.3.1) + - added lemonade */ /* @@ -2173,6 +2178,26 @@ elements.lemon_juice = { hidden: true, temp: 30, hidden: true, + tempLow: 0, + reactions: { + "sugar": {elem1:"lemonade", elem2: "null", chance:0.35} + } +}; + +elements.lemonade = { + color: "#fff378", + behavior: behaviors.LIQUID, + category: "liquids", + tempHigh: 100, + stateHigh: ["steam","sugar"], + burn: 70, + burnTime: 300, + burnInto: ["steam", "smoke"], + state: "liquid", + density: 825, + hidden: true, + temp: 30, + hidden: true, tempLow: 0 }; From b89b0ccd097a30ffb49898b3196a2df5f9c92ccf Mon Sep 17 00:00:00 2001 From: stefanblox <155691462+stefanblox@users.noreply.github.com> Date: Thu, 25 Jan 2024 23:19:29 -0300 Subject: [PATCH 16/34] sbstuff 2.5 this is fuckmod, go use sbmixup.js instead --- mods/sbstuff.js | 215 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 210 insertions(+), 5 deletions(-) diff --git a/mods/sbstuff.js b/mods/sbstuff.js index cb05c5bd..596e6999 100644 --- a/mods/sbstuff.js +++ b/mods/sbstuff.js @@ -66,7 +66,7 @@ elements.maple_syrup = { tempHigh: 500, stateHigh: "steam", color: "#9c6000", - behavior: behaviors.LIQUID, + behavior: behaviors.CRAWLER, category: "liquids", state: "liquid", }; @@ -362,6 +362,15 @@ elements.coca_cola = { state: "liquid", }; +elements.pepsi = { + tempHigh: 500, + stateHigh: "steam", + color: "#2b1717", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", +}; + elements.piss = { tempHigh: 500, stateHigh: "steam", @@ -1409,7 +1418,7 @@ elements.silver_coin = { state: "solid", }; -elements.max_graphics_in_roblox = { +elements.uraniumaniumaniumaniumanium_popcornicecream_plutoniumeptunium_238239 = { color: "#238fe8", behavior: [ "XX|XX|XX", @@ -1425,7 +1434,199 @@ elements.max_graphics_in_roblox = { excludeRandom: true, maxSize: 1, noMix: true, - desc: "ok now ACTUALLY use it at your own risk IM NOT KIDDING! THIS CAN FUCKING CRASH YOUR GAME" + desc: "ok now ACTUALLY use it at your own risk IM NOT KIDDING! THIS CAN FUCKING CRASH YOUR GAME", + excludeRandom: true, +}; + +elements.coffee_milk = { + tempHigh: 300, + stateHigh: "steam", + color: "#5c4c42", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", +}; + +elements.mentos = { + tempHigh: 500, + stateHigh: "ash", + color: "#d0cbd6", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid" +}; + +elements.oreo = { + tempHigh: 300, + stateHigh: "steam", + color: ["#211e1e","#fff6f5"], + singleColor: true, + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid" +}; + +elements.uranium_238 = { + tempHigh: 1200, + stateHigh: "molten_uranium", + color: ["#0f400b", "#30522d", "#4d6b4a", "#6f8f6d"], + behavior: [ + "XX|CR:radiation%1|XX", + "CR:radiation%1|CH:lead%0.001|CR:radiation%1", + "M2|M1|M2", + ], + category: "powders", + state: "liquid", + density: 19100, + hardness: 0.6, + conduct: 0.235, + excludeRandom: true, + reactions: { + "neutron": {elem1: "uranium_239",}, + } +}; + +elements.uranium_239 = { + tempHigh: 1300, + stateHigh: "molten_uranium", + color: ["#153816", "#135e14", "#379138", "#567556", "#7bb37b"], + behavior: [ + "XX|CR:radiation%2|XX", + "CR:radiation%2|CH:lead%0.002|CR:radiation%2", + "M2|M1|M2", + ], + category: "powders", + state: "liquid", + hidden: true, + density: 19100, + hardness: 0.6, + conduct: 0.235, + excludeRandom: true, + reactions: { + "electron": {elem1: "neptunium_239"} + } +}; + +elements.neptunium_239 = { + tempHigh: 1500, + stateHigh: "molten_uranium", + color: ["#082e19", "#173b27", "#354a3f", "#4c635a", "#344a41"], + behavior: [ + "XX|CR:radiation%3|XX", + "CR:radiation%3|CH:lead%0.003|CR:radiation%3", + "M2|M1|M2", + ], + category: "powders", + state: "liquid", + hidden: true, + density: 20000, + hardness: 0.7, + conduct: 0.3, + excludeRandom: true, + reactions: { + "electron": {elem1: "plutonium"}, + "neutron": { elem1:"n_explosion", tempMin:500, chance:0.1 } + } +}; + +elements.plutonium = { + tempHigh: 2000, + stateHigh: "molten_uranium", + color: ["#0a4a17", "#194d23", "#263b2a", "#475449"], + behavior: [ + "XX|CR:radiation%4|XX", + "CR:radiation%4|CH:lead%0.004|CR:radiation%4", + "M2|M1|M2", + ], + category: "powders", + state: "liquid", + hidden: true, + density: 22000, + hardness: 0.8, + conduct: 0.4, + excludeRandom: true, + reactions: { + "neutron": { elem1:"n_explosion", tempMin:500, chance:0.2 }, + "electron": { elem1:"n_explosion", tempMin:500, chance:0.00000000000000000000001 } + } +}; + +elements.electron = { + color: "#c99d16", + behavior: behaviors.BOUNCY, + reactions: { + "uranium": { temp2:100 }, + }, + temp: 35, + category: "energy", + state: "gas", + density: 0.00002, + ignoreAir: true +}; + +elements.sned = { + color: "#dfe0d9", + behavior: [ + "XX|XX AND CR:sned%1|XX", + "M2 AND CR:sned%1|XX|M2 AND CR:sned%1", + "M1|M1 AND CH:sned%1|M1", + ], + category: "joke", + state: "liquid", + excludeRandom: true +}; + +elements.uranium_tea = { + temp: 60, + tempHigh: 400, + stateHigh: "molten_uranium", + color: ["#0f8b15", "#316624", "#59864b", "#502e0f"], + behavior: behaviors.RADLIQUID, + category: "liquids", + state: "liquid" +}; + +elements.powerlaser = { + color: ["#ed0ca9","#ff2b95"], + tick: function(pixel) { + var x = pixel.x; + for (var y = pixel.y; y < height; y++) { + if (outOfBounds(x, y)) { + break; + } + if (isEmpty(x, y)) { + if (Math.random() > 0.05) { continue } + createPixel("flash", x, y); + pixelMap[x][y].color = "#b80ced"; + pixelMap[x][y].temp = 1001000; + } + else { + if (elements[pixelMap[x][y].element].isGas) { continue } + if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break } + pixelMap[x][y].temp += 901000; + pixelTempCheck(pixelMap[x][y]); + break; + } + } + deletePixel(pixel.x, pixel.y); + }, + temp: 1000000, + category: "energy", + state: "gas", + excludeRandom: true, + noMix: true +}; + +elements.magma_bomb = { + temp: 100, + color: "#b83109", + behavior: [ + "XX|EX:6>magma|XX", + "XX|XX|XX", + "M2|M1 AND EX:6>magma|M2" + ], + category: "weapons", + state: "liquid" }; elements.incinerate.category = "tools", @@ -1463,13 +1664,17 @@ if (!elements.water.reactions) elements.water.reactions = {}; elements.water.reactions.cocaine = { elem1: "solid_water", elem2: null } if (!elements.paper.reactions) elements.paper.reactions = {}; -elements.paper.reactions.bless = { elem1: "robux", elem2: null, chance: 0.001 } +elements.paper.reactions.bless = { elem1: "robux", elem2: null, chance: 0.0000001 } if (!elements.uranium.reactions) elements.uranium.reactions = {}; elements.uranium.reactions.ice_cream = {elem1: "uranium_ice_cream", elem2: null}, -elements.uranium.reactions.cream = {elem1: "uranium_ice_cream", elem2: null} +elements.uranium.reactions.cream = {elem1: "uranium_ice_cream", elem2: null}, +elements.uranium.reactions.tea = {elem1: "uranium_tea", elem2: null} if (!elements.dough.reactions) elements.dough.reactions = {}; elements.dough.reactions.yolk = {elem1: null, elem2: "spaghetti", tempMin: 25} +if (!elements.coffee.reactions) elements.coffee.reactions = {}; +elements.coffee.reactions.milk = {elem1: null, elem2: "coffee_milk",} + elements.silver.breakInto = "silver_coin" From 62281e744464c804e67584c4f2a64eb8634fa7a8 Mon Sep 17 00:00:00 2001 From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com> Date: Thu, 25 Jan 2024 21:42:15 -0500 Subject: [PATCH 17/34] Weapons.js missile optimization --- mods/weapons.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mods/weapons.js b/mods/weapons.js index 88f77107..04ed8a20 100644 --- a/mods/weapons.js +++ b/mods/weapons.js @@ -25,7 +25,7 @@ elements.little_boy = { cooldown: defaultCooldown }, elements.fat_man = { - color: ["#ffff00","#000000"], + color: ["#ffff00","#333333"], behavior: [ "XX|EX:28>plasma|XX", "XX|XX|XX", @@ -69,20 +69,20 @@ elements.fat_man = { category: "weapons" }, elements.left_missile = { - color: "#4c4e42", + color: "#4c4e42", behavior: [ - "XX|EX:10|XX", - "CR:left_missile AND EX:10|CH:fire|EX:10", - "M2|M1 AND EX:10|M2", + "M2|EX:10|XX", + "M1 AND EX:10|XX|EX:10", + "M2|EX:10|XX", ], category:"weapons", }, elements.right_missile = { - color: "#4c4e42", + color: "#4c4e42", behavior: [ - "XX|EX:10|XX", - "EX:10|CH:fire|EX:10 AND CR:right_missile", - "M2|M1 AND EX:10|M2", + "XX|EX:10|M2", + "EX:10|XX|M1 AND EX:10", + "XX|EX:10|M2", ], category:"weapons", }, From a241758ed2fe26da250cd79ad4fcd3a19f043035 Mon Sep 17 00:00:00 2001 From: An Orbit <68935009+orbit-loona@users.noreply.github.com> Date: Fri, 26 Jan 2024 15:38:54 -0500 Subject: [PATCH 18/34] make vivite pyrophoric --- mods/a_mod_by_alice.js | 198 +++++++++++++++++++++++++++++++++-------- 1 file changed, 162 insertions(+), 36 deletions(-) diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js index bedefec0..fec50ee1 100644 --- a/mods/a_mod_by_alice.js +++ b/mods/a_mod_by_alice.js @@ -3875,8 +3875,41 @@ color1 and color2 spread through striped paint like dye does with itself. col //No changeTemp for fire=>smoke elements.fire.tick = function(pixel){ - behaviors.UL_UR_OPTIMIZED(pixel); - if (!pixel.del && settings.burn===0 && (pixelTicks-pixel.start > 70) && Math.random() < 0.1 ) { changePixel(pixel,"smoke",false) } + if (pixel.start === pixelTicks) {return} + if (pixel.charge && elements[pixel.element].behaviorOn) { + pixelTick(pixel) + } + var move1Spots = [ + [pixel.x, pixel.y-1], + [pixel.x+1, pixel.y-1], + [pixel.x-1, pixel.y-1], + ] + var moved = false; + for (var i = 0; i < move1Spots.length; i++) { + var coords = move1Spots[Math.floor(Math.random()*move1Spots.length)]; + coords = {x: coords[0], y: coords[1]}; + if(!isEmpty(coords.x,coords.y,true) && pixelMap[coords.x]?.[coords.y]?.element == pixel.element && pixelMap[coords.x][coords.y].temp < pixel.temp) { + swapPixels(pixel,pixelMap[coords.x][coords.y]); + moved = true; break + } else { + if (tryMove(pixel, coords.x, coords.y)) { moved = true; break; } + else { move1Spots.splice(move1Spots.indexOf(coords), 1);} + } + } + if (!moved && !pixel.del) { + var move2Spots = [ + [pixel.x, pixel.y+1], + [pixel.x+1, pixel.y], + [pixel.x-1, pixel.y], + ] + for (var i = 0; i < move2Spots.length; i++) { + var coords = move2Spots[Math.floor(Math.random()*move2Spots.length)]; + if (tryMove(pixel, coords[0], coords[1])) { break; } + else { move2Spots.splice(move2Spots.indexOf(coords), 1); } + } + } + if (!pixel.del) { doDefaults(pixel); } + if (!pixel.del && settings.burn===0 && (pixelTicks-pixel.start > 70) && Math.random() < 0.1 ) { changePixel(pixel,"smoke",false) }; }; //New elements @@ -6827,7 +6860,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = -1; j < 2; j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -6854,7 +6887,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = -3; j < 4; j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -6882,7 +6915,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -6910,7 +6943,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -6938,7 +6971,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -6966,7 +6999,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -6994,7 +7027,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -7022,7 +7055,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -7050,7 +7083,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -7078,7 +7111,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -7106,7 +7139,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = (-1*squadius); j < (squadius+1); j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -7136,9 +7169,9 @@ color1 and color2 spread through striped paint like dye does with itself. col if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { if(pixel.uwu < 8) { - pixel.uwu += 1 + pixel.uwu++ } else { - pixel.owo += 1 + pixel.owo++ } } } @@ -8207,6 +8240,8 @@ color1 and color2 spread through striped paint like dye does with itself. col ["peach", "#ffbf7f"], ["mint", "#4df0a9"], ["gray", "#7F7F7F"], + ["lime", "#7FFF00"], + ["black", "#000000"], ["white", "#FFFFFF"], ["sky_blue", "#99d1f2"] ]; @@ -8215,6 +8250,62 @@ color1 and color2 spread through striped paint like dye does with itself. col newLegacyFnmDye(dyeColors[i][0],dyeColors[i][1]) }; + eLists.LED = ["led_r","led_g","led_b"]; + + function newLED(abbrev,hexColor,baseColorOverrideHex=null) { + if(!(hexColor.startsWith("#"))) { hexColor = "#" + hexColor }; + if(baseColorOverrideHex && !(baseColorOverrideHex.startsWith("#"))) { baseColorOverrideHex = "#" + baseColorOverrideHex }; + abbrev = abbrev.toLowerCase(); + var key = `led_${abbrev}`; + var pixelColor = baseColorOverrideHex ?? changeLuminance(hexColor,0x66/0xff,"multiply","hex",null,false); + + elements[key] = { + behavior: behaviors.WALL, + reactions: { + "light": {"charge1":1}, + "liquid_light": {"charge1":1}, + }, + color: pixelColor, + colorOn: hexColor, + category: "machines", + tempHigh: 1500, + stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"], + conduct: 1, + breakInto: "glass_shard" + }; + + eLists.LED.push(key) + }; + + var ledColors = [ + ["c", "#00FFFF"], //cyan + ["y", "#FFFF00"], //yellow + ["m", "#FF00FF"], //magenta (cursed) + ["p", "#AB00C2"], //purple (cursed) + ["v", "#7700FF"], //violet + ["w", "#FFFFFF"], //white (cursed) + ["gy", "#7F7F7F"], //gray (more cursed) + ["bl", "#000000", "#2b2b2b"], //black (super cursed) + ["o", "#FF7F00"], //orange + ["a", "#FFBF00"], //amber + ["l", "#7FFF00"], //lime + ["rs", "#FF0067"], //rose (cursed) + ["pk", "#FF7FFF"], //pink (cursed) + ["bg", "#9F005F"], //burgundy (cursed) + ["pc", "#ffbf7f"], //peach + ["mg", "#4df0a9"], //mint green + ["sb", "#99d1f2"] //sky blue (cursed) + ]; + + for(var i = 0; i < ledColors.length; i++) { + newLED(...ledColors[i]); + }; + + for(var i = 0; i < eLists.LED.length; i++) { + var key = eLists.LED[i]; + elements.malware.reactions[key] = { elem2:eLists.LED, chance:0.01 } + }; + //ASSORTED RAINBOW VARIANTS ## elements.concoction.reactions.diorite_gravel = { @@ -10275,7 +10366,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = -1; j < 2; j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == "msmine") { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -10627,7 +10718,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = -1; j < 2; j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1; + pixel.uwu++; }; }; }; @@ -10719,7 +10810,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for (let j = -1; j < 2; j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1; + pixel.uwu++; }; }; }; @@ -15537,9 +15628,14 @@ Pixel size (rendering only): (Use if the save looks cut o viscosity: 3**4, } - elements.redstone_dust.tempHigh = 2500 + elements.redstone_dust.tempHigh = 2500; - elements.redstone_dust.stateHigh = "destabilized_redstone" + elements.redstone_dust.stateHigh = "destabilized_redstone"; + + elements.redstone_dust.conduct = 0.9; + + elements.redstone_dust.colorOn = ["#FF2424","#FF0000","#FF1200"]; + elements.redstone_dust.color = ["#7f0000","#5f0000","#5f0500"]; elements.destabilized_redstone = { color: ["#9e0303", "#98061a", "#b80704", "#c4020c", "#f70008", "#9e0303", "#98061a", "#b80704", "#e3020a", "#8c0303", "#8c0303"], @@ -16770,9 +16866,10 @@ Pixel size (rendering only): (Use if the save looks cut o "fire": { elem2: null } }, tick: function(pixel) { - backgroundColor = hexToRGB(settings.bg); - pixel.rgbValue = "rgb("+backgroundColor.r+","+backgroundColor.g+","+backgroundColor.b+")"; - pixel.color = pixel.rgbValue; + /*var baseColor = settings.bg instanceof Array ? averageRgbPrefixedColorArray(settings.bg.map(x => convertColorFormats(x,"rgb"))) : convertColorFormats(settings.bg,"rgb"); + baseColor = convertColorFormats(baseColor,"json"); + pixel.color = "rgba(" + Object.values(baseColor).join(",") + ",0)"*/ + pixel.color = "rgba(0,0,0,0)" }, hardness: 0.6, category: "gases", @@ -19295,9 +19392,12 @@ Pixel size (rendering only): (Use if the save looks cut o if(isNaN(pixel.temp)) { pixel.temp = 20 }; if(Math.random() < 0.013 && exposedToAir(pixel)) { changePixel(pixel,"vivite_oxide",false); - pixel.temp += 0.1; + pixel.temp += 4; }; }, + burnTime: 160, + burnTempChange: 10.65, + burnInto: "vivite_oxide_powder", noResistance: true, reactions: { "ice": { elem1: "vivite_oxide", elem2: null, temp1: 0.2 }, @@ -19327,10 +19427,23 @@ Pixel size (rendering only): (Use if the save looks cut o behavior: behaviors.POWDER, tick: function(pixel) { if(Math.random() < 0.027 && exposedToAir(pixel)) { - changePixel(pixel,"vivite_oxide_powder",false); - pixel.temp += 0.1; + if(getEmptyMooreNeighbors(pixel).length > 4) { + pixel.burning = true; + pixel.burnStart = pixelTicks; + } else { + pixel.temp += 18; + changePixel(pixel,getStateAtTemp("vivite_oxide_powder",pixel.temp),false); + }; + + if(pixel.burning && ((pixel.temp + (2 * elements[pixel.element].burnTempChange)) > elements[pixel.element].tempHigh)) { + changePixel(pixel,elements[pixel.element].burnInto,false); + pixel.temp += 213; + }; }; }, + burnTime: 8, + burnTempChange: 213, + burnInto: "vivite_oxide_powder", reactions: { "ice": { elem1: "vivite_oxide_powder", elem2: null, temp1: 0.2 }, "water": { elem1: "vivite_oxide_powder", elem2: null, temp1: 0.2 }, @@ -19345,7 +19458,7 @@ Pixel size (rendering only): (Use if the save looks cut o "salt_ice": { elem1: "vivite_oxide_powder", elem2: "salt" } }, noResistance: true, - tempHigh: 938, + tempHigh: 1725, stateHigh: "molten_vivite", category: "solids", state: "solid", @@ -19382,7 +19495,7 @@ Pixel size (rendering only): (Use if the save looks cut o return false; }; - if(elements[newElement].noViviteSlag) { //Excluded + if(elements[newElement].noViviteSlag || elements[pixel.element].ignore?.includes(newPixel.element)) { //Excluded return false; }; @@ -19399,12 +19512,13 @@ Pixel size (rendering only): (Use if the save looks cut o color: ["#f7a6e5", "#fa70d1", "#f0bbf2"], colorOn: ["#ff63ac", "#ff21bd", "#e81af0"], fireColor: ["#ff66ba", "#ff85ef", "#ff99f7"], + ignore: ["wall","heejinite","jinsoulite","haseulite","molten_heejinite","molten_jinsoulite","molten_haseulite","yvesite","molten_yvesite"], tick: function(pixel) { var info = elements[pixel.element]; if(Math.random() < 0.022 && exposedToAir(pixel)) { changePixel(pixel,pixel.temp > 7315.27 ? "molten_vivite_oxide" : "vivite_oxide_powder",false) - pixel.temp += 0.1; + pixel.temp += 18; }; if(Math.random() < 0.025) { @@ -19448,10 +19562,13 @@ Pixel size (rendering only): (Use if the save looks cut o }, density: 8212, state: "liquid", + burnTime: 160, + burnTempChange: 10.65, + burnInto: "vivite_oxide_powder", hardness: 0.88, viscosity: 10000, breakInto: "vivite_gas", - temp: 1100, + temp: 2000, tempHigh: 2256, stateHigh: "vivite_gas", tempLow: 938, @@ -19582,13 +19699,22 @@ Pixel size (rendering only): (Use if the save looks cut o fireColor: ["#ff66ba", "#ff85ef", "#ff99f7"], tick: function(pixel) { if(Math.random() < 0.032 && exposedToAir(pixel)) { - changePixel(pixel,pixel.temp > 15500 ? "vivite_oxide_gas" : pixel.temp > 7315.27 ? "molten_vivite_oxide" : "vivite_oxide_powder",false); + if(getEmptyMooreNeighbors(pixel).length > 4) { + pixel.burning = true; + pixel.burnStart = pixelTicks; + } else { + pixel.temp += 18; + changePixel(pixel,pixel.temp > 15500 ? "vivite_oxide_gas" : pixel.temp > 7315.27 ? "molten_vivite_oxide" : "vivite_oxide_powder",false); + }; }; }, behavior: behaviors.GAS, state: "gas", tempLow: 2256, stateLow: "molten_vivite", + burnTime: 8, + burnTempChange: 213, + burnInto: "vivite_oxide_powder", density: 18.02, temp: 3300, hardness: 1, @@ -26059,7 +26185,7 @@ Pixel size (rendering only): (Use if the save looks cut o }; for(var i in adjacentCoords) { if(Math.random() < 0.005) { - pixel.temp+=1; + pixel.temp++; var newCoords = [ pixel.x+adjacentCoords[i][0], pixel.y+adjacentCoords[i][1] @@ -40922,7 +41048,7 @@ Make sure to save your command in a file if you want to add this preset again.` for (var i = 1; i < width; i++) { for (var j = 1; j < height; j++) { if (!isEmpty(i,j)) { - pixelMap[i][j].temp += 1 + pixelMap[i][j].temp++ } } } @@ -41001,7 +41127,7 @@ Make sure to save your command in a file if you want to add this preset again.` for (let j = -8; j < 9; j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -41038,7 +41164,7 @@ Make sure to save your command in a file if you want to add this preset again.` for (let j = -8; j < 9; j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } @@ -41074,7 +41200,7 @@ Make sure to save your command in a file if you want to add this preset again.` for (let j = -8; j < 9; j++) { if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) { if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) { - pixel.uwu += 1 + pixel.uwu++ } } } From d39b255f7cb6be824407eaf2ade0d897e23190af Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Fri, 26 Jan 2024 22:23:39 -0500 Subject: [PATCH 19/34] Update mod-list.html --- mod-list.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index 3cc4c843..b45f0a0b 100644 --- a/mod-list.html +++ b/mod-list.html @@ -230,13 +230,13 @@ nocancer.jsRemoves cancer from the game one tick after it is createdmollthecoder nocancer2.jsRemoves cancer from the game altogether. May be incompatible with other mods that spawn cancermollthecoder nograssgrow.jsPrevents Grass from growingmollthecoder -obsidian.jsAdds ObsidianJayd pizzasstuff.jsNew animals, foods, and plants_ilikepizza_ primordial_birthpool.jsA cross between Primordial Soup and Birthpool. Requires F&MAlice spring.jsMany nature elements, like sakura trees, butterflies, beehives, and moreR74n the_ground_og.jsSimplified and more stable version of the_ground.jsAlice the_ground.jsAdds several rock types, worldgen settings, and gemstonesAlice toothpaste.jsTeeth and pasteAlice +volcanic_expansion.jsAdds Obsidian, Pumice, and Andesite rocksJayd Fun & Games allliquids.jsMade all elements liquidsAlex @@ -271,6 +271,9 @@ rainbow_tests.jsAdds variants of the rainbow element with different mathsAlice Shroomboxels.jsA variant of acid_and_shapes.js that uses a different trigonometric functionAlice +Compilations +a_mod_by_alice.jsA mod combining most of Alice’s mods, and some other thingsAlice + Technical Libraries & Tests a_bundle_of_tests.jsSeveral test functionsAlice betterMenuScreens.jsLibrary for mods to create their own menusggod From 43da5258c342229063e4c8eff44c55a7e5e7d266 Mon Sep 17 00:00:00 2001 From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com> Date: Sat, 27 Jan 2024 12:13:25 +0800 Subject: [PATCH 20/34] A Chef's Dream 1.3.2! --- mods/aChefsDream.js | 172 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 165 insertions(+), 7 deletions(-) diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js index 7d9ea2c2..e026916d 100644 --- a/mods/aChefsDream.js +++ b/mods/aChefsDream.js @@ -2,7 +2,7 @@ Created by SquareScreamYT and RealerRaddler Thanks to Alice, nousernamefound and Fioushemastor for helping :) -v1.1 +v1.3.2 Changelog (v1.0) - added chickens @@ -162,6 +162,14 @@ Changelog (v1.3) Changelog (v1.3.1) - added lemonade + + + +Changelog (v1.3.2) + - added apple cider vinegar + - added turnips + - added turnip seeds and leaves + - added turnip juice */ /* @@ -894,7 +902,8 @@ elements.apple_juice = { hidden: true, temp: 30, reactions: { - "sugar": { elem1:"apple_jam", elem2:null, chance:0.35 } + "sugar": { elem1:"apple_jam", elem2:null, chance:0.35 }, + "yeast": { elem1:"apple_cider_vinegar", elem2:null, chance:0.35 } }, tempLow: 0 }; @@ -942,7 +951,6 @@ elements.icing_sugar = { viscosity: 1.5, category: "food", state: "solid", - hidden: true, density: 1036.86, isFood: true }; @@ -963,6 +971,7 @@ elements.icing = { state: "solid", density: 959.97, viscosity: 9000, + hidden: true }; elements.dry_icing = { @@ -976,6 +985,7 @@ elements.dry_icing = { state: "solid", density: 959.97, viscosity: 9000, + hidden: true }; elements.cream.reactions.baked_batter = {elem2: "cake" } @@ -1135,7 +1145,7 @@ elements.orange_slice = { burn:65, burnTime:60, burnInto: "dead_plant", - breakInto: "apple_juice", + breakInto: "orange_juice", state: "solid", density: 1050, hidden: true, @@ -1715,7 +1725,6 @@ elements.grape_juice = { category: "liquids", state: "liquid", density: 1054, - stain: 0.05, hidden: true, isFood: true }; @@ -2299,7 +2308,6 @@ elements.carrot_seed = { pixel.growthpixel++; } } - } if (Math.random() < 0.1 && pixel.age > 100 && pixel.temp < 100 && pixel.leafgrown == true && pixel.growthpixel > 0 && pixel.growthpixel < 4) { if (!outOfBounds(pixel.x,pixel.y+1)) { @@ -2311,13 +2319,14 @@ elements.carrot_seed = { pixel.growthpixel++; } } - } if (!isEmpty(pixel.x,pixel.y+1) && Math.random() > 0.95 && isEmpty(pixel.x-1,pixel.y-1) && isEmpty(pixel.x+1,pixel.y-1) && pixel.leafgrown == false) { + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { createPixel("carrot_leaves",pixel.x-1,pixel.y-1); createPixel("carrot_leaves",pixel.x+1,pixel.y-1); pixel.leafgrown++ } + } else if (pixel.age > 150 && pixel.growthpixel == 4 && Math.random() < 0.1) { changePixel(pixel,"carrot"); } @@ -2399,3 +2408,152 @@ elements.carrot_juice = { hidden: true, temp: 30, }; + +elements.apple_cider_vinegar = { + color: "#fffe75", + behavior: behaviors.LIQUID, + category: "liquids", + tempHigh: 100, + stateHigh: ["steam","sugar"], + burn: 70, + burnTime: 300, + burnInto: ["steam", "smoke"], + state: "liquid", + density: 825, + hidden: true, + temp: 30, + tempLow: 0 +}; + +elements.turnip_seed = { + color: "#994828", + tick: function(pixel) { + if (Math.random() < 0.1 && pixel.age > 100 && pixel.temp < 100 && pixel.leafgrown == true && pixel.growthpixel == 0) { + if (!outOfBounds(pixel.x,pixel.y+1)) { + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { + deletePixel(pixel.x,pixel.y+1); + movePixel(pixel,pixel.x,pixel.y+1); + createPixel("turnip_leaves",pixel.x,pixel.y-1); + pixel.growthpixel++; + } + } + + } + if (pixel.age > 100 && pixel.temp < 100 && pixel.leafgrown == true && pixel.growthpixel > 0 && pixel.growthpixel < 3) { + if (!outOfBounds(pixel.x-1,pixel.y)) { + var pixelleft = pixelMap[pixel.x-1][pixel.y]; + if (pixelleft.element === "dirt" || pixelleft.element === "mud" || pixelleft.element === "sand" || pixelleft.element === "wet_sand" || pixelleft.element === "clay_soil" || pixelleft.element === "mycelium") { + deletePixel(pixel.x-1,pixel.y); + createPixel("turnip",pixel.x-1,pixel.y); + } + } + if (!outOfBounds(pixel.x+1,pixel.y)) { + var pixelright = pixelMap[pixel.x+1][pixel.y]; + if (pixelright.element === "dirt" || pixelright.element === "mud" || pixelright.element === "sand" || pixelright.element === "wet_sand" || pixelright.element === "clay_soil" || pixelright.element === "mycelium") { + deletePixel(pixel.x+1,pixel.y); + createPixel("turnip",pixel.x+1,pixel.y); + } + } + } + if (Math.random() < 0.1 && pixel.age > 100 && pixel.temp < 100 && pixel.leafgrown == true && pixel.growthpixel > 0 && pixel.growthpixel < 3) { + if (!outOfBounds(pixel.x,pixel.y+1)) { + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { + deletePixel(pixel.x,pixel.y+1); + movePixel(pixel,pixel.x,pixel.y+1); + createPixel("turnip",pixel.x,pixel.y-1); + pixel.growthpixel++; + } + } + + } + if (!isEmpty(pixel.x,pixel.y+1) && Math.random() > 0.95 && isEmpty(pixel.x-1,pixel.y-1) && isEmpty(pixel.x+1,pixel.y-1) && pixel.leafgrown == false) { + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { + createPixel("turnip_leaves",pixel.x-1,pixel.y-1); + createPixel("turnip_leaves",pixel.x+1,pixel.y-1); + pixel.leafgrown++ + } + } + else if (pixel.age > 150 && pixel.growthpixel == 3 && Math.random() < 0.1) { + changePixel(pixel,"turnip"); + } + pixel.age++; + doDefaults(pixel); + }, + properties: { + "age":0, + "growthpixel": 0, + "leafgrown": false + }, + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -2, + stateLow: "frozen_plant", + burn: 65, + burnTime: 15, + category: "life", + state: "solid", + density: 1500, + cooldown: defaultCooldown, + seed: true, + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|M1|XX", + ], +}; +elements.turnip_leaves = { + color: ["#399431","#3b8c34"], + behavior: behaviors.WALL, + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035} + }, + category:"life", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "dead_plant", + state: "solid", + density: 1050, + seed: "turnip_seed", + hidden: true +} +elements.turnip = { + color: ["#945bb3","#a05cbd","#a053b8","#b364c4"], + behavior: behaviors.STURDYPOWDER, + category:"food", + tempHigh: 100, + stateHigh: ["steam"], + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "turnip_juice", + state: "solid", + density: 1050, + hidden: true, +} + +elements.turnip_juice = { + color: "#700f5d", + behavior: behaviors.LIQUID, + category: "liquids", + tempHigh: 100, + stateHigh: ["steam","sugar"], + burn: 70, + tempLow: 0, + burnTime: 300, + burnInto: ["steam", "smoke"], + state: "liquid", + density: 825, + hidden: true, + temp: 30, +}; From de81b49881330f6021d03a485ec973108ac4faa6 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sat, 27 Jan 2024 08:45:29 +0000 Subject: [PATCH 21/34] Update 1.3.2 fantasy_elements.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mods/fantasy_elements.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mods/fantasy_elements.js b/mods/fantasy_elements.js index f7fd6f6e..4ddc7e54 100644 --- a/mods/fantasy_elements.js +++ b/mods/fantasy_elements.js @@ -1,3 +1,6 @@ +// 1.3.2 fantasy_elements.js mod +// adds plode a bomb + elements.dragon_breath = { color: "#f94e4e", behavior: behaviors.GAS, @@ -608,3 +611,17 @@ elements.nebulaflare_wall = { "water": { elem1: "nebulaflare", elem2: "nebulaflare" }, }, }; +// end, chanelog moves to top + +elements.plode = { + color: "#7f03fc", + behavior: [ + "XX|EX:90>plasma,heat_ray,plasma,fire,fire|XX", + "XX|XX|XX", + "M2|M1 AND EX:90>fire,plasma,fire,fire,heat_ray,fire|M2", + ], + category: "fantasyweapons", + state: "solid", + density: 2500, + excludeRandom: true, +}; From 3c27714838be96b67ccaf10c667d713327ac28f5 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sat, 27 Jan 2024 08:47:01 +0000 Subject: [PATCH 22/34] Delete leek.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- leek.js | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 leek.js diff --git a/leek.js b/leek.js deleted file mode 100644 index 5adec07c..00000000 --- a/leek.js +++ /dev/null @@ -1,34 +0,0 @@ -elements.leek = { - color: ["#3ad664","#34cf5d","#20d450","#2fd65c"], - behavior: behaviors.SOLID, - category: "food", - viscosity: 35, - state: "solid", - density: 9999, - breakInto: "leek_mash", -}; - -elements.leek_mash = { - color: "#75eb95", - behavior: behaviors.POWDER, - category: "food", - viscosity: 35, - state: "solid", - density: 9999, - reactions: { - "mashed_potato": { elem1: "leek_soup", elem2: "leek_soup" }, - }, -}; - -elements.leek_soup = { - color: ["#b8eb75","#b6ed6d"], - behavior: behaviors.LIQUID, - category: "food", - viscosity: 35, - state: "liquid", - density: 800, - reactions: { - "water": { elem1: "leek_soup", elem2: "leek_soup" }, - }, -}; - From 590b279e71129814a447eea62246903b82691e81 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sat, 27 Jan 2024 08:48:24 +0000 Subject: [PATCH 23/34] Update more_gold.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mods/more_gold.js | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/more_gold.js b/mods/more_gold.js index 8886aaaf..642d2d8e 100644 --- a/mods/more_gold.js +++ b/mods/more_gold.js @@ -16,3 +16,4 @@ elements.molten_green_gold = { conduct: 0.87, Hidden: true }; + From fd42066cf5a238fd952841871c476a68b27b62bc Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Sat, 27 Jan 2024 08:48:41 +0000 Subject: [PATCH 24/34] Update more_gold.js Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mods/more_gold.js | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/more_gold.js b/mods/more_gold.js index 642d2d8e..8886aaaf 100644 --- a/mods/more_gold.js +++ b/mods/more_gold.js @@ -16,4 +16,3 @@ elements.molten_green_gold = { conduct: 0.87, Hidden: true }; - From 2a36c0968f8bd814dc574339bec246e49e2a2f0e Mon Sep 17 00:00:00 2001 From: idk73248 <86132722+idk73248@users.noreply.github.com> Date: Sat, 27 Jan 2024 15:10:36 +0000 Subject: [PATCH 25/34] Add files via upload --- all_around_fillers.js | 71 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 all_around_fillers.js diff --git a/all_around_fillers.js b/all_around_fillers.js new file mode 100644 index 00000000..2deb81c6 --- /dev/null +++ b/all_around_fillers.js @@ -0,0 +1,71 @@ +elements.top_filler = { + color: "#ae4cd9", + behavior: [ + ["XX","CL","XX"], + ["XX","XX","XX"], + ["XX","XX","XX"] + ], + category:"special", + excludeRandom: true, + reactions: { + "neutron": { elem1:"lattice" }, + "proton": { elem1:"vertical" }, + "electric": { elem1:"horizontal" }, + "positron": { elem1:"vertical" }, + "plasma": { elem1:"armageddon", tempMin:500, charged:true }, + } +}, + +elements.bottom_filler = { + color: "#ae4cd9", + behavior: [ + ["XX","XX","XX"], + ["XX","XX","XX"], + ["XX","CL","XX"] + ], + category:"special", + excludeRandom: true, + reactions: { + "neutron": { elem1:"lattice" }, + "proton": { elem1:"vertical" }, + "electric": { elem1:"horizontal" }, + "positron": { elem1:"vertical" }, + "plasma": { elem1:"armageddon", tempMin:500, charged:true }, + } +}, + +elements.right_filler = { + color: "#ae4cd9", + behavior: [ + ["XX","XX","XX"], + ["XX","XX","CL"], + ["XX","XX","XX"] + ], + category:"special", + excludeRandom: true, + reactions: { + "neutron": { elem1:"lattice" }, + "proton": { elem1:"vertical" }, + "electric": { elem1:"horizontal" }, + "positron": { elem1:"vertical" }, + "plasma": { elem1:"armageddon", tempMin:500, charged:true }, + } +}, + +elements.left_filler = { + color: "#ae4cd9", + behavior: [ + ["XX","XX","XX"], + ["CL","XX","XX"], + ["XX","XX","XX"] + ], + category:"special", + excludeRandom: true, + reactions: { + "neutron": { elem1:"lattice" }, + "proton": { elem1:"vertical" }, + "electric": { elem1:"horizontal" }, + "positron": { elem1:"vertical" }, + "plasma": { elem1:"armageddon", tempMin:500, charged:true }, + } +} \ No newline at end of file From 6768467259f97d16af6954dc33a6fd1e86c9a47f Mon Sep 17 00:00:00 2001 From: idk73248 <86132722+idk73248@users.noreply.github.com> Date: Sat, 27 Jan 2024 15:26:57 +0000 Subject: [PATCH 26/34] Update all_around_fillers.js --- all_around_fillers.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/all_around_fillers.js b/all_around_fillers.js index 2deb81c6..90e26d59 100644 --- a/all_around_fillers.js +++ b/all_around_fillers.js @@ -5,7 +5,7 @@ elements.top_filler = { ["XX","XX","XX"], ["XX","XX","XX"] ], - category:"special", + category:"fillers", excludeRandom: true, reactions: { "neutron": { elem1:"lattice" }, @@ -23,7 +23,7 @@ elements.bottom_filler = { ["XX","XX","XX"], ["XX","CL","XX"] ], - category:"special", + category:"fillers", excludeRandom: true, reactions: { "neutron": { elem1:"lattice" }, @@ -41,7 +41,7 @@ elements.right_filler = { ["XX","XX","CL"], ["XX","XX","XX"] ], - category:"special", + category:"fillers", excludeRandom: true, reactions: { "neutron": { elem1:"lattice" }, @@ -59,7 +59,7 @@ elements.left_filler = { ["CL","XX","XX"], ["XX","XX","XX"] ], - category:"special", + category:"fillers", excludeRandom: true, reactions: { "neutron": { elem1:"lattice" }, @@ -68,4 +68,4 @@ elements.left_filler = { "positron": { elem1:"vertical" }, "plasma": { elem1:"armageddon", tempMin:500, charged:true }, } -} \ No newline at end of file +} From c07d3d58e1cb8c8eadeb610ba3f53869971fca33 Mon Sep 17 00:00:00 2001 From: idk73248 <86132722+idk73248@users.noreply.github.com> Date: Sat, 27 Jan 2024 15:32:58 +0000 Subject: [PATCH 27/34] Update all_around_fillers.js --- all_around_fillers.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/all_around_fillers.js b/all_around_fillers.js index 90e26d59..2cb8a0da 100644 --- a/all_around_fillers.js +++ b/all_around_fillers.js @@ -69,3 +69,5 @@ elements.left_filler = { "plasma": { elem1:"armageddon", tempMin:500, charged:true }, } } + +elements.filler.category = "fillers" From ca372fd4edb3aad123c9ba08ef266e37078bf784 Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Sat, 27 Jan 2024 11:36:18 -0500 Subject: [PATCH 28/34] Update mod-list.html --- mod-list.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mod-list.html b/mod-list.html index b45f0a0b..8ad490b1 100644 --- a/mod-list.html +++ b/mod-list.html @@ -239,6 +239,7 @@ volcanic_expansion.jsAdds Obsidian, Pumice, and Andesite rocksJayd Fun & Games +all_around_fillers.jsAdds directional Filler variantsidk73248 allliquids.jsMade all elements liquidsAlex amogus.jsAdds a small amogus structureAlice elem3.jsAdds all elements and combinations from Elemental 3 [Very Large]Sophie From a60480936929ef9aa69696f23ff6e9dfa089ef02 Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Sat, 27 Jan 2024 11:43:53 -0500 Subject: [PATCH 29/34] Delete all_around_fillers.js --- all_around_fillers.js | 73 ------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 all_around_fillers.js diff --git a/all_around_fillers.js b/all_around_fillers.js deleted file mode 100644 index 2cb8a0da..00000000 --- a/all_around_fillers.js +++ /dev/null @@ -1,73 +0,0 @@ -elements.top_filler = { - color: "#ae4cd9", - behavior: [ - ["XX","CL","XX"], - ["XX","XX","XX"], - ["XX","XX","XX"] - ], - category:"fillers", - excludeRandom: true, - reactions: { - "neutron": { elem1:"lattice" }, - "proton": { elem1:"vertical" }, - "electric": { elem1:"horizontal" }, - "positron": { elem1:"vertical" }, - "plasma": { elem1:"armageddon", tempMin:500, charged:true }, - } -}, - -elements.bottom_filler = { - color: "#ae4cd9", - behavior: [ - ["XX","XX","XX"], - ["XX","XX","XX"], - ["XX","CL","XX"] - ], - category:"fillers", - excludeRandom: true, - reactions: { - "neutron": { elem1:"lattice" }, - "proton": { elem1:"vertical" }, - "electric": { elem1:"horizontal" }, - "positron": { elem1:"vertical" }, - "plasma": { elem1:"armageddon", tempMin:500, charged:true }, - } -}, - -elements.right_filler = { - color: "#ae4cd9", - behavior: [ - ["XX","XX","XX"], - ["XX","XX","CL"], - ["XX","XX","XX"] - ], - category:"fillers", - excludeRandom: true, - reactions: { - "neutron": { elem1:"lattice" }, - "proton": { elem1:"vertical" }, - "electric": { elem1:"horizontal" }, - "positron": { elem1:"vertical" }, - "plasma": { elem1:"armageddon", tempMin:500, charged:true }, - } -}, - -elements.left_filler = { - color: "#ae4cd9", - behavior: [ - ["XX","XX","XX"], - ["CL","XX","XX"], - ["XX","XX","XX"] - ], - category:"fillers", - excludeRandom: true, - reactions: { - "neutron": { elem1:"lattice" }, - "proton": { elem1:"vertical" }, - "electric": { elem1:"horizontal" }, - "positron": { elem1:"vertical" }, - "plasma": { elem1:"armageddon", tempMin:500, charged:true }, - } -} - -elements.filler.category = "fillers" From 68d6cedb6acea62f4157094ca08c5d705488d5ff Mon Sep 17 00:00:00 2001 From: idk73248 <86132722+idk73248@users.noreply.github.com> Date: Sat, 27 Jan 2024 16:47:00 +0000 Subject: [PATCH 30/34] added it again... hopefully it worked this time uhhh i dunno --- mods/all_around_fillers.js | 73 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 mods/all_around_fillers.js diff --git a/mods/all_around_fillers.js b/mods/all_around_fillers.js new file mode 100644 index 00000000..972b5476 --- /dev/null +++ b/mods/all_around_fillers.js @@ -0,0 +1,73 @@ +elements.top_filler = { + color: "#ae4cd9", + behavior: [ + ["XX","CL","XX"], + ["XX","XX","XX"], + ["XX","XX","XX"] + ], + category:"fillers", + excludeRandom: true, + reactions: { + "neutron": { elem1:"lattice" }, + "proton": { elem1:"vertical" }, + "electric": { elem1:"horizontal" }, + "positron": { elem1:"vertical" }, + "plasma": { elem1:"armageddon", tempMin:500, charged:true }, + } +}, + +elements.bottom_filler = { + color: "#ae4cd9", + behavior: [ + ["XX","XX","XX"], + ["XX","XX","XX"], + ["XX","CL","XX"] + ], + category:"fillers", + excludeRandom: true, + reactions: { + "neutron": { elem1:"lattice" }, + "proton": { elem1:"vertical" }, + "electric": { elem1:"horizontal" }, + "positron": { elem1:"vertical" }, + "plasma": { elem1:"armageddon", tempMin:500, charged:true }, + } +}, + +elements.right_filler = { + color: "#ae4cd9", + behavior: [ + ["XX","XX","XX"], + ["XX","XX","CL"], + ["XX","XX","XX"] + ], + category:"fillers", + excludeRandom: true, + reactions: { + "neutron": { elem1:"lattice" }, + "proton": { elem1:"vertical" }, + "electric": { elem1:"horizontal" }, + "positron": { elem1:"vertical" }, + "plasma": { elem1:"armageddon", tempMin:500, charged:true }, + } +}, + +elements.left_filler = { + color: "#ae4cd9", + behavior: [ + ["XX","XX","XX"], + ["CL","XX","XX"], + ["XX","XX","XX"] + ], + category:"fillers", + excludeRandom: true, + reactions: { + "neutron": { elem1:"lattice" }, + "proton": { elem1:"vertical" }, + "electric": { elem1:"horizontal" }, + "positron": { elem1:"vertical" }, + "plasma": { elem1:"armageddon", tempMin:500, charged:true }, + } +} + +elements.filler.category = "fillers" \ No newline at end of file From 29700ac73351d677fdd857bb03e425545d467ad4 Mon Sep 17 00:00:00 2001 From: An Orbit <68935009+orbit-loona@users.noreply.github.com> Date: Sat, 27 Jan 2024 13:18:07 -0500 Subject: [PATCH 31/34] restore explosions' ability to break things --- mods/a_mod_by_alice.js | 173 ++++++++++++++++++++++++++++------------- 1 file changed, 121 insertions(+), 52 deletions(-) diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js index fec50ee1..b9c9f3e1 100644 --- a/mods/a_mod_by_alice.js +++ b/mods/a_mod_by_alice.js @@ -14,7 +14,7 @@ try { //ESSENTIAL COMMON FUNCTIONS (CODE LIBRARY) ## - //U.R.L. + //URL urlParams = new URLSearchParams(window.location.search); @@ -616,9 +616,10 @@ try { throw new Error("Offset is NaN"); }; + var oldColor = color; //for error display color = hexToRGB(color); if(color === null) { - throw new Error("hexToRGB(color) was null (maybe it's an invalid hex triplet?)"); + throw new Error(`hexToRGB(color) was null (${oldColor}, maybe it's an invalid hex triplet?)`); }; //console.log("converted color: " + JSON.stringify(color)); @@ -772,9 +773,10 @@ try { }; //console.log(`octothorpe checked: ${color}`); + var oldColor = color; color = hexToRGB(color); if(color === null) { - throw new Error("hexToRGB(color) was null (maybe it's an invalid hex triplet?)"); + throw new Error(`hexToRGB(color) was null (${oldColor}, maybe it's an invalid hex triplet?)`); }; switch(outputType.toLowerCase()) { @@ -1498,18 +1500,29 @@ try { }; }; - function breakPixel(pixel,changetemp=false) { - var info = elements[pixel.element]; - if(typeof(info.breakInto) === "undefined") { - return false; + function breakPixel(pixel,changeTemp=false,defaultBreakIntoDust=false) { + var result = elements[pixel.element].breakInto; + if (result === undefined) {if(defaultBreakIntoDust) { result = "dust" } else { return }}; + // if it is an array, choose a random item, else just use the value + while (Array.isArray(result)) { + result = randomChoice(result); }; - var breakIntoElement = info.breakInto; - if(Array.isArray(breakIntoElement)) { - breakIntoElement = breakIntoElement[Math.floor(Math.random() * breakIntoElement.length)] + // change the pixel to the result + if (result === null) { + deletePixel(pixel.x,pixel.y); + return }; - changePixel(pixel,breakIntoElement,changetemp) - }; + if (elements[pixel.element].breakIntoColor) { + var oldelement = pixel.element; + changePixel(pixel,result); + pixel.color = pixelColorPick(pixel, elements[oldelement].breakIntoColor); + } + else { + changePixel(pixel,result); + } + } + defaultHardness = 0.3; function tryBreak(pixel,changetemp=false,defaultBreakIntoDust=false) { var info = elements[pixel.element]; var hardness = defaultHardness; @@ -2052,6 +2065,26 @@ try { }*/ }; + //Language + + function englishFormatList(thingsArrayIn) { + var thingsArray = thingsArrayIn; + var amount = thingsArray.length; + if(amount == 1) { + return thingsArray[0] + } else if(amount == 2) { + return thingsArray.join(" and ") + } else { + var lastItem = thingsArray[thingsArray.length - 1]; + thingsArray[thingsArray.length - 1] = "and " + lastItem; + return thingsArray.join(", ") + }; + }; + + function capitalizeFirstLetter(string,locale=null) { + return string[0][locale ? "toLocaleUpperCase" : "toUpperCase"](locale) + string.slice(1) + }; + //COLOR MANIPULATION TOOLS ## var colorToolCounter = 0; @@ -3592,18 +3625,17 @@ color1 and color2 spread through striped paint like dye does with itself. col else if (damage > 0.25) { if (info.breakInto) { // if it is an array, choose a random item, else just use the value - if (Array.isArray(info.breakInto)) { - var result = info.breakInto[Math.floor(Math.random() * info.breakInto.length)]; + if (info.breakInto !== undefined) { + breakPixel(pixel); + } else { + if (Array.isArray(fire)) { + var newfire = fire[Math.floor(Math.random() * fire.length)]; + } + else { + var newfire = fire; + } + changePixel(pixel,newfire); } - else { - var result = info.breakInto; - } - if(typeof(breakIntoElement) === "undefined") { - deletePixel(pixel.x,pixel.y); - continue - }; - // change the pixel to the result - changePixel(pixel,result,changeTemp); if(info.onExplosionBreakOrSurvive) { info.onExplosionBreakOrSurvive(pixel,x,y,radius,fire,smoke,power,damage); }; @@ -4247,6 +4279,9 @@ color1 and color2 spread through striped paint like dye does with itself. col ignoreAir: true }; + elements.cloner.burnTime = Infinity; + elements.cloner.burnInto = "cloner"; + elements.cold_torch = { "color": "#4394d6", "behavior": [ @@ -7951,7 +7986,7 @@ color1 and color2 spread through striped paint like dye does with itself. col state: "gas", density: 550, tick: function(pixel) { - if(pixel.y % 6 == 0) { + if(pixel.y % 6 == 0) { //7989 yay soshi! if(pixel.x % 6 == 0) { pixel.color = "rgb(255,255,255)" } else { @@ -8019,7 +8054,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } } } else { - if(!settings.bg || settings.bg == "#fffff0") { //7989 yay soshi! + if(!settings.bg || settings.bg == "#fffff0") { pixel.color = "rgb(255,255,247)" } else { pixel.color = "rgb(255,255,240)" @@ -18083,7 +18118,63 @@ Pixel size (rendering only): (Use if the save looks cut o elements[kesddfroged2[i]].reactions ??= {}; elements[kesddfroged2[i]].reactions[kesddfroged[j]] = {"elem1": "kurshuth_alloy", "elem2": "kurshuth_alloy"} } }; - }) + }); + + function newMetal(name,color,meltingPoint,boilingPoint,hardness,density,gasDensity,conduct) { + var temp = { + "name": name, + "color": color, + "meltingPoint": meltingPoint, + "boilingPoint": boilingPoint, + "hardness": hardness, + "density": density, + "gasDensity": gasDensity, + "conduct": conduct + }; + var tempNulls = Object.keys(temp).filter(key => (typeof(temp[key]) == undefined || temp[key] == null)); + if(tempNulls.length > 0) { + var errorMessage = capitalizeFirstLetter(englishFormatList(tempNulls)); + throw new Error(`newMetal: ${errorMessage} {tempNulls.length == 1 ? "is" : "are"} required (generating "${name}")`); + }; + + elements[name] = { + "color": color, + "behavior": behaviors.WALL, + "category": "solids", + "state": "solid", + "density": density, + "conduct": conduct, + "tempHigh": meltingPoint, + "breakInto": `${name}_scrap`, + "hardness": hardness + }; + + elements[`molten_${name}`] = { + "tempHigh": boilingPoint + }; + + elements[`${name}_gas`] = { + "density": gasDensity + }; + + elements[`${name}_scrap`] = { + "color": gravelizeToHex(elements[name].color), + "behavior": behaviors.POWDER, + "tempHigh": meltingPoint, + "stateHigh": name, + "category": "powders", + "hidden": true, + "density": density * 0.09, + "conduct": conduct * 0.4, + "movable": true, + }; + + return [elements[name],elements[`${name}_scrap`]]; + }; + + //newMetal( "exidmaden", ["#F8EDCF", "#EEAAAE", "#E5678D", "#A6659C", "#6763AD"], 2134, 6769, 0.8, 32333, 49.9, 0.88 ); + //newMetal( "jisooium", "#9d0ac2", 8367, 10003, 0.63, 15024, 12.2, 0.9 ); + newMetal( "twicium", ["#F9C596", "#FC5D9D"], 10240, 18018, 0.88, 29029, 24.3, 0.91 ); //ASSORTED LOONA-THEMED MATERIALS ## @@ -20401,7 +20492,7 @@ Pixel size (rendering only): (Use if the save looks cut o if(typeof(elements[thing]) == "object") { if(typeof(elements[thing]?.breakInto) == "undefined") { elements[`${thing}_scrap`] = { - color: elements[thing].color, + color: gravelizeToHex(elements[thing].color), behavior: behaviors.POWDER, tempHigh: elements[thing].tempHigh, stateHigh: thing, @@ -21214,13 +21305,14 @@ Pixel size (rendering only): (Use if the save looks cut o //Gravels function gravelizeToHex(colorIn) { - //console.log("gravelizeToHex called",colorIn); var colorInput = colorIn; //side effects? + //console.log(`gravelizeToHex: ${colorInput}`) //make sure in is array - if(!colorInput instanceof Array) { + if(!(colorInput instanceof Array)) { colorInput = [colorInput]; }; + //console.log(`gravelizeToHex: ${colorInput}`) //console.log(colorInput); @@ -29551,29 +29643,6 @@ Make sure to save your command in a file if you want to add this preset again.` }; }; - function breakPixel(pixel,changetemp=false,defaultBreakIntoDust=false) { - var info = elements[pixel.element]; - if(typeof(info.breakInto) === "undefined") { - if(defaultBreakIntoDust) { - if(Math.random() < defaultBreakIntoDust) { changePixel(pixel,"dust",changetemp) }; - }; - return defaultBreakIntoDust; - }; - var breakIntoElement = info.breakInto; - if(Array.isArray(breakIntoElement)) { - breakIntoElement = breakIntoElement[Math.floor(Math.random() * breakIntoElement.length)] - }; - if(breakIntoElement === null) { - deletePixel(pixel.x,pixel.y); - return true; - }; - if(typeof(breakIntoElement) === "undefined") { return false }; - changePixel(pixel,breakIntoElement,changetemp) - return true; - }; - - defaultHardness = 0.3; - function arrowAltTb(pixel,breakChanceMultiplier,changetemp=false,defaultBreakIntoDust=false) { var info = elements[pixel.element]; var hardness = defaultHardness; From 39a06c775412aba0d49770dbe6d71bd3a1b811ad Mon Sep 17 00:00:00 2001 From: stefanblox <155691462+stefanblox@users.noreply.github.com> Date: Sat, 27 Jan 2024 15:25:09 -0300 Subject: [PATCH 32/34] collab_mod i think this is the first ever mod that was made collabing in real time --- mods/collab_mod.js | 253 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 mods/collab_mod.js diff --git a/mods/collab_mod.js b/mods/collab_mod.js new file mode 100644 index 00000000..66b50e89 --- /dev/null +++ b/mods/collab_mod.js @@ -0,0 +1,253 @@ +elements.lemon = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + color: ["#ffaa1d","#ffd300","#ffdf00","#ffff00","#fff44f"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "lemonade", + tempHigh: 256, + stateHigh: "steam", + reactions: { + "sugar": { elem1: "jelly", elem2: null, tempMin: 100, color1: ["#ffffd8","#fffecf"] }, + } +}; + +elements.lemonade = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + tempHigh: 150, + stateHigh: "steam", + tempMin: -15, + color: ["#f8ff80","#f6ff6c","#f5ff57","#f3ff39","#f0ff00"], + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", +}; + +elements.uranium_tea = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + viscosity: 1000, + tempHigh: 1100, + stateHigh: ["molten_uranium", "steam", "fragrance", "null"], + color: ["#943e04", "#aa7a20", "#806612"], + behavior: behaviors.RADLIQUID, + category: "liquids", + state: "liquid", + reactions: { + "neutron": { elem1:"n_explosion", tempMin:500, chance:0.1 } + }, +}; + +elements.sned = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + desc: "slowly expanding...", + color: "#dfe0d9", + behavior: [ + "XX|XX AND CR:sned%1|XX", + "M2 AND CR:sned%1|XX|M2 AND CR:sned%1", + "M1|M1 AND CH:sned%1|M1", + ], + category: "joke", + state: "liquid", + excludeRandom: true +}; + +elements.uranium_coffee = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + },color: "#24100b", + behavior: behaviors.LIQUID, + reactions: { + "stench": { elem2:null }, + "oxygen": { elem2:"fragrance", chance:0.01 }, + "sugar": { elem2:null, color1:"#99552A", chance:0.005}, + "honey": { elem2:null, color1:"#99552A", chance:0.005}, + "milk": { elem2:"foam", color1:"#CA9D68", chance:0.005}, + "nut_milk": { elem2:"foam", color1:"#CA9D68", chance:0.005}, + "cream": { elem2:"foam", color1:"#CA9D68", chance:0.005}, + "ice_cream": { elem2:null, color1:"#CA9D68", chance:0.005}, + "chocolate": { elem2:null, color1:"#6A3517", chance:0.005}, + "melted_chocolate": { elem2:null, color1:"#6A3517", chance:0.005}, + "water": { elem2:"coffee", tempMin:70, chance:0.2 }, + "salt_water": { elem2:"coffee", tempMin:70, chance:0.2 }, + "sugar_water": { elem2:"melted_uranium", tempMin:60, chance:0.3 }, + "seltzer": { elem2:"coffee", tempMin:70, chance:0.2 }, + "neutron": { elem1:"n_explosion", tempMin:500, chance:0.1 } + }, + tempHigh: 130, + stateHigh: ["steam","fragrance","molten_uranium",null], + tempLow: 0, + category:"liquids", + state: "liquid", + density: 1001.74, + stain: 0.01, + hidden: true, + isFood: true +} + +elements.uranium_soda = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + color: "#19ad19", + behavior: [ + "XX|CR:foam%2|XX", + "M2|XX|M2", + "M2|M1|M2", + ], + tempHigh: 100, + stateHigh: ["steam","carbon_dioxide","molten_uranium"], + tempLow: -1.11, + category: "liquids", + reactions: { + "dirt": { elem1: null, elem2: "fallout" }, + "sand": { elem1: null, elem2: "fallout" }, + "clay_soil": { elem1: null, elem2: "fallout" }, + "rock": { elem2: "fallout", chance: 0.0004 }, + "water": { elem1: "uranium", elem2: "uranium" }, + "salt": { elem2:"foam", chance:0.05 }, + "salt_water": { elem2:"foam", chance:0.01 }, + "sugar": { elem2:"foam", chance:0.001 }, + "candy": { elem2:"foam", chance:0.01 }, + "caramel": { elem2:"foam", chance:0.01 }, + "rust": { elem2:"fallout", chance:0.01 }, + "oxidized_copper": { elem2:"fallout", chance:0.01 }, + "neutron": { elem1:"n_explosion", tempMin:500, chance:0.1 } + }, + state: "liquid", + density: 1030, + isFood: true +} + +elements.uranium_juice = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + color: "#84dd84", + behavior: behaviors.RADLIQUID, + reactions: { + "dirt": { elem1: null, elem2: "fallout" }, + "sand": { elem1: null, elem2: "fallout" }, + "clay_soil": { elem1: null, elem2: "fallout" }, + "seltzer": { elem1: "uranium_soda", elem2: "foam" }, + "carbon_dioxide": { elem1: "uranium_soda", elem2: "foam" }, + "neutron": { elem1:"n_explosion", tempMin:500, chance:0.1 } + }, + tempHigh: 160, + stateHigh: ["steam","molten_uranium"], + tempLow: -10, + stateLowColorMultiplier: 1.1, + category: "liquids", + state: "liquid", + density: 1054, + stain: 0.05, + isFood: true, +} + +elements.plutonium_tea = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + viscosity: 1100, + tempHigh: 1000, + stateHigh: ["fragrance", "null"], + color: ["#795508", "#828b09"], + behavior: behaviors.RADLIQUID, + category: "liquids", + state: "liquid", + tempLow: 0, + stateLow: "plutonium" +}; +// mrapples stuffs +elements.plutonium = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + color: "#ffffff", + behavior: behaviors.RADPOWDER, + category: "powders", + state: "solid", + tempHigh: 100, + stateHigh: "plutonium_tea" +}; + +elements.your_dad = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + color: "#000000", + behavior: behaviors.WALL, + category: "joke", + state: "solid", + behavior: [ + "XX|XX|XX", + "XX|DL|XX", + "XX|XX|XX" + ], + canPlace: false, // exists: false +}; + +// end of mrapples stuffs + +elements.how_the_fuck_did_you_burn_the_water = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + color: "#18202c", + behavior: behaviors.LIQUID, + category: "joke", + hidden: true, + alias: "SANS HOW THE FUCK DID YOU BURN THE WATER?", +}; + +elements.theres_a_bomb_strapped_to_my_chest = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, + color: "#b42020", + behavior: [ + "XX|XX|XX", + "XX|EX:15>explosion|XX", // let me finish + "XX|XX|XX", + ], + category: "joke", + hidden: true, + burn: 100, + burnTime: 1, + burnInto: "explosion", + tempHigh: 600, + stateHigh: "explosion", + state: "solid", + density: 1630, + excludeRandom: true, + alias: "ITS GOING TO EXPLODE IN THREE SECON-", +}; + +if (!elements.uranium.reactions) elements.uranium.reactions = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, +}; +elements.uranium.reactions.herbs = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, elem1: "uranium_tea", elem2: null, chance: 20 } +elements.uranium.reactions.coffee_ground = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, elem1: "uranium_coffee", elem2: null, chance: 30 } +elements.uranium.reactions.seltzer = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, elem2: "uranium_soda", elem2: null, chance: 30 } +elements.uranium.reactions.juice = { + onSelect: function() { + logMessage("Mod made by mrapple, ilikepizza and stefanblox"); + }, elem1: "uranium_juice", elem2: null, chance: 30 } \ No newline at end of file From 05e6e00a66698d0ad8c99fe1c09e6cbc94ee6543 Mon Sep 17 00:00:00 2001 From: stefanblox <155691462+stefanblox@users.noreply.github.com> Date: Sat, 27 Jan 2024 15:32:39 -0300 Subject: [PATCH 33/34] collab_mod MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit i think this is the first ever mod that was made collabing 😮 --- mods/collab_mod.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/collab_mod.js b/mods/collab_mod.js index 66b50e89..66158472 100644 --- a/mods/collab_mod.js +++ b/mods/collab_mod.js @@ -170,7 +170,7 @@ elements.plutonium = { onSelect: function() { logMessage("Mod made by mrapple, ilikepizza and stefanblox"); }, - color: "#ffffff", + color: ["#38a30e", "#0d662b", "#5d995d"], behavior: behaviors.RADPOWDER, category: "powders", state: "solid", @@ -250,4 +250,4 @@ elements.uranium.reactions.seltzer = { elements.uranium.reactions.juice = { onSelect: function() { logMessage("Mod made by mrapple, ilikepizza and stefanblox"); - }, elem1: "uranium_juice", elem2: null, chance: 30 } \ No newline at end of file + }, elem1: "uranium_juice", elem2: null, chance: 30 } From 37d6c1a16edb8988c9f77bc1e83339f0d95390ba Mon Sep 17 00:00:00 2001 From: An Orbit <68935009+orbit-loona@users.noreply.github.com> Date: Sat, 27 Jan 2024 14:05:24 -0500 Subject: [PATCH 34/34] megatsunami and other stuff i forgot --- mods/a_mod_by_alice.js | 144 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 133 insertions(+), 11 deletions(-) diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js index b9c9f3e1..bc37daca 100644 --- a/mods/a_mod_by_alice.js +++ b/mods/a_mod_by_alice.js @@ -3370,7 +3370,14 @@ color1 and color2 spread through striped paint like dye does with itself. col createCategoryDiv(category); categoryDiv = document.getElementById("category-"+category); } - createElementButton(element); + if(Array.isArray(elements[element].color) && elements[element].color.length == 1) { + //temporarily make the single-item array into a string just for button generation, and then turn it back into an array just in case + elements[element].color = elements[element].color[0]; + createElementButton(element); + elements[element].color = [elements[element].color] + } else { + createElementButton(element); + } } // Set the first button in categoryControls div to be the current category document.getElementById("categoryControls").children[0].click() @@ -3537,6 +3544,8 @@ color1 and color2 spread through striped paint like dye does with itself. col var firstDiv = document.getElementsByClassName("category")[0]; var firstElementButton = firstDiv.getElementsByClassName("elementButton")[0]; selectElement(firstElementButton.getAttribute("element")); + + gameLoaded = true }; @@ -7984,9 +7993,9 @@ color1 and color2 spread through striped paint like dye does with itself. col behavior: behaviors.GAS, category: "gases", state: "gas", - density: 550, + density: 550, //7989 yay soshi! tick: function(pixel) { - if(pixel.y % 6 == 0) { //7989 yay soshi! + if(pixel.y % 6 == 0) { if(pixel.x % 6 == 0) { pixel.color = "rgb(255,255,255)" } else { @@ -18120,7 +18129,7 @@ Pixel size (rendering only): (Use if the save looks cut o }; }); - function newMetal(name,color,meltingPoint,boilingPoint,hardness,density,gasDensity,conduct) { + function newMetal(name,color,meltingPoint,boilingPoint,hardness,density,gasDensity,conduct,categoryOverride = null) { var temp = { "name": name, "color": color, @@ -18136,9 +18145,12 @@ Pixel size (rendering only): (Use if the save looks cut o var errorMessage = capitalizeFirstLetter(englishFormatList(tempNulls)); throw new Error(`newMetal: ${errorMessage} {tempNulls.length == 1 ? "is" : "are"} required (generating "${name}")`); }; + + var scrapColor = gravelizeToHex(color); elements[name] = { - "color": color, + "color": (window["gameLoaded"] ?? false) ? (Array.isArray(color) ? color.map(x => convertColorFormats(x,"rgb")) : convertColorFormats(color,"rgb")) : color, + "colorObject": (window["gameLoaded"] ?? false) ? (Array.isArray(color) ? color.map(x => convertColorFormats(x,"json")) : convertColorFormats(color,"json")) : undefined, "behavior": behaviors.WALL, "category": "solids", "state": "solid", @@ -18148,6 +18160,8 @@ Pixel size (rendering only): (Use if the save looks cut o "breakInto": `${name}_scrap`, "hardness": hardness }; + + if(categoryOverride) { elements[name].category = categoryOverride }; elements[`molten_${name}`] = { "tempHigh": boilingPoint @@ -18158,23 +18172,36 @@ Pixel size (rendering only): (Use if the save looks cut o }; elements[`${name}_scrap`] = { - "color": gravelizeToHex(elements[name].color), - "behavior": behaviors.POWDER, + "color": (window["gameLoaded"] ?? false) ? (Array.isArray(scrapColor) ? scrapColor.map(x => convertColorFormats(x,"rgb")) : convertColorFormats(scrapColor,"rgb")) : scrapColor, + "colorObject": (window["gameLoaded"] ?? false) ? (Array.isArray(scrapColor) ? scrapColor.map(x => convertColorFormats(x,"json")) : convertColorFormats(scrapColor,"json")) : undefined, + "behavior": (window["gameLoaded"] ?? false) ? undefined : behaviors.POWDER, + "tick": (window["gameLoaded"] ?? false) ? behaviors.POWDER : undefined, "tempHigh": meltingPoint, - "stateHigh": name, + "stateHigh": `molten_${name}`, "category": "powders", "hidden": true, "density": density * 0.09, "conduct": conduct * 0.4, "movable": true, }; + + if(window["gameLoaded"] ?? false) { + delete elements[`${name}_scrap`].behavior; + createElementButton(name); + if(settings.unhide == 1) { createElementButton(`${name}_scrap`) } + autoGen(`molten_${name}`,name,"molten"); + elements[`molten_${name}`].color = elements[`molten_${name}`].color.map(x => convertColorFormats(x,"rgb")); + elements[`molten_${name}`].colorObject = elements[`molten_${name}`].color.map(x => convertColorFormats(x,"json")); + } else { + delete elements[`${name}_scrap`].tick; + }; return [elements[name],elements[`${name}_scrap`]]; }; //newMetal( "exidmaden", ["#F8EDCF", "#EEAAAE", "#E5678D", "#A6659C", "#6763AD"], 2134, 6769, 0.8, 32333, 49.9, 0.88 ); //newMetal( "jisooium", "#9d0ac2", 8367, 10003, 0.63, 15024, 12.2, 0.9 ); - newMetal( "twicium", ["#F9C596", "#FC5D9D"], 10240, 18018, 0.88, 29029, 24.3, 0.91 ); + //newMetal( "twicium", ["#F9C596", "#FC5D9D"], 10240, 18018, 0.88, 29029, 24.3, 0.91 ); //ASSORTED LOONA-THEMED MATERIALS ## @@ -35660,7 +35687,16 @@ Make sure to save your command in a file if you want to add this preset again.` //water reaction steal if(elements[newPixel.element].reactions?.water) { var waterRxn = elements[newPixel.element].reactions.water; - var elem2 = waterRxn.elem2; + var elem1 = waterRxn.elem1; + while(Array.isArray(elem1)) { + elem1 = randomChoice(elem1) + }; + if(elem1 !== null) { + changePixel(newPixel,elem1,true) + } + } else if(elements.water.reactions[newPixel.element]) { + var waterRxn2 = elements.water.reactions[newPixel.element]; + elem2 = waterRxn2.elem2; while(Array.isArray(elem2)) { elem2 = randomChoice(elem2) }; @@ -35672,7 +35708,7 @@ Make sure to save your command in a file if you want to add this preset again.` //add velocity; newPixel.vx ??= 0; newPixel.vy ??= 0; - newPixel.vx += (pixel.direction * 6) + newPixel.vx += (pixel.direction * 5) newPixel.vy += 3; }; }; @@ -35683,6 +35719,92 @@ Make sure to save your command in a file if you want to add this preset again.` density: elements.water.density }; + elements.megatsunami = { + color: ["#1f2aa3","#2641c9","#3a57c9"], + behavior: behaviors.WALL, + properties: { + active: true, + }, + tick: function(pixel) { + //Iteration initial checks + if(!pixel) { + return; + }; + if(!pixel.active) { + deletePixel(pixel.x,pixel.y); + }; + + //Initial property-setting + var pixelIsOnLeft = (pixel.x < (width/2)); + pixel.fromX ??= pixelIsOnLeft ? 1 : width - 1; + pixel.direction ??= pixelIsOnLeft ? 1 : -1; + + var floorHeight = pixel.y + 1; + while(isEmpty(pixel.x,floorHeight,false)) { + floorHeight++ + }; + pixel.floorHeight ??= floorHeight; + + //Actual doer code + var bottomY = (pixel.floorHeight + 9); //extend 10 pixels below + var topY = bottomY - 43; //topY < bottomY because in this game +Y is *downward* + for(var h = 0; h < 2; h++) { + var newX = pixel.fromX + pixel.direction; + + if(outOfBounds(newX,1)) { + pixel.active = false; + return + }; + + for(var i = bottomY; i >= topY; i--) { + var waterToDo = randomChoice(["salt_water","salt_water","salt_water","dirty_water","dirty_water"]); + var fc = {x: newX, y: i}; + if(outOfBounds(fc.x,fc.y)) {continue}; + if(isEmpty(fc.x,fc.y,false)) { + //fill with water + createPixel(waterToDo,fc.x,fc.y) + } else { + var newPixel = pixelMap[fc.x]?.[fc.y]; + if(!newPixel) { continue }; + //break + tryBreak(newPixel,true,true); + if(!newPixel) { continue }; + //water reaction steal + if(elements[newPixel.element].reactions?.water) { + var waterRxn = elements[newPixel.element].reactions.water; + var elem1 = waterRxn.elem1; + while(Array.isArray(elem1)) { + elem1 = randomChoice(elem1) + }; + if(elem1 !== null) { + changePixel(newPixel,elem1,true) + } + } else if(elements.water.reactions[newPixel.element]) { + var waterRxn2 = elements.water.reactions[newPixel.element]; + elem2 = waterRxn2.elem2; + while(Array.isArray(elem2)) { + elem2 = randomChoice(elem2) + }; + if(elem2 !== null) { + changePixel(newPixel,elem2,true) + } + }; + if(!newPixel) { continue }; + //add velocity; + newPixel.vx ??= 0; + newPixel.vy ??= 0; + newPixel.vx += (pixel.direction * 13) + newPixel.vy += 6; + }; + }; + pixel.fromX += pixel.direction + }; + }, + state: "solid", + category: "special", + density: elements.water.density + }; + elements.lava_tsunami = { color: ["#ff370a","#e84a23","#e67740"], behavior: behaviors.WALL,