Merge branch 'R74nCom:main' into main
This commit is contained in:
commit
32461b5bf6
|
|
@ -1,11 +1,11 @@
|
|||
# Sandboxels
|
||||
A falling sand simulation game.
|
||||
A falling sand simulation game with hundreds of elements, heat simulation, chemical reactions, fire, density, electricity, and more.
|
||||
|
||||
Play at [Sandboxels.R74n.com](https://sandboxels.r74n.com/).
|
||||
Play for free at [Sandboxels.R74n.com](https://sandboxels.r74n.com/).
|
||||
|
||||
Join the [Discord server](https://discord.com/invite/ejUc6YPQuS).
|
||||
|
||||

|
||||

|
||||
|
||||
# Controls
|
||||
* Left Click = Draw pixels
|
||||
|
|
@ -29,7 +29,7 @@ Join the [Discord server](https://discord.com/invite/ejUc6YPQuS).
|
|||
|
||||
# Button Info
|
||||
* Pause = Pause/play the simulation
|
||||
* Step = Run a single frame
|
||||
* Step (>) = Run a single frame
|
||||
* Minus (-) = Decrease the cursor size
|
||||
* Plus (+) = Increase the cursor size
|
||||
* Reset = Clears the entire simulation
|
||||
|
|
@ -37,5 +37,6 @@ Join the [Discord server](https://discord.com/invite/ejUc6YPQuS).
|
|||
* E = Select any element by name
|
||||
* TPS = Change how fast the simulation runs
|
||||
* Info = Open the element info screen
|
||||
* Saves = Open the Save & Load menu
|
||||
* Mods = Open the Mod Manager
|
||||
* Settings = Open the settings menu
|
||||
|
|
|
|||
410
ads.txt
410
ads.txt
|
|
@ -1,410 +0,0 @@
|
|||
ownerdomain=r74n.com
|
||||
managerdomain=venatus.com
|
||||
#V 07.02.2025 VH
|
||||
#P
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------#
|
||||
# . #
|
||||
# .o8 #
|
||||
# oooo ooo .ooooo. ooo. .oo. .oooo. .o888oo oooo oooo .oooo.o #
|
||||
# `88. .8' d88' `88b `888P"Y88b `P )88b 888 `888 `888 d88( "8 #
|
||||
# `88..8' 888ooo888 888 888 .oP"888 888 888 888 `"Y88b. #
|
||||
# `888' 888 . 888 888 d8( 888 888 . 888 888 o. )88b #
|
||||
# `8' `Y8bod8P' o888o o888o `Y888""8o "888" `V88V"V8P' 8""888P' #
|
||||
# #
|
||||
# The leading advertising solution for gaming and entertainment #
|
||||
# #
|
||||
# To become a publisher or advertise please contact info@venatus.com #
|
||||
# #
|
||||
#----------------------------------------------------------------------------#
|
||||
adagio.io, 1090, DIRECT # Adagio_0_6
|
||||
rubiconproject.com, 19116, RESELLER, 0bfd66d529a55807 # Adagio_0_6
|
||||
pubmatic.com, 159110, RESELLER, 5d62403b186f2ace # Adagio_0_6
|
||||
rubiconproject.com, 16414, RESELLER, 0bfd66d529a55807 # Adagio_0_6
|
||||
lijit.com, 367236, RESELLER, fafdf38b16bf6b2b # Adagio_0_6
|
||||
improvedigital.com, 1790, RESELLER # Adagio_0_6
|
||||
triplelift.com, 13482, RESELLER, 6c33edb13117fd86 # Adagio_0_6
|
||||
rubiconproject.com, 12186, RESELLER, 0bfd66d529a55807 # Adagio_0_6
|
||||
video.unrulymedia.com, 5672421953199218469, RESELLER # Adagio_0_6
|
||||
amxrtb.com, 105199358, DIRECT # AdaptMX_1_6&7
|
||||
amxrtb.com, 105199778, DIRECT # AdaptMX_Ozone
|
||||
indexexchange.com, 191503, RESELLER # AdaptMX_1_6&7
|
||||
appnexus.com, 12290, RESELLER # AdaptMX_1_6&7
|
||||
pubmatic.com, 158355, RESELLER, 5d62403b186f2ace # AdaptMX_1_6&7
|
||||
rubiconproject.com, 23844, RESELLER, 0bfd66d529a55807 # AdaptMX_1_6&7
|
||||
openx.com, 559680764, RESELLER, 6a698e2ec38604c6 # AdaptMX_1_6&7
|
||||
adform.com, 2767, RESELLER # Adform_0_6&7
|
||||
adyoulike.com, c1314a52de718f3c214c00173d2994f9, DIRECT # AdYouLike_0_6
|
||||
pubmatic.com, 160925, RESELLER, 5d62403b186f2ace # AdYouLike_0_6
|
||||
rubiconproject.com, 20736, RESELLER, 0bfd66d529a55807 # AdYouLike_0_6
|
||||
appnexus.com, 7664, RESELLER # AdYouLike_0_6
|
||||
alkimiexchange.com , 4245 , Direct # Alkimi
|
||||
aps.amazon.com,70247b00-ff8f-4016-b3ab-8344daf96e09,DIRECT # Amazon_3_6&7
|
||||
aniview.com, 5f2063121d82c82557194737, RESELLER, 78b21b97965ec3f8 # Aniview
|
||||
aniview.com, 643f8e74688b10f72307cc24, DIRECT, 78b21b97965ec3f8 # Aniview
|
||||
google.com, pub-6346866704322274, RESELLER, f08c47fec0942fa0 # Aniview
|
||||
pubmatic.com, 160993, RESELLER, 5d62403b186f2ace # Aniview
|
||||
rubiconproject.com, 13918, RESELLER, 0bfd66d529a55807 # Aniview
|
||||
google.com, pub-5717092533913515, RESELLER, f08c47fec0942fa0 # Aniview
|
||||
gannett.com, 22652678936, RESELLER # Aniview
|
||||
richaudience.com, 1ru8dKmJJV, RESELLER # Aniview
|
||||
sharethrough.com, zLsEa05k, RESELLER, d53b998a7bd4ecd2 # Aniview
|
||||
aps.amazon.com, 1ad7261b-91ea-4b6f-b9e9-b83522205b75, RESELLER # Aniview
|
||||
pubmatic.com, 161335, RESELLER, 5d62403b186f2ace # Aniview
|
||||
openx.com, 556532676, RESELLER, 6a698e2ec38604c6 # Aniview
|
||||
mediago.io, 045ac24b888bcf59a09731e7f0f2084f, RESELLER # Baidu
|
||||
blockthrough.com, 5643766199222272, DIRECT # Blockthrough
|
||||
indexexchange.com, 194341, RESELLER, 50b1c356f2c5c8fc # Blockthrough
|
||||
pubmatic.com, 160377, RESELLER, 5d62403b186f2ace # Blockthrough
|
||||
onetag.com, 75804861b76a852, DIRECT # Blockthrough
|
||||
amxrtb.com, 105199664, DIRECT # Blockthrough
|
||||
criteo.com, B-062405, DIRECT, 9fac4a4a87c2a44f # Criteo_0_6&7
|
||||
themediagrid.com, CVQXOH, DIRECT, 35d5010d7789b49d # Criteo_0_6&7
|
||||
dxkulture.com, 1359, DIRECT, 259726033fc4df0c # DxKulture
|
||||
zetaglobal.net,790,DIRECT # DxKulture
|
||||
rubiconproject.com,26094,DIRECT,0bfd66d529a55807 # DxKulture
|
||||
ssp.disqus.com,790,DIRECT # DxKulture
|
||||
adswizz.com,dxkulture,DIRECT # DxKulture
|
||||
adswizz.com,651,DIRECT # DxKulture
|
||||
appnexus.com, 11716, RESELLER, f5ab79cb980f11d1 # Execute Media
|
||||
freewheel.tv, 211121, DIRECT # Freewheel_0_7
|
||||
freewheel.tv, 211129-524565, DIRECT # Freewheel_OPG
|
||||
freewheel.tv, 211129-169843, DIRECT # Freewheel_OPG
|
||||
google.com, pub-5781531207509232, DIRECT, f08c47fec0942fa0 # Google_AdX_6&7
|
||||
google.com, pub-5781531207509232, RESELLER, f08c47fec0942fa0 # Google_AdX_6&7
|
||||
google.com, pub-2553634189837243, RESELLER, f08c47fec0942fa0 # Google_AdX_6&7
|
||||
gumgum.com, 13385, RESELLER, ffdef49475d318a9 # GumGum
|
||||
gumgum.com, 14302, RESELLER, ffdef49475d318a9 # GumGum
|
||||
rubiconproject.com, 23434, RESELLER, 0bfd66d529a55807 # GumGum
|
||||
pubmatic.com, 157897, RESELLER, 5d62403b186f2ace # GumGum
|
||||
indexexchange.com, 183921, DIRECT, 50b1c356f2c5c8fc # Index Exchange_0_6&7
|
||||
indexexchange.com, 193067, DIRECT, 50b1c356f2c5c8fc # Index Exchange_2_6&7
|
||||
indexexchange.com, 194127, DIRECT, 50b1c356f2c5c8fc # Index Exchange_7&4_6&7
|
||||
indexexchange.com, 205972, RESELLER, 50b1c356f2c5c8fc # Index Exchange_Oz
|
||||
insticator.com,843c9a44-60ea-4342-8ad4-68f894283b3e,DIRECT,b3511ffcafb23a32 # Insticator
|
||||
rubiconproject.com,17062,RESELLER,0bfd66d529a55807 # Insticator
|
||||
video.unrulymedia.com,136898039,RESELLER # Insticator
|
||||
pubmatic.com,95054,DIRECT,5d62403b186f2ace # Insticator
|
||||
lijit.com,257618,RESELLER,fafdf38b16bf6b2b # Insticator
|
||||
sharethrough.com,Q9IzHdvp,DIRECT,d53b998a7bd4ecd2 # Insticator
|
||||
openx.com,558230700,RESELLER,6a698e2ec38604c6 # Insticator
|
||||
kargo.com, 8688, DIRECT # Kargo_0_6
|
||||
rubiconproject.com, 13762, RESELLER, 0bfd66d529a55807 # Magnite_0&2_6&7
|
||||
media.net, 8CU8ARTF8, DIRECT # Media.net
|
||||
Media.net, 8CU198XI2, DIRECT # Media.net
|
||||
themediagrid.com, LTW57M, DIRECT, 35d5010d7789b49d # MediaGrid_2_6&7
|
||||
ogury.com, 086233d2-e8a8-44fc-907b-f0752e1c85de, DIRECT # Ogury_0_6
|
||||
appnexus.com, 11470, RESELLER # Ogury_0_6
|
||||
openx.com, 537144009, RESELLER, 6a698e2ec38604c6 # OpenX_0_6
|
||||
openx.com, 540134228, RESELLER, 6a698e2ec38604c6 # OpenX_0_7
|
||||
openx.com, 542378302, RESELLER, 6a698e2ec38604c6 # OpenX_2_6&7
|
||||
outbrain.com, 00cad1edda50a62c096c310d54360dfcdb, DIRECT # Outbrain
|
||||
rubiconproject.com, 19668, RESELLER, 0bfd66d529a55807 # Outbrain
|
||||
openx.com, 540393169, RESELLER, 6a698e2ec38604c6 # Outbrain
|
||||
smaato.com, 1100048704, RESELLER, 07bcf65f187117b4 # Outbrain
|
||||
the-ozone-project.com, ozoneven0005, DIRECT # Ozone_0_6
|
||||
openx.com, 540731760, RESELLER, 6a698e2ec38604c6 # Ozone_0_6
|
||||
pubmatic.com, 160557, RESELLER, 5d62403b186f2ace # Ozone_0_6
|
||||
themediagrid.com, WF71T3, DIRECT, 35d5010d7789b49d # Ozone_0_6
|
||||
Yahoo.com, 60170, DIRECT, e1a5b5b6e3255540 # Ozone_0_6
|
||||
primis.tech, 31136, DIRECT, b6b21d256ef43532 # Primis
|
||||
pubmatic.com, 156595, RESELLER, 5d62403b186f2ace # Primis
|
||||
google.com, pub-1320774679920841, RESELLER, f08c47fec0942fa0 # Primis
|
||||
openx.com, 540258065, RESELLER, 6a698e2ec38604c6 # Primis
|
||||
rubiconproject.com, 20130, RESELLER, 0bfd66d529a55807 # Primis
|
||||
smartadserver.com, 3436, RESELLER, 060d053dcf45cbf3 # Primis
|
||||
indexexchange.com, 191923, RESELLER, 50b1c356f2c5c8fc # Primis
|
||||
Media.net, 8CU695QH7, RESELLER # Primis
|
||||
triplelift.com, 8210, RESELLER, 6c33edb13117fd86 # Primis
|
||||
appnexus.com,16007, RESELLER, f5ab79cb980f11d1 # Primis
|
||||
pmc.com, 1240739, DIRECT, 8dd52f825890bb44 # Primis
|
||||
rubiconproject.com, 10278, RESELLER, 0bfd66d529a55807 # Primis
|
||||
video.unrulymedia.com, 776418614052335749, RESELLER # Primis
|
||||
pubmatic.com, 159234, RESELLER, 5d62403b186f2ace # PubMatic_0_6&7
|
||||
pubmatic.com, 160552, RESELLER, 5d62403b186f2ace # PubMatic_4_7
|
||||
pubmatic.com, 159401, RESELLER, 5d62403b186f2ace # PubMatic_2_6&7
|
||||
pubmatic.com, 163598, RESELLER, 5d62403b186f2ace # Pubmatic_OW
|
||||
pubmatic.com, 165533, RESELLER, 5d62403b186f2ace # Pubmatic_KR
|
||||
richaudience.com, 1XvIoD5o0S, DIRECT # Rich Audience_0_6&7
|
||||
pubmatic.com, 81564, DIRECT, 5d62403b186f2ace # Rich Audience_0_6&7
|
||||
pubmatic.com, 156538, DIRECT, 5d62403b186f2ace # Rich Audience_0_6&7
|
||||
appnexus.com, 8233, DIRECT # Rich Audience_0_6&7
|
||||
rubiconproject.com, 13510, DIRECT # Rich Audience_0_6&7
|
||||
risecodes.com, 5fa94677b2db6a00015b22a9, DIRECT # Rise
|
||||
pubmatic.com, 160295, RESELLER, 5d62403b186f2ace # Rise
|
||||
xandr.com, 14082, RESELLER # Rise
|
||||
rubiconproject.com, 23876, RESELLER, 0bfd66d529a55807 # Rise
|
||||
sharethrough.com, 5926d422, RESELLER, d53b998a7bd4ecd2 # Rise
|
||||
yieldmo.com, 2754490424016969782, RESELLER # Rise
|
||||
media.net, 8CUQ6928Q, RESELLER # Rise
|
||||
onetag.com, 69f48c2160c8113, RESELLER # Rise
|
||||
amxrtb.com, 105199691, RESELLER # Rise
|
||||
33across.com, 0010b00002Xbn7QAAR, RESELLER, bbea06d9c4d2853c # Rise
|
||||
video.unrulymedia.com, 335119963, RESELLER # Rise
|
||||
seedtag.com, 5aa6c80640c9e209009721e0, DIRECT # Seedtag
|
||||
xandr.com, 4009, DIRECT, f5ab79cb980f11d1 # Seedtag
|
||||
rubiconproject.com, 17280, DIRECT, 0bfd66d529a55807 # Seedtag
|
||||
sharethrough.com, 31c129df, DIRECT, d53b998a7bd4ecd2 # Sharethrough_0_6&7
|
||||
sharethrough.com, awx1H4AI, RESELLER, d53b998a7bd4ecd2 # Sharethrough
|
||||
pmc.com, 1242472, DIRECT, 8dd52f825890bb44 # She_Media
|
||||
rubiconproject.com, 10278, RESELLER, 0bfd66d529a55807 # She_Media
|
||||
smartadserver.com, 2161, RESELLER # Showheroes_7_8
|
||||
smartadserver.com, 3668, RESELLER # Showheroes_7_8
|
||||
showheroes.com, 6829, RESELLER # Showheroes_7_8
|
||||
smartadserver.com, 3490, DIRECT # Smart AdServer_0&1&2_6&7
|
||||
smartadserver.com, 4016, DIRECT # Smart AdServer_0&1&2_6&7
|
||||
smartadserver.com, 4074, DIRECT # Smart AdServer_0&1&2_6&7
|
||||
sonobi.com, 116da9d98c, DIRECT, d1a215d9eb5aee9e # Sonobi_0_6&7
|
||||
sonobi.com, e017850301, DIRECT, d1a215d9eb5aee9e # Sonobi_4_7
|
||||
sonobi.com, dc5f975b54, RESELLER, d1a215d9eb5aee9e # Sonobi_TAM
|
||||
sonobi.com, 168faa72a7, RESELLER, d1a215d9eb5aee9e # Sonobi_Oz
|
||||
sovrn.com, 237754, DIRECT, fafdf38b16bf6b2b # Sovrn_0&1&2_6&7
|
||||
lijit.com, 237754, DIRECT, fafdf38b16bf6b2b # Sovrn_0&1&2_6&7
|
||||
lijit.com, 506352, DIRECT, fafdf38b16bf6b2b # Sovrn_Ozone
|
||||
tappx.com, 42745, DIRECT, 9f375a07da0318ec # Tappx
|
||||
pubmatic.com, 158111, RESELLER, 5d62403b186f2ace # Tappx
|
||||
sharethrough.com, 49574e61,RESELLER, d53b998a7bd4ecd2 # Tappx
|
||||
smartadserver.com,1692, RESELLER,060d053dcf45cbf3 # Tappx
|
||||
rubiconproject.com,13856,RESELLER,0bfd66d529a55807 # Tappx
|
||||
video.unrulymedia.com,3341072718,RESELLER # Tappx
|
||||
33across.com,0010b00001siQHqAAM,RESELLER,bbea06d9c4d2853c # Tappx
|
||||
themediagrid.com,4FDQYH,RESELLER,35d5010d7789b49d # Tappx
|
||||
triplelift.com, 6059, RESELLER, 6c33edb13117fd86 # Triplelift_0&2_6&7
|
||||
video.unrulymedia.com, 985572675, DIRECT # Unruly_0&2_7
|
||||
video.unrulymedia.com, 985572675, RESELLER # Unruly_0&2_7
|
||||
sharethrough.com, 6qlnf8SY, RESELLER, d53b998a7bd4ecd2 # Unruly
|
||||
pubmatic.com, 156512, DIRECT # Wunderkind
|
||||
indexexchange.com, 183753, DIRECT # Wunderkind
|
||||
wunderkind.co, 6438, DIRECT # Wunderkind
|
||||
wunderkind.co, 6449, DIRECT # Wunderkind
|
||||
criteo.com, B-068503, DIRECT # Wunderkind
|
||||
appnexus.com, 806, DIRECT, f5ab79cb980f11d1 # Xandr_0&2_6&7
|
||||
appnexus.com,1908,RESELLER,f5ab79cb980f11d1 # Xandr_0&2_6&7
|
||||
google.com, pub-3282547114800347, RESELLER, f08c47fec0942fa0
|
||||
adinplay.com, FTB, DIRECT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Kueez
|
||||
kueez.com,e5b6208bc94ed2d5788e1e4c1cf5452e, DIRECT
|
||||
rubiconproject.com, 16920, RESELLER, 0bfd66d529a55807
|
||||
openx.com, 557564833, RESELLER, 6a698e2ec38604c6
|
||||
Pubmatic.com, 162110, RESELLER, 5d62403b186f2ace
|
||||
lijit.com, 407406, RESELLER, fafdf38b16bf6b2b #SOVRN
|
||||
sharethrough.com, n98xDzeL, RESELLER, d53b998a7bd4ecd2
|
||||
sonobi.com, 4c4fba1717, RESELLER, d1a215d9eb5aee9e
|
||||
appnexus.com, 8826,RESELLER, f5ab79cb980f11d1
|
||||
33across.com, 0010b00002ODU4HAAX, RESELLER, bbea06d9c4d2853c
|
||||
Media.net,8CU4JTRF9, RESELLER
|
||||
|
||||
# PGAM
|
||||
pgamssp.com, 634dc90283fff00f005151f2, DIRECT
|
||||
amxrtb.com, 105199776, RESELLER
|
||||
pubmatic.com, 162623, RESELLER, 5d62403b186f2ace
|
||||
rubiconproject.com, 24852, RESELLER, 0bfd66d529a55807
|
||||
onetag.com, 87f80e5d9d55274, RESELLER
|
||||
freewheel.tv, 1489202, RESELLER
|
||||
|
||||
#Yieldmo
|
||||
yieldmo.com, 2440034636282143652, DIRECT
|
||||
rubiconproject.com, 17070, RESELLER, 0bfd66d529a55807
|
||||
pubmatic.com, 160648, RESELLER, 5d62403b186f2ace
|
||||
contextweb.com, 561118, RESELLER, 89ff185a4c4e857c
|
||||
conversantmedia.com, 100270, RESELLER, 03113cd04947736d
|
||||
appnexus.com, 7911, RESELLER
|
||||
|
||||
# OptiDigital
|
||||
optidigital.com,p230,DIRECT
|
||||
pubmatic.com,158939,RESELLER,5d62403b186f2ace
|
||||
rubiconproject.com,20336,RESELLER,0bfd66d529a55807
|
||||
smartadserver.com,3379,RESELLER,060d053dcf45cbf3
|
||||
criteo.com,B-060926,RESELLER,9fac4a4a87c2a44f
|
||||
appnexus.com,12190,RESELLER,f5ab79cb980f11d1
|
||||
triplelift.com,8183,RESELLER,6c33edb13117fd86
|
||||
|
||||
# NHace
|
||||
acexchange.co.kr, 1908143852, RESELLER
|
||||
loopme.com, 11544, RESELLER, 6c8d5f95897a5a3b
|
||||
smartyads.com, 300036, RESELLER, fd2bde0ff2e62c5d
|
||||
yeahmobi.com, 5135284, Reseller
|
||||
|
||||
# Smaato
|
||||
smaato.com, 1100055690, DIRECT, 07bcf65f187117b4
|
||||
smaato.com, 1100049216, DIRECT, 07bcf65f187117b5
|
||||
rubiconproject.com, 24600, RESELLER, 0bfd66d529a55807
|
||||
sharethrough.com, iBAzay96, RESELLER, d53b998a7bd4ecd2
|
||||
pubmatic.com, 156177, RESELLER, 5d62403b186f2ace
|
||||
|
||||
# OMS Test
|
||||
onlinemediasolutions.com, 21009, DIRECT
|
||||
pubmatic.com, 161332, RESELLER, 5d62403b186f2ace
|
||||
amxrtb.com, 105199514, RESELLER
|
||||
yieldmo.com, 2757543169808605705, RESELLER
|
||||
audienciad.com, 210092, DIRECT
|
||||
rubiconproject.com, 20416, RESELLER, 0bfd66d529a55807
|
||||
onomagic.com, 210091, DIRECT
|
||||
lijit.com, 374814, RESELLER, fafdf38b16bf6b2b
|
||||
onetag.com, 75753f1ebcc343c, RESELLER
|
||||
openx.com, 537153209, RESELLER, 6a698e2ec38604c6
|
||||
video.unrulymedia.com, 6694405583287859332, RESELLER
|
||||
appnexus.com, 11801, RESELLER
|
||||
onetag.com, 7b561459c997848, RESELLER
|
||||
appnexus.com, 15629, RESELLER, f5ab79cb980f11d1
|
||||
aps.amazon.com, 48266a61-b3d9-4cb7-b172-553abc6a42a4, DIRECT
|
||||
indexexchange.com, 197494, RESELLER, 50b1c356f2c5c8fc
|
||||
pubmatic.com, 163517, RESELLER, 5d62403b186f2ace
|
||||
advibe.media, 821009, DIRECT
|
||||
loopme.com, 12733, RESELLER, 6c8d5f95897a5a3b
|
||||
rubiconproject.com, 24364, RESELLER, 0bfd66d529a55807
|
||||
getmediamx.com, 1221009, DIRECT
|
||||
smartadserver.com, 4483, RESELLER
|
||||
limpid.tv, 921009, DIRECT
|
||||
rubiconproject.com, 25722, RESELLER, 0bfd66d529a55807
|
||||
sonobi.com, 3aed893727, RESELLER, d1a215d9eb5aee9e
|
||||
Media.net, 8CUB46Z7R, RESELLER
|
||||
themediagrid.com, IRK975, RESELLER, 35d5010d7789b49d
|
||||
sharethrough.com, UxId3u8j, RESELLER, d53b998a7bd4ecd2
|
||||
pmc.com, 1242344, DIRECT, 8dd52f825890bb44
|
||||
rubiconproject.com, 10278, RESELLER, 0bfd66d529a55807
|
||||
adyoulike.com, e9a771d72c076dbe3cafc2c6477f9238, RESELLER
|
||||
|
||||
# Adsolut Test
|
||||
Adsolut.in, 17582, DIRECT
|
||||
Playstream.media, 2713, DIRECT
|
||||
Pubmatic.com, 164692, RESELLER, 5d62403b186f2ace
|
||||
pubmatic.com, 162175, RESELLER, 5d62403b186f2ace
|
||||
openx.com, 560878260, RESELLER, 6a698e2ec38604c6
|
||||
openx.com, 557904194, RESELLER, 6a698e2ec38604c6
|
||||
rubiconproject.com, 24872, RESELLER, 0bfd66d529a55807
|
||||
rubiconproject.com, 24874, RESELLER, 0bfd66d529a55807
|
||||
rubiconproject.com, 26768, RESELLER, 0bfd66d529a55807
|
||||
pubmatic.com, 159727, RESELLER, 5d62403b186f2ace
|
||||
pubmatic.com, 157742, RESELLER, 5d62403b186f2ace
|
||||
pubmatic.com, 157569, RESELLER, 5d62403b186f2ace
|
||||
pubmatic.com, 159941, RESELLER, 5d62403b186f2ace
|
||||
xandr.com, 9988, RESELLER
|
||||
appnexus.com, 9988, RESELLER
|
||||
teads.tv, 25843, DIRECT, 15a9c44f6d26cbe1
|
||||
vdopia.com, 15364, DIRECT, 49a66ce31a704197 #video
|
||||
chocolateplatform.com, 15364, DIRECT, 49a66ce31a704197 #video
|
||||
vdopia.com, 15364, DIRECT, 49a66ce31a704197 #banner
|
||||
chocolateplatform.com, 15364, DIRECT, 49a66ce31a704197 #banner
|
||||
smartadserver.com, 4164, DIRECT, 060d053dcf45cbf3
|
||||
smartadserver.com, 4164, RESELLER, 060d053dcf45cbf3
|
||||
smartadserver.com, 4164-OB, RESELLER, 060d053dcf45cbf3
|
||||
contextweb.com, 560288, RESELLER, 89ff185a4c4e857c
|
||||
pubmatic.com, 156439, RESELLER, 5d62403b186f2ace
|
||||
pubmatic.com, 154037, RESELLER, 5d62403b186f2ace
|
||||
rubiconproject.com, 16114, RESELLER, 0bfd66d529a55807
|
||||
openx.com, 537149888, RESELLER, 6a698e2ec38604c6
|
||||
appnexus.com, 3703, RESELLER, f5ab79cb980f11d1
|
||||
loopme.com, 5679, RESELLER, 6c8d5f95897a5a3b
|
||||
xad.com, 958, RESELLER, 81cbf0a75a5e0e9a
|
||||
rhythmone.com, 2564526802, RESELLER, a670c89d4a324e47
|
||||
smaato.com, 1100044045, RESELLER, 07bcf65f187117b4
|
||||
pubnative.net, 1006576, RESELLER, d641df8625486a7b
|
||||
verve.com, 15503, RESELLER, 0c8f5958fc2d6270
|
||||
adyoulike.com, b4bf4fdd9b0b915f746f6747ff432bde, RESELLER
|
||||
axonix.com, 57264, RESELLER
|
||||
admanmedia.com, 43, RESELLER
|
||||
smartadserver.com, 4012, RESELLER
|
||||
smartadserver.com, 4016, RESELLER
|
||||
smartadserver.com, 4071, RESELLER
|
||||
smartadserver.com, 4073, RESELLER
|
||||
smartadserver.com, 4074, RESELLER
|
||||
criteo.com, B-068838, DIRECT, 9fac4a4a87c2a44f
|
||||
themediagrid.com, Q6VXLE, DIRECT, 35d5010d7789b49d
|
||||
aps.amazon.com,5d8ed25e-57cc-441a-b62a-127b34faae4e, DIRECT
|
||||
telaria.com,4pco5-ef5so,RESELLER,1a4e959a1b50034a
|
||||
tremorhub.com,4pco5-ef5so,RESELLER,1a4e959a1b50034a
|
||||
springserve.com, 2112, RESELLER, a24eb641fc82e93d
|
||||
|
||||
# Nobid Test
|
||||
nobid.io, 22629800915, DIRECT
|
||||
zetaglobal.net, 693, DIRECT
|
||||
sharethrough.com, aRE1degH, RESELLER, d53b998a7bd4ecd2
|
||||
rubiconproject.com, 18694, RESELLER, 0bfd66d529a55807
|
||||
pubmatic.com, 156557, RESELLER
|
||||
lijit.com, 273657, RESELLER, fafdf38b16bf6b2b
|
||||
rubiconproject.com, 24434, RESELLER, 0bfd66d529a55807
|
||||
amxrtb.com, 105199579, RESELLER
|
||||
appnexus.com, 12290, RESELLER
|
||||
lijit.com, 260380, RESELLER
|
||||
xandr.com, 11429, RESELLER, f5ab79cb980f11d1
|
||||
onetag.com, 694e68b73971b58, RESELLER
|
||||
|
||||
# Onetag Test
|
||||
onetag.com, 59c7d7f65f9d658, DIRECT
|
||||
appnexus.com, 13099, RESELLER
|
||||
pubmatic.com, 161593, RESELLER, 5d62403b186f2ace
|
||||
rubiconproject.com, 11006, RESELLER, 0bfd66d529a55807
|
||||
|
||||
# Pulsepoint Test
|
||||
Contextweb.com,563522,DIRECT,89ff185a4c4e857c
|
||||
rubiconproject.com, 26184, RESELLER, 0bfd66d529a55807
|
||||
iqzone.com,IQ272,RESELLER
|
||||
mediafuse.com, 720, RESELLER
|
||||
appnexus.com, 9538, RESELLER, f5ab79cb980f11d1
|
||||
sovrn.com, 253233, RESELLER, fafdf38b16bf6b2b
|
||||
lijit.com, 253233, RESELLER, fafdf38b16bf6b2b
|
||||
loopme.com, 11436, RESELLER, 6c8d5f95897a5a3b
|
||||
|
||||
# NextMillennium Test
|
||||
nextmillennium.io, 16749, DIRECT, 65bd090fa4a1e3d6
|
||||
admagnetix.io, 201898, DIRECT
|
||||
appnexus.com, 9284, DIRECT, f5ab79cb980f11d1
|
||||
appnexus.com, 15799, DIRECT, f5ab79cb980f11d1
|
||||
rubiconproject.com, 17888, RESELLER, 0bfd66d529a55807
|
||||
rubiconproject.com, 26296, RESELLER, 0bfd66d529a55807
|
||||
pubmatic.com, 157577, DIRECT, 5d62403b186f2ace
|
||||
pubmatic.com, 164400, RESELLER, 5d62403b186f2ace
|
||||
indexexchange.com, 194648, RESELLER, 50b1c356f2c5c8fc
|
||||
indexexchange.com, 207985, RESELLER, 50b1c356f2c5c8fc
|
||||
openx.com, 540224251, DIRECT, 6a698e2ec38604c6
|
||||
openx.com, 540225743, DIRECT, 6a698e2ec38604c6
|
||||
33across.com, 0010b00002e4MRRAA2, DIRECT, bbea06d9c4d2853c
|
||||
33across.com, 001Pg000007PnplIAC, DIRECT, bbea06d9c4d2853c #33Across #hb #tag
|
||||
yieldmo.com, 2230523609997805235, DIRECT
|
||||
yieldmo.com, 3483642730188317326, DIRECT
|
||||
|
||||
# Nativo Test
|
||||
nativo.com, 5712, DIRECT, 59521ca7cc5e9fee
|
||||
openx.com, 540709535, RESELLER, 6a698e2ec38604c6
|
||||
pubmatic.com, 156500, RESELLER, 5d62403b186f2ace
|
||||
smartadserver.com, 4878, RESELLER, 060d053dcf45cbf3
|
||||
zetaglobal.net, 989, RESELLER
|
||||
|
||||
# 33across Test
|
||||
33across.com, 0010b00001rrIFkAAM, DIRECT, bbea06d9c4d2853c
|
||||
appnexus.com, 10239, RESELLER, f5ab79cb980f11d1
|
||||
video.unrulymedia.com, 2439829435, DIRECT
|
||||
conversantmedia.com, 100141, DIRECT, 03113cd04947736d
|
||||
pubmatic.com, 156423, RESELLER, 5d62403b186f2ace
|
||||
rubiconproject.com, 16414, RESELLER, 0bfd66d529a55807
|
||||
rubiconproject.com, 21642, RESELLER, 0bfd66d529a55807
|
||||
loopme.com,11575,RESELLER,6c8d5f95897a5a3b
|
||||
openx.com, 537120563, RESELLER, 6a698e2ec38604c6
|
||||
contextweb.com, 561516, RESELLER, 89ff185a4c4e857c
|
||||
adyoulike.com, 1f301d3bcd723f5c372070bdfd142940, RESELLER
|
||||
|
||||
# Weborama Test
|
||||
appnexus.com, 12986, RESELLER, f5ab79cb980f11d1
|
||||
improvedigital.com, 1069, RESELLER
|
||||
pubmatic.com, 158056, RESELLER
|
||||
Weborama.nl, 10714, DIRECT
|
||||
|
||||
# Inmobi Test
|
||||
inmobi.com, cdfd74ce1cdd4a67b1c4794c072324ff, DIRECT, 83e75a7ae333ca9d
|
||||
rubiconproject.com,11726,RESELLER,0bfd66d529a55807
|
||||
rubiconproject.com,12266,RESELLER,0bfd66d529a55807
|
||||
Blis.com,33,RESELLER,61453ae19a4b73f4
|
||||
loopme.com,9724,RESELLER,6c8d5f95897a5a3b
|
||||
pubmatic.com,157097,RESELLER,5d62403b186f2ace
|
||||
conversantmedia.com,40881,RESELLER,03113cd04947736d
|
||||
pubmatic.com,156931,RESELLER,5d62403b186f2ace
|
||||
pubmatic.com,159035,RESELLER,5d62403b186f2ace
|
||||
outbrain.com,00bba279fec6daa01a0cb6fdccb023f0d5,RESELLER
|
||||
venatus.com, 67a9ed9754327b1c4246265f, DIRECT
|
||||
18793
adtest.html
18793
adtest.html
File diff suppressed because it is too large
Load Diff
|
|
@ -4,7 +4,7 @@
|
|||
// If elem1 exists
|
||||
if (elements[key].reactions[reaction].elem1) {
|
||||
// If elem1 is an array, loop through each element, else check once. Don't delete if it === null
|
||||
if (Array.isArray(elements[key].reactions[reaction].elem1)) {
|
||||
if (Array.isArray(elements[key].reactions[reaction].elem1)) {
|
||||
for (var i = 0; i < elements[key].reactions[reaction].elem1.length; i++) {
|
||||
if (elements[key].reactions[reaction].elem1[i] && !elements[elements[key].reactions[reaction].elem1[i]]) {
|
||||
elements[key].reactions[reaction].elem1.splice(i,1);
|
||||
|
|
@ -101,4 +101,4 @@
|
|||
else {
|
||||
if (elements[key].breakInto[i]!==null && !elements[elements[key].breakInto]) { delete elements[key].breakInto; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@
|
|||
<tr><td>E</td> <td>Select any element by name</tr>
|
||||
<tr><td>TPS</td> <td>Change how fast the simulation runs (Default 30tps)</tr>
|
||||
<tr><td>Info</td> <td>Open the element info screen</tr>
|
||||
<tr><td>Saves</td> <td>Open the Save & Load menu</tr>
|
||||
<tr><td>Mods</td> <td>Open the Mod Manager</tr>
|
||||
<tr><td>Settings</td> <td>Open the Settings Menu</tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -56,5 +56,6 @@ Replace = Override existing pixels when placing
|
|||
E = Select any element by name
|
||||
TPS = Change how fast the simulation runs
|
||||
Info = Open the element info screen
|
||||
Saves = Open the Save & Load menu
|
||||
Mods = Open the Mod Manager
|
||||
Settings = Open the Settings Menu
|
||||
Settings = Open the Settings Menu
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Sandboxels in Education</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<p>Sandboxels is a free experimentation simulator that can be played in any web browser. It features heat simulation, electricity, density, chemical reactions, cooking, and fire spread.</p>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Sandboxels Feedback</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<p>We accept any suggestions, feedback, or kind words you'd like to send us! We usually can't provide support for mod issues.</p>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Troubleshooting Sandboxels</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<p>This page will walk you through fixing the most common issues that users have playing Sandboxels.</p>
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 705 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 134 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 246 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 107 KiB |
58
index.html
58
index.html
|
|
@ -52,6 +52,7 @@
|
|||
currentversion = "1.11.1";
|
||||
saveVersion = 4;
|
||||
standalone = false;
|
||||
standaloneType = null;
|
||||
</script>
|
||||
<style>
|
||||
.setting-span {
|
||||
|
|
@ -12963,23 +12964,39 @@ SEEDRISE: function(pixel) {
|
|||
"infection_ice": { color: "#ff7090" },
|
||||
|
||||
};
|
||||
|
||||
// detect if discord activity
|
||||
if (location.hostname.match(/discordsays/i)) {
|
||||
standalone = true;
|
||||
standaloneType = "discord";
|
||||
}
|
||||
|
||||
// standalone glow.js
|
||||
if (standalone) {
|
||||
var script = document.createElement('script');
|
||||
script.src = "mods/glow.js";
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
|
||||
var currentMonth = new Date().getMonth();
|
||||
if (window.location.href.includes("holiday=false")) {}
|
||||
else if (currentMonth == 3) { // April
|
||||
if (new Date().getDate() <= 3) {
|
||||
if (new Date().getDate() <= 3 && !standalone) {
|
||||
var script = document.createElement('script');
|
||||
script.src = "mods/fools25.js";
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
if (new Date().getDate() === 20) {
|
||||
else if (new Date().getDate() === 20) {
|
||||
elements.egg.color = elements.bead.color;
|
||||
}
|
||||
}
|
||||
else if (currentMonth == 9) { // October
|
||||
elements.pumpkin_seed.hidden = false;
|
||||
var script = document.createElement('script');
|
||||
script.src = "mods/souls.js"
|
||||
document.head.appendChild(script);
|
||||
if (!standalone) {
|
||||
var script = document.createElement('script');
|
||||
script.src = "mods/souls.js"
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
if (new Date().getDate() >= 30) {
|
||||
elements.body.color = "#bf5c00";
|
||||
}
|
||||
|
|
@ -13048,6 +13065,10 @@ onAddElementList = [];
|
|||
function onAddElement(callback) {
|
||||
onAddElementList.push(callback);
|
||||
}
|
||||
validateMovesList = [];
|
||||
function validateMoves(callback) {
|
||||
validateMovesList.push(callback);
|
||||
}
|
||||
canvasLayers = {
|
||||
// bg: document.createElement("canvas"),
|
||||
pixels: document.createElement("canvas"),
|
||||
|
|
@ -13764,6 +13785,16 @@ function langKey(key,fallback,template) {
|
|||
function tryMove(pixel,nx,ny,leaveBehind,force) {
|
||||
if (pixel.drag && force !== true) { return true; }
|
||||
if (pixel.del) { return false }
|
||||
if (validateMovesList.length !== 0 && force !== true) {
|
||||
for (let i = 0; i < validateMovesList.length; i++) {
|
||||
const result = validateMovesList[i](pixel,nx,ny);
|
||||
if (result === false) return false;
|
||||
else if (Array.isArray(result)) {
|
||||
nx = result[0];
|
||||
ny = result[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
var info = elements[pixel.element];
|
||||
var oob = outOfBounds(nx,ny);
|
||||
if (isEmpty(nx,ny,false,oob)) { // If coords is empty, move to coords
|
||||
|
|
@ -18519,7 +18550,7 @@ window.onload = function() {
|
|||
}
|
||||
}
|
||||
|
||||
if (location.ancestorOrigins && location.ancestorOrigins[0]) {
|
||||
if (location.ancestorOrigins && location.ancestorOrigins[0] && standaloneType !== "discord") {
|
||||
//lol
|
||||
var _0x3f4094=_0x2f29;function _0x2f29(_0x3c9905,_0x43fa2c){var _0x35230b=_0x3523();return _0x2f29=function(_0x2f29a1,_0x2c7678){_0x2f29a1=_0x2f29a1-0x133;var _0x12514f=_0x35230b[_0x2f29a1];return _0x12514f;},_0x2f29(_0x3c9905,_0x43fa2c);}(function(_0x408068,_0x2c46ce){var _0x22155d=_0x2f29,_0x9c939f=_0x408068();while(!![]){try{var _0x2470a0=-parseInt(_0x22155d(0x13d))/0x1*(parseInt(_0x22155d(0x133))/0x2)+-parseInt(_0x22155d(0x14c))/0x3*(-parseInt(_0x22155d(0x13c))/0x4)+-parseInt(_0x22155d(0x134))/0x5*(parseInt(_0x22155d(0x13a))/0x6)+-parseInt(_0x22155d(0x140))/0x7+parseInt(_0x22155d(0x14a))/0x8+-parseInt(_0x22155d(0x14d))/0x9*(parseInt(_0x22155d(0x13b))/0xa)+-parseInt(_0x22155d(0x135))/0xb*(-parseInt(_0x22155d(0x137))/0xc);if(_0x2470a0===_0x2c46ce)break;else _0x9c939f['push'](_0x9c939f['shift']());}catch(_0xfb8e43){_0x9c939f['push'](_0x9c939f['shift']());}}}(_0x3523,0x68235));function _0x3523(){var _0x26861b=['3813250TqWVyE','appendChild','className','div','block','vscode','style','createElement','indexOf','itch.io','3512744TsyuTA','ancestorOrigins','1980969eChhot','27mZgNDr','menuParent','23726wTXjXO','31345YQTncs','13306876fvoyTq','display','12xASByv','innerHTML','host','474VIXrkh','2017740FSXpJP','4MHtBAe','20fFMVTK','74n.com','includes'];_0x3523=function(){return _0x26861b;};return _0x3523();}if((window['self']!==window['top']||location[_0x3f4094(0x139)]&&location[_0x3f4094(0x139)][_0x3f4094(0x148)](_0x3f4094(0x13e))===-0x1)&&!(location[_0x3f4094(0x14b)][0x0][_0x3f4094(0x13f)](_0x3f4094(0x149))||location[_0x3f4094(0x14b)][0x0][_0x3f4094(0x13f)](_0x3f4094(0x145)))){var menuParent=document[_0x3f4094(0x147)](_0x3f4094(0x143));menuParent[_0x3f4094(0x142)]=_0x3f4094(0x14e),menuParent[_0x3f4094(0x146)][_0x3f4094(0x136)]=_0x3f4094(0x144),menuParent[_0x3f4094(0x138)]='<div\x20class=\x22menuScreen\x22>\x0a<button\x20class=\x22XButton\x22\x20onclick=\x22closeMenu();\x22>-</button>\x0a<span\x20class=\x22menuTitle\x22>WARNING</span>\x0a<div\x20class=\x22menuText\x22\x20style=\x22padding-top:1em\x22>\x0a\x20\x20\x20\x20You\x20may\x20be\x20on\x20a\x20website\x20that\x20has\x20embedded\x20our\x20simulator\x20involuntarily.\x0a<br><br>\x0aThe\x20real\x20one\x20is\x20at\x20this\x20URL:\x20<a\x20href=\x22https://sandboxels.r74n.com\x22\x20target=\x22_blank\x22>sandboxels.R74n.com</a>.\x0a<br><br>\x0aPlease\x20use\x20the\x20main\x20website\x20to\x20support\x20us\x20instead.\x0a<br><br>\x0aYou\x20can\x20also\x20join\x20our\x20<a\x20href=\x22https://discord.gg/ejUc6YPQuS\x22\x20target=\x22_blank\x22>Discord</a>\x20if\x20that\x20isn't\x20possible.\x0a</div>\x0a<br><br><br><br>\x0a</div>',document['body'][_0x3f4094(0x141)](menuParent),showingMenu='alert';}
|
||||
var origin = location.ancestorOrigins[0];
|
||||
|
|
@ -18576,7 +18607,7 @@ window.onload = function() {
|
|||
</div>
|
||||
<script>
|
||||
// if it is the 1st of April, add a rainbow-colored button
|
||||
if (true || new Date().getMonth() == 3 && new Date().getDate() <= 3) {
|
||||
if (!standalone && new Date().getMonth() == 3 && new Date().getDate() <= 3) {
|
||||
// if url contains "fools=true"
|
||||
if (!window.location.href.includes("fools=true")) {
|
||||
var foolsButton = `<button id="foolsButton" title="Enable FOOLS Mode" class="controlButton" onclick="window.location.href = '?fools=true'" style="background: linear-gradient(90deg, #ff0000, #ff7f00, #ffff00, #00ff00, #0000ff, #4b0082, #9400d3); background-size: 800% 800%; animation: rainbow 15s ease infinite; -webkit-background-clip: text; -webkit-text-fill-color: transparent; border-color: #ff00ff; outline: none; text-shadow: 0px 0px 10px #ff00ff;">Fools</button>`
|
||||
|
|
@ -18597,7 +18628,8 @@ window.onload = function() {
|
|||
</div>
|
||||
<div id="extraInfo"><small><a href="https://sandboxels.r74n.com/changelog" id="changelogButton" target="_blank">Changelog</a> • <a href="https://sandboxels.R74n.com/feedback" target="_blank" style="color:lime;" id="feedbackButton">Feedback</a> • <a href="https://sandboxels.wiki.gg/" target="_blank" id="wikiButton" title="Official Sandboxels Wiki - wiki.gg" style="color:white;">Wiki</a> • <a id="moreSocial" href="https://twitter.com/R74nCom" rel="me" target="_blank">Twitter</a> • <a href="https://discord.gg/ejUc6YPQuS" target="_blank" style="color:#2f60ff;">Discord</a><span id="install-button" style="display:none"> • <a onclick="deferredPrompt.prompt(); return false" href="#" style="text-shadow: 0px 2px 10px #ff00ff; cursor:pointer">Install Offline</a></span>
|
||||
<!--<br><br><a style="color:lime" target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLSeYMbngtbBHZ7hkz8jpbHl7TiAItqukrhtntKgAHjH30fY08A/viewform?usp=sf_link">FILL OUT THE CENSUS<span style="color:red">(NEW)</span></a>-->
|
||||
<!--<br><br><a style="color:lime" target="_blank" href="https://r74n.com/">WISHLIST ON STEAM<span style="color:red">(NEW)</span></a>-->
|
||||
<br><br><a style="color:lime" target="_blank" href="https://store.steampowered.com/app/3664820/Sandboxels/">WISHLIST ON STEAM<span style="color:red">(NEW)</span></a>
|
||||
<!--<br><br><a style="color:lime" target="_blank" href="https://r74n.com/">PLAY AD-FREE ON STEAM<span style="color:red">(NEW)</span></a>-->
|
||||
</small></div>
|
||||
<script>
|
||||
// version check
|
||||
|
|
@ -18961,7 +18993,7 @@ Cancer, Landmine, Grenade, Smoke Grenade">?</span>
|
|||
<p id="intro6">We have a thriving community on <a href="https://discord.gg/ejUc6YPQuS" target="_blank">Discord</a>! There you can post feedback or share your creations.</p>
|
||||
<!-- <p>If you'd like to support us, consider donating on <a href="https://www.paypal.com/donate/?hosted_button_id=GCX4VHQ7SZWTN" target="_blank">PayPal</a> or <a href="https://cash.app/$emojiartist" target="_blank" title="$emojiartist">CashApp</a>, or subscribing on Discord.</p> -->
|
||||
<p id="intro7">Business inquiries? Education stories? Help needed? Email us at <a href="mailto:contact@R74n.com?subject=%5BSandboxels%5D">contact@R74n.com</a>!</p>
|
||||
<p id="introLinks">More links: <a href="https://sandboxels.R74n.com/help" rel="help">Help</a> • <a href="https://sandboxels.R74n.com/tips">Tips</a> • <a href="https://sandboxels.R74n.com/mod-list">Mods</a> • <a href="https://sandboxels.R74n.com/mobile-use">Mobile</a> • <a href="https://sandboxels.R74n.com/offline-use">Offline</a> • <a href="https://R74n.com/privacy">Privacy</a></p>
|
||||
<p id="introLinks">More links: <a href="https://sandboxels.R74n.com/help" rel="help">Help</a> • <a href="https://sandboxels.R74n.com/tips">Tips</a> • <a href="https://sandboxels.R74n.com/mod-list">Mods</a> • <a href="https://sandboxels.R74n.com/mobile-use">Mobile</a> • <a href="https://sandboxels.R74n.com/offline-use">Offline</a> • <a href="https://sandboxels.R74n.com/presskit">Press</a> • <a href="https://R74n.com/privacy">Privacy</a></p>
|
||||
<p><span id="patronThanks">Thanks to our Patrons</span>: Serioustar, ggod, Midi_png, personman, fnl4y, PitsPower, swagg boi, moss, Suss, epsiloneridani, WeiChei, Trent, u2ce</p>
|
||||
<p style="display:none" id="langCredit">Translation by R74n</p>
|
||||
<p id="outro">Sandboxels is developed by R74n. Check out <a href="https://R74n.com" rel="author" target="_blank">our other projects</a>!</p>
|
||||
|
|
@ -19056,6 +19088,14 @@ Cancer, Landmine, Grenade, Smoke Grenade">?</span>
|
|||
document.getElementById("bottomInfoBox").style.display = "none";
|
||||
document.getElementById("pagetitle").style.display = "none";
|
||||
document.getElementById("noMods").insertAdjacentHTML("afterend","Requires Internet connection.<br><br>")
|
||||
document.getElementById("gameDiv").classList.add("standalone");
|
||||
if (isMobile) {
|
||||
document.getElementById("gameDiv").classList.add("mobile");
|
||||
}
|
||||
if (standaloneType === "discord") {
|
||||
document.getElementById("savesButton").style.display = "none";
|
||||
document.getElementById("modsButton").style.display = "none";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test - Sandboxels</title>
|
||||
<meta name="description" content="Test">
|
||||
<title>Sandboxels Images</title>
|
||||
<meta name="description" content="Browse images of the classic falling-sand game.">
|
||||
<meta name="keywords" content="falling sand, elements, pixel art, simulator, powder">
|
||||
<meta name="author" content="R74n">
|
||||
<meta name="copyright" content="R74n">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta name="robots" content="all">
|
||||
|
||||
<!--Favicons-->
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="icons/apple-touch-icon.png?v=2">
|
||||
|
|
@ -46,52 +46,71 @@
|
|||
}
|
||||
#content { font-family: Arial, Helvetica, sans-serif; font-size:1.5em; }
|
||||
h2 { text-align: center; margin-bottom:0; margin-top:45px}
|
||||
|
||||
#images {
|
||||
display:flex;
|
||||
border: 2px solid rgba(255, 255, 255, 0.45);
|
||||
box-sizing: border-box;
|
||||
max-width: 100%;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.imageItem {
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
min-height: 10em;
|
||||
border-style: solid;
|
||||
border-color: rgba(255, 255, 255, 0.45);
|
||||
border-left-width: 2px;
|
||||
border-right-width: 2px;
|
||||
box-sizing: border-box;
|
||||
align-content: center;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.imageDisplay {
|
||||
display: block;
|
||||
}
|
||||
.imageItem img {
|
||||
max-height: 10em;
|
||||
}
|
||||
.imageMeta {
|
||||
display: block;
|
||||
margin: 0;
|
||||
font-size: unset;
|
||||
}
|
||||
</style>
|
||||
<!-- <script src="https://hb.vntsm.com/v4/live/vms/sites/sandboxels.r74n.com/index.js"></script> -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Test</h1>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Images</h1>
|
||||
|
||||
<!--
|
||||
https://sandboxels.wiki.gg/api.php?action=query&format=json&list=random&rnlimit=20&rnnamespace=6
|
||||
|
||||
https://sandboxels.wiki.gg/api.php?action=query&list=search&srsearch=city&utf8=&format=json&srnamespace=6
|
||||
|
||||
https://sandboxels.wiki.gg/wiki/Special:FilePath/Sand%20city--R74n.png
|
||||
-->
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
This is a test page.
|
||||
<div id="images">
|
||||
|
||||
<div id="slot-1"></div>
|
||||
<div id="slot-2"></div>
|
||||
<div id="slot-5"></div>
|
||||
<div id="slot-10"></div>
|
||||
<article class="imageItem">
|
||||
<span class="imageDisplay"><a href="https://sandboxels.wiki.gg/wiki/Special:FilePath/Sand%20city--R74n.png" target="_blank"><img src="https://sandboxels.wiki.gg/wiki/Special:FilePath/Sand%20city--R74n.png"></a></span>
|
||||
<h2 class="imageCaption imageMeta">Sand city</h2>
|
||||
<address class="imageAuthor imageMeta">by R74n</address>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
standalone = false;
|
||||
window.addEventListener('load', function() {
|
||||
if (standalone) return;
|
||||
var adscript = document.createElement('script');
|
||||
adscript.src = "https://hb.vntsm.com/v4/live/vms/sites/sandboxels.r74n.com/index.js";
|
||||
adscript.setAttribute("data-disable-placements","vertical-sticky, video_slider");
|
||||
adscript.addEventListener('load', function() {
|
||||
self.__VM = self.__VM || [];
|
||||
self.__VM.push(function (admanager, scope) {
|
||||
scope.Config.get('billboard').display('slot-1');
|
||||
scope.Config.get('leaderboard').display('slot-2');
|
||||
// scope.Config.get('double_mpu').display('slot-3');
|
||||
// scope.Config.get('mpu').display('slot-4');
|
||||
scope.Config.get('mobile_banner').display('slot-5');
|
||||
// scope.Config.get('mobile_mpu').display('slot-6');
|
||||
// scope.Config.get('skyscraper').display('slot-7');
|
||||
// scope.Config.get('video').display('slot-8');
|
||||
// scope.Config.get('desktop_takeover').display('slot-9');
|
||||
scope.Config.get('mobile_takeover').display('slot-10');
|
||||
// Based on your layout, here are the responsive tags. The placement will change based on screen width.
|
||||
// With the mobile breakpoint set by default at max-width:1024px
|
||||
});
|
||||
});
|
||||
document.head.appendChild(adscript);
|
||||
})
|
||||
loadedImages = {};
|
||||
function loadImages() {
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
|
@ -52,7 +52,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Sandboxels Mobile Use</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<p>Sandboxels can be played on practically any device, as long as they have an updated web browser. Please find your platform below to learn how.</p>
|
||||
|
|
|
|||
513
mod-list.html
513
mod-list.html
|
|
@ -69,7 +69,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Sandboxels Mods</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<p>Sandboxels has a huge selection of mods that add new content to the simulator. They are created by community members and aren't endorsed by the developer of Sandboxels.</p>
|
||||
|
|
@ -92,355 +91,353 @@
|
|||
|
||||
<!----><tr><td class="modCat" colspan="3">Top-rated Mods</td></tr><!---->
|
||||
<!--2024:-->
|
||||
<tr><td>chem.js</td><td>Adds several chemistry and physics-related elements</td><td>lllllllllwith10ls</td></tr>
|
||||
<tr><td>aChefsDream.js</td><td>More foods, animals, tools, and other cooking items. See the <a href="https://www.youtube.com/watch?v=pQFTtlNPODQ&list=PLWHqGb75vC8o7CLv-pMoVb56JL9BY9F0t">YouTube Playlist</a> for updates</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>delete_all_of_element.js</td><td>Adds a tool that deletes every pixel of the element(s) the user clicks on</td><td>Alice</td></tr>
|
||||
<tr><td>chem.js</td><td>Several chemistry and physics-related elements</td><td>lllllllllwith10ls</td></tr>
|
||||
<tr><td>aChefsDream.js</td><td>More foods, animals, tools, and other cooking items <a href="https://www.youtube.com/playlist?list=PLWHqGb75vC8o7CLv-pMoVb56JL9BY9F0t">[YouTube Playlist]</a></td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>delete_all_of_element.js</td><td>Tool that deletes every pixel of the element(s) the user clicks on</td><td>Alice</td></tr>
|
||||
<tr><td>survival.js</td><td>With limited resources, you must craft, sell, and buy to progress</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>alchemy.js</td><td>Start with only 4 elements and unlock more by reacting them together. (Most are not possible)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>nousersthings.js</td><td>Adds many chemical elements, compounds, and more</td><td>nousernamefound</td></tr>
|
||||
<tr><td>alchemy.js</td><td>Start with only 4 elements and unlock more by reacting them together (Most are not possible)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>nousersthings.js</td><td>Many chemical elements, compounds, and more</td><td>nousernamefound</td></tr>
|
||||
<tr><td>spring.js</td><td>Many nature elements, like sakura trees, butterflies, beehives, and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>weapons.js</td><td>Adds a variety of different weapons</td><td>Jayd</td></tr>
|
||||
<tr><td>elementsManager.js</td><td>Create and edit custom elements</td><td>ggod</td></tr>
|
||||
<tr><td>fey_and_more.js</td><td>Adds fairies, magic, and a lot of other things</td><td>Melecie</td></tr>
|
||||
<tr><td>weapons.js</td><td>Variety of different weapons</td><td>Jayd</td></tr>
|
||||
<tr><td>fey_and_more.js</td><td>Fairies, magic, and a lot of other things</td><td>Melecie</td></tr>
|
||||
|
||||
<!--2023:-->
|
||||
<!--
|
||||
<tr><td>alchemy.js</td><td>Start with only 4 elements and unlock more by reacting them together. (Most are not possible)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>chem.js</td><td>Adds several chemistry and physics-related elements</td><td>lllllllllwith10ls</td></tr>
|
||||
<tr><td>delete_all_of_element.js</td><td>Adds a tool that deletes every pixel of the element(s) the user clicks on</td><td>Alice</td></tr>
|
||||
<tr><td>chem.js</td><td>Several chemistry and physics-related elements</td><td>lllllllllwith10ls</td></tr>
|
||||
<tr><td>delete_all_of_element.js</td><td>Tool that deletes every pixel of the element(s) the user clicks on</td><td>Alice</td></tr>
|
||||
<tr><td>edible_everything.js</td><td>Allows every element to be mixed into Batter and Dough</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>spring.js</td><td>Many nature elements, like sakura trees, butterflies, beehives, and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>devtests.js</td><td>Experimental features from the Sandboxels developer; Currently there is Earthquake in Weapons</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>elementsManager.js</td><td>Create and edit custom elements</td><td>ggod</td></tr>
|
||||
<tr><td>the_ground_og.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||
<tr><td>fey_and_more.js</td><td>Adds fairies, magic, and a lot of other things</td><td>Melecie</td></tr>
|
||||
<tr><td>the_ground_og.js</td><td>Several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||
<tr><td>fey_and_more.js</td><td>Fairies, magic, and a lot of other things</td><td>Melecie</td></tr>
|
||||
<tr><td>velocity.js</td><td>Beta for explosion velocity, and later wind, which may come to the base game in the future</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
-->
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Official</td></tr><!---->
|
||||
<tr><td>alchemy.js</td><td>Start with only 4 elements and unlock more by reacting them together. (Most are not possible)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>building.js</td><td>Adds building generators and materials</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>classic_explosives.js</td><td>Adds back 4 explosives removed in v1.9.3</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>alchemy.js</td><td>Start with only 4 elements and unlock more by reacting them together (Most are not possible)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>building.js</td><td>Building generators and materials</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>classic_explosives.js</td><td>Re-adds 4 explosives removed in v1.9.3</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>classic_textures.js</td><td>Use textures from early versions of the game</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>color_everything.js</td><td>Allows every element to have a custom color</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>devtests.js</td><td>Experimental features from the Sandboxels developer</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>edible_everything.js</td><td>Allows every element to be mixed into Batter and Dough</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>fools.js</td><td>Adds back FOOLS Mode</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>fools24.js</td><td>Adds back the 2024 Multiversal Update (v5.9.1)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>fools25.js</td><td>Adds back the 2025 Element Modulator</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>fools.js</td><td>Re-adds FOOLS Mode</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>fools24.js</td><td>Re-adds the 2024 Multiversal Update (v5.9.1)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>fools25.js</td><td>Re-adds the 2025 Element Modulator</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>glow.js</td><td>[CHROME ONLY] Adds a cool lighting effect to many emissive pixels, like Fire</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>gravity_test.js</td><td>Test for altered gravity, makes all pixels move inward</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>rainbow_cursor.js</td><td>Makes your cursor multicolored</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>smooth_water.js</td><td>Changes water mechanics so that it flows in one direction until it bounces off of something</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>souls.js</td><td>Adds Human Souls, Ectoplasm, and Tombstones</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>souls.js</td><td>Human Souls, Ectoplasm, and Tombstones</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>spring.js</td><td>Many nature elements, like sakura trees, butterflies, beehives, and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>survival.js</td><td>With limited resources, you must craft, sell, and buy to progress</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>velocity.js</td><td>Beta for explosion velocity, and later wind, which may come to the base game in the future</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Tools & Settings</td></tr><!---->
|
||||
<!--<tr><td>adjustablepixelsize.js</td><td>Allows you to set the pixelSize with a URL parameter</td><td>Alice</td></tr>-->
|
||||
<tr><td>betaworldgen.js</td><td>adds a more advanced world generation to the game</td><td>Adora</td></tr>
|
||||
<tr><td>betaworldgen.js</td><td>Advanced world generation</td><td>Adora</td></tr>
|
||||
<tr><td>betterModManager.js</td><td>Improvements to the Mod Manager</td><td>ggod</td></tr>
|
||||
<tr><td>betterSettings.js</td><td>Adds additional settings and functionality</td><td>ggod</td></tr>
|
||||
<tr><td>betterStats.js</td><td>Separate “real” and “set” TPS, meaning you can see what the TPS actually is, instead of only seeing what it’s set to</td><td>mollthecoder</td></tr>
|
||||
<tr><td>betterSettings.js</td><td>Additional settings and functionality</td><td>ggod</td></tr>
|
||||
<tr><td>betterStats.js</td><td>Track actual running TPS of the simulation</td><td>mollthecoder</td></tr>
|
||||
<tr><td>buildingreplicator.js</td><td>Scans and replicates builds anywhere on the screen, along with some preset submitted builds</td><td>nousernamefound</td></tr>
|
||||
<tr><td>change.js</td><td>Adds a tool that only replaces existing pixels</td><td>Alice</td></tr>
|
||||
<tr><td>color_tools.js</td><td>Adds tools that manipulate colors</td><td>Alice</td></tr>
|
||||
<tr><td>controllable_pixel_test.js</td><td>Adds a pixel that can be controlled with the keyboard keys. <a href="https://github.com/R74nCom/sandboxels/commit/58dfa9477f2ed7ec9c44b00a35162e7c63bc129c">Read the commit description for more info.</a> [PC ONLY]</td><td>Alice</td></tr>
|
||||
<tr><td>controllable_pixel.js</td><td>Adds a pixel controlled using WASD (keyboard required)</td><td>Jayd</td></tr>
|
||||
<tr><td>cpt_alt.js</td><td>Adds a more destructive variant of the controllable pixel</td><td>Alice</td></tr>
|
||||
<tr><td>customtemptools.js</td><td>Adds temperature tools (set/heat/cool) that you change the value of.</td><td>guzzo86</td></tr>
|
||||
<tr><td>change.js</td><td>Tool that only replaces existing pixels</td><td>Alice</td></tr>
|
||||
<tr><td>color_tools.js</td><td>Tools that manipulate colors</td><td>Alice</td></tr>
|
||||
<tr><td>controllable_pixel.js</td><td>Pixel controlled using WASD (keyboard required)</td><td>Jayd</td></tr>
|
||||
<tr><td>cpt_alt.js</td><td>Destructive variant of the controllable pixel</td><td>Alice</td></tr>
|
||||
<tr><td>customtemptools.js</td><td>Customizable temperature tools</td><td>guzzo86</td></tr>
|
||||
<tr><td>debugRework.js</td><td>Revamps the Debug tool</td><td>Fioushemastor</td></tr>
|
||||
<tr><td>delete_all_of_element.js</td><td>Adds a tool that deletes every pixel of the element(s) the user clicks on</td><td>Alice</td></tr>
|
||||
<tr><td>descriptions.js</td><td>Adds descriptions to the info page and tooltips of elements</td><td>mollthecoder</td></tr>
|
||||
<tr><td>editTools.js</td><td>Selections, Copying, Pasting, Cutting, Shapes, and more!</td><td>ggod</td></tr>
|
||||
<tr><td>elementEraser.js</td><td>Adds a tool that deletes only desired element</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>elementreplacer.js</td><td>Adds a tool that replaces elements with other elements while keeping their color</td><td>Suss</td></tr>
|
||||
<tr><td>delete_all_of_element.js</td><td>Tool that deletes every pixel of the element(s) the user clicks on</td><td>Alice</td></tr>
|
||||
<tr><td>descriptions.js</td><td>Descriptions to the info page and tooltips of elements</td><td>mollthecoder</td></tr>
|
||||
<tr><td>editTools.js</td><td>Selections, Copying, Pasting, Cutting, Shapes, and more</td><td>ggod</td></tr>
|
||||
<tr><td>elementEraser.js</td><td>Tool that deletes only desired element</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>elementreplacer.js</td><td>Tool that replaces elements with other elements while keeping their color</td><td>Suss</td></tr>
|
||||
<tr><td>elementsManager.js</td><td>Create and edit custom elements</td><td>ggod</td></tr>
|
||||
<tr><td>evenmoretemptools.js</td><td>Adds different temperature-modifying tools (±350/tick, NaN, and Infinity)</td><td>Alice</td></tr>
|
||||
<tr><td>extra_element_info.js</td><td>Adds descriptions to various vanilla elements. Used to provide the functionality that desc now does before it was added to vanilla</td><td>Melecie</td></tr>
|
||||
<tr><td>extrasaveslots.js</td><td>Adds extra saves slots !SAVE IMPORTANT SAVES AS FILES!</td><td>Jayd</td></tr>
|
||||
<tr><td>find.js</td><td>Adds a find mode that highlights a chosen element as pulsating red and yellow <a href="https://github.com/R74nCom/sandboxels/commit/de0dc088ab4d928c77587b9d0e3a7d7663e3f94a">(read commit description)</a></td><td>Alice</td></tr>
|
||||
<tr><td>hideandshowtools.js</td><td>Adds two tools, one that hides elements, and one that shows hidden elements</td><td>MicaelNotUsed</td><tr>
|
||||
<tr><td>human_friendly_design.js</td><td>Makes the drag and mix tools not kill humans.</td><td>Nekonico</td></tr>
|
||||
<tr><td>evenmoretemptools.js</td><td>Temperature-modifying tools (±350/tick, NaN, and Infinity)</td><td>Alice</td></tr>
|
||||
<tr><td>extra_element_info.js</td><td>Descriptions to various vanilla elements. Used to provide the functionality that desc now does before it was added to vanilla</td><td>Melecie</td></tr>
|
||||
<tr><td>extrasaveslots.js</td><td>Extra saves slots [KEEP IMPORTANT SAVES AS FILES!!]</td><td>Jayd</td></tr>
|
||||
<tr><td>find.js</td><td>Find mode that highlights a chosen element as pulsating red and yellow <a href="https://github.com/R74nCom/sandboxels/commit/de0dc088ab4d928c77587b9d0e3a7d7663e3f94a">[More Info]</a></td><td>Alice</td></tr>
|
||||
<tr><td>hideandshowtools.js</td><td>Tools to hide elements and show hidden elements</td><td>MicaelNotUsed</td><tr>
|
||||
<tr><td>human_friendly_design.js</td><td>Drag and Mix tools don't kill humans</td><td>Nekonico</td></tr>
|
||||
<tr><td>insane_random_events.js</td><td>Massively buffs random events</td><td>Alice</td></tr>
|
||||
<tr><td>jaydsfunctions.js</td><td>Adds extra tools</td><td>Jayd</td></tr>
|
||||
<tr><td>moretools.js</td><td>Adds more temperature-modifying tools (±10/tick, ±50/tick, and absolute zero tools)</td><td>Sightnado</td></tr>
|
||||
<tr><td>move_tools.js</td><td>Adds tools that move pixels</td><td>Alice</td></tr>
|
||||
<tr><td>no_scroll.js</td><td>Disables scrolling, useful for Apple Magic Mouse users</td><td>Crimera Games</td></tr>
|
||||
<tr><td>noconfirm.js</td><td>Removes all confirmation pop ups</td><td>mollthecoder</td></tr>
|
||||
<tr><td>page_color.js</td><td>Allows changing the background color outside of the canvas with the “pageColor” query parameter</td><td>Alice</td></tr>
|
||||
<tr><td>pixelResizeTool.js</td><td>Adds a button to change pixel scale</td><td>feeshmaster</td></tr>
|
||||
<tr><td>prompt.js</td><td>Adds a primitive command console</td><td>Alice</td></tr>
|
||||
<tr><td>prop.js</td><td>Adds tool to edit the attributes of pixels</td><td>Alice</td></tr>
|
||||
<tr><td>replace_all.js</td><td>Adds a way to replace every pixel of an element with another element<br><a href="https://github.com/R74nCom/sandboxels/commit/0066cea82345a5bc3a990df858239104e8ca9d44">Read the commit description for usage</a></td><td>Alice</td></tr>
|
||||
<tr><td>replace.js</td><td>Adds a tool that replaces every pixel of a specified element with another specified element. (The prompt to specify these is toggled by pressing " or by the button in the element description)</td><td>Alice</td></tr>
|
||||
<tr><td>save_loading.js</td><td>Adds the ability to save and load scenes from files (See the info page of the element)</td><td>Alice</td></tr>
|
||||
<tr><td>selective_paint.js</td><td>Adds a tool to paint only selected elements</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>stripe_paint.js</td><td>Adds a tool to paint with stripes</td><td>Alice</td></tr>
|
||||
<tr><td>texturepack.js</td><td>Adds tools that let you create and share custom texture packs</td><td>nousernamefound</td></tr>
|
||||
<tr><td>text.js</td><td>Adds tools to write text</td><td>RedBirdly</td></tr>
|
||||
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||
<tr><td>jaydsfunctions.js</td><td>Extra tools</td><td>Jayd</td></tr>
|
||||
<tr><td>move_tools.js</td><td>Tools that move pixels</td><td>Alice</td></tr>
|
||||
<tr><td>no_scroll.js</td><td>Disables canvas scrolling, useful for Apple Magic Mouse users</td><td>Crimera Games</td></tr>
|
||||
<tr><td>noconfirm.js</td><td>Removes all confirmation popups</td><td>mollthecoder</td></tr>
|
||||
<tr><td>page_color.js</td><td>Change the page color with the "pageColor" query parameter</td><td>Alice</td></tr>
|
||||
<tr><td>pixelResizeTool.js</td><td>Button to change pixel scale</td><td>feeshmaster</td></tr>
|
||||
<tr><td>prompt.js</td><td>Primitive command console</td><td>Alice</td></tr>
|
||||
<tr><td>prop.js</td><td>Tool to edit the attributes of pixels</td><td>Alice</td></tr>
|
||||
<tr><td>replace_all.js</td><td>Way to replace every pixel of an element with another element <a href="https://github.com/R74nCom/sandboxels/commit/0066cea82345a5bc3a990df858239104e8ca9d44">[More Info]</a></td><td>Alice</td></tr>
|
||||
<tr><td>replace.js</td><td>Tool that replaces every pixel of a specified element with another specified element [" to open]</td><td>Alice</td></tr>
|
||||
<tr><td>save_loading.js</td><td>The ability to save and load scenes from files [See the info page of the element]</td><td>Alice</td></tr>
|
||||
<tr><td>selective_paint.js</td><td>Tool to paint only selected elements</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>stripe_paint.js</td><td>Tool to paint with stripes</td><td>Alice</td></tr>
|
||||
<tr><td>text.js</td><td>Tools to write text</td><td>RedBirdly</td></tr>
|
||||
<tr><td>texturepack.js</td><td>Tools that let you create and share custom texture packs</td><td>nousernamefound</td></tr>
|
||||
<tr><td>the_ground.js</td><td>Several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Science & Chemistry</td></tr><!---->
|
||||
<tr><td>alcohol.js</td><td>Adds methanol, (iso-)propanol, and butanol</td><td>Alice</td></tr>
|
||||
<tr><td>alkahest.js</td><td>Adds the alkahest, a liquid which dissolves anything</td><td>Alice</td></tr>
|
||||
<tr><td>aScientistsWish.js</td><td>Adds several things that related to science and physics </td><td>Carbon Monoxide, salmonfishy</td></tr>
|
||||
<tr><td>bettermetalscrap.js</td><td>Allows metal scrap to be melted back into its original material</td><td>nousernamefound</td></tr>
|
||||
<tr><td>bigger_star_spawners.js</td><td>Adds spawners for larger stars</td><td>Alice</td></tr>
|
||||
<tr><td>biology.js</td><td>Adds various elements and functions that let you build your own organism.</td><td>Nekonico</td></tr>
|
||||
<tr><td>bioooze_and_pyrogens.js</td><td>Adds Bio-Ooze from <a herf="https://frackinuniverse.miraheze.org/wiki/Main_Page">Frackin’ Universe</a> and several heat-producing materials from various games’ mods</td><td>Alice</td></tr>
|
||||
<tr><td>boiling_things.js</td><td>Allows for various elements to be vaporized</td><td>Alice</td></tr>
|
||||
<tr><td>bouncing_balls.js</td><td>Adds new types of balls that bounce accurately and roll.</td><td>Nekonico</td></tr>
|
||||
<tr><td>chalcopyrite.js</td><td>Adds the chalcopyrite ore</td><td>Sophie</td></tr>
|
||||
<tr><td>charsonsmoduno.js</td><td>Adds Arsenic, Beryllium, Silicon, compounds, and some non-realistic stuff, such as Aresium and Nahnium</td><td>CharsonBurensen</td></tr>
|
||||
<tr><td>chem.js</td><td>Adds several chemistry and physics-related elements</td><td>lllllllllwith10ls</td></tr>
|
||||
<tr><td>clf3.js</td><td>Adds Chlorine Trifluoride</td><td>Alice</td></tr>
|
||||
<tr><td>debrisable.js</td><td>Expands the number of breakable elements, changes erosion, and adds way to craft certain elements from breaking other elements. </td><td>Nekonico</td></tr>
|
||||
<tr><td>fire_extinguisher.js</td><td>Adds fire extinguisher blocks and realistic firefighting foam to put out nearly anything</td><td>Dr_Lego</td></tr>
|
||||
<tr><td>fire_mod.js</td><td>Adds various properties to change fire behavior, & a radioactive version of fire</td><td>Alice</td></tr>
|
||||
<tr><td>fire_slime.js</td><td>Adds a pyrogenic version of slime</td><td>Alice</td></tr>
|
||||
<tr><td>Gemstones.js</td><td>Adds more gemstones</td><td>Schweeny</td></tr>
|
||||
<tr><td>glenn_gases.js</td><td>Adds most gases from the <a href="https://www.jamieswhiteshirt.com/minecraft/mods/gases/">Glenn's Gases</a> mod into Sandboxels</td><td>Alice</td></tr>
|
||||
<tr><td>grav_mudstones.js</td><td>Adds various forms of mudstone with different gravities</td><td>Alice</td></tr>
|
||||
<tr><td>halogen.js</td><td>Adds the missing halogens</td><td>nousernamefound</td></tr>
|
||||
<tr><td>alcohol.js</td><td>Methanol, (iso-)propanol, and butanol</td><td>Alice</td></tr>
|
||||
<tr><td>alkahest.js</td><td>The alkahest, a liquid which dissolves anything</td><td>Alice</td></tr>
|
||||
<tr><td>aScientistsWish.js</td><td>Several things related to science and physics</td><td>Carbon Monoxide, salmonfishy</td></tr>
|
||||
<tr><td>bettermetalscrap.js</td><td>Metal scrap can be melted back into its original material</td><td>nousernamefound</td></tr>
|
||||
<tr><td>bigger_star_spawners.js</td><td>Spawners for larger stars</td><td>Alice</td></tr>
|
||||
<tr><td>biology.js</td><td>Various elements and features that let you build your own organism</td><td>Nekonico</td></tr>
|
||||
<tr><td>bioooze_and_pyrogens.js</td><td>Bio-Ooze from <a herf="https://frackinuniverse.miraheze.org/wiki/Main_Page">Frackin' Universe</a> and several heat-producing materials from various games' mods</td><td>Alice</td></tr>
|
||||
<tr><td>boiling_things.js</td><td>Various elements can be vaporized</td><td>Alice</td></tr>
|
||||
<tr><td>bouncing_balls.js</td><td>New types of balls that bounce accurately and roll</td><td>Nekonico</td></tr>
|
||||
<tr><td>chalcopyrite.js</td><td>The chalcopyrite ore</td><td>Sophie</td></tr>
|
||||
<tr><td>charsonsmoduno.js</td><td>Arsenic, Beryllium, Silicon, compounds, and some fake elements</td><td>CharsonBurensen</td></tr>
|
||||
<tr><td>chem.js</td><td>Several chemistry and physics-related elements</td><td>lllllllllwith10ls</td></tr>
|
||||
<tr><td>clf3.js</td><td>Chlorine Trifluoride</td><td>Alice</td></tr>
|
||||
<tr><td>debrisable.js</td><td>Expands the number of breakable elements, changes erosion, and adds way to craft certain elements from breaking other elements</td><td>Nekonico</td></tr>
|
||||
<tr><td>fire_extinguisher.js</td><td>Fire extinguisher blocks and realistic firefighting foam to put out nearly anything</td><td>Dr_Lego</td></tr>
|
||||
<tr><td>fire_mod.js</td><td>Various properties to change fire behavior and radioactive fire</td><td>Alice</td></tr>
|
||||
<tr><td>fire_slime.js</td><td>Pyrogenic version of slime</td><td>Alice</td></tr>
|
||||
<tr><td>Gemstones.js</td><td>Gemstones</td><td>Schweeny</td></tr>
|
||||
<tr><td>glenn_gases.js</td><td>Most gases from the <a href="https://www.jamieswhiteshirt.com/minecraft/mods/gases/">Glenn's Gases</a> mod into Sandboxels</td><td>Alice</td></tr>
|
||||
<tr><td>grav_mudstones.js</td><td>Various forms of mudstone with different gravities</td><td>Alice</td></tr>
|
||||
<tr><td>halogen.js</td><td>The missing halogens</td><td>nousernamefound</td></tr>
|
||||
<tr><td>hidden_ground.js</td><td>Hides most rock variants from the_ground.js excluding the base rocks and walls</td><td>Melecie</td></tr>
|
||||
<tr><td>iocalfaeus_clones.js</td><td>Adds Iorefrius, Iolucius, and Ioradius gas</td><td>Alice</td></tr>
|
||||
<tr><td>jaydstuff.js</td><td>Adds various chemicals and compounds</td><td>Jayd</td></tr>
|
||||
<tr><td>laetium.js</td><td>Adds several fictional elements</td><td>Alice</td></tr>
|
||||
<tr><td>liquid_energy.js</td><td>Adds liquid versions of the elements in the Energy category</td><td>Alice</td></tr>
|
||||
<tr><td>liquid_mixing.js</td><td>Allows liquids to mix colors dynamically</td><td>Nekonico</td></tr>
|
||||
<tr><td>lye.js</td><td>Adds lye</td><td>BatteRaquette58</td></tr>
|
||||
<tr><td>mars.js</td><td>Adds some things from Mars with 2 minerals to smelt.</td><td>charcoal_afterlife</td></tr>
|
||||
<tr><td>metals.js</td><td>Adds several metals</td><td>Alice</td></tr>
|
||||
<tr><td>mixture.js</td><td>Allows many chemicals to be mixed</td><td>lllllllllwith10ls</td></tr>
|
||||
<tr><td>more_gold.js</td><td>Adds Green Gold</td><td>pixelegend4</td></tr>
|
||||
<tr><td>morechemistry.js</td><td>Adds many new chemicals and compounds as well as some new machines</td><td>Adora</td></tr>
|
||||
<tr><td>moreliquids.js</td><td>Adds various liquids</td><td>te-agma-at</td></tr>
|
||||
<tr><td>nellfire.js</td><td>Adds a weird transforming flame and several rock types</td><td>Alice</td></tr>
|
||||
<tr><td>Neutronium Mod.js</td><td>Variety of scientific elements<br>Explosions</td><td>StellarX20</td></tr>
|
||||
<tr><td>neutronium_compressor.js</td><td>Adds a compressor (in reference to Minecraft’s Avaritia mod) that compresses 10,000 pixels of an element into a “singularity”</td><td>Alice</td></tr>
|
||||
<tr><td>noblegas.js</td><td>Adds the missing noble gases</td><td>nousernamefound</td></tr>
|
||||
<tr><td>nousersthings.js</td><td>Adds many chemical elements, compounds, and more</td><td>nousernamefound</td></tr>
|
||||
<tr><td>radioactive.js</td><td>Adds every radioactive elements on the periodic table (WIP)</td><td>kaeud</td></tr>
|
||||
<tr><td>iocalfaeus_clones.js</td><td>Iorefrius, Iolucius, and Ioradius gas</td><td>Alice</td></tr>
|
||||
<tr><td>jaydstuff.js</td><td>Various chemicals and compounds</td><td>Jayd</td></tr>
|
||||
<tr><td>laetium.js</td><td>Several fictional elements</td><td>Alice</td></tr>
|
||||
<tr><td>liquid_energy.js</td><td>Liquid versions of the elements in the Energy category</td><td>Alice</td></tr>
|
||||
<tr><td>liquid_mixing.js</td><td>Liquids can mix colors dynamically</td><td>Nekonico</td></tr>
|
||||
<tr><td>lye.js</td><td>Lye</td><td>BatteRaquette58</td></tr>
|
||||
<tr><td>mars.js</td><td>Martian materials</td><td>charcoal_afterlife</td></tr>
|
||||
<tr><td>metals.js</td><td>Several metals</td><td>Alice</td></tr>
|
||||
<tr><td>mixture.js</td><td>Many chemicals can be mixed</td><td>lllllllllwith10ls</td></tr>
|
||||
<tr><td>more_gold.js</td><td>Green Gold</td><td>pixelegend4</td></tr>
|
||||
<tr><td>morechemistry.js</td><td>New chemicals, compounds, and machines</td><td>Adora</td></tr>
|
||||
<tr><td>moreliquids.js</td><td>Various liquids</td><td>te-agma-at</td></tr>
|
||||
<tr><td>neutronium_compressor.js</td><td>Compressor from Minecraft's Avaritia mod that compresses 10,000 pixels of an element into a singularity</td><td>Alice</td></tr>
|
||||
<tr><td>noblegas.js</td><td>The missing noble gases</td><td>nousernamefound</td></tr>
|
||||
<tr><td>nousersthings.js</td><td>Many chemical elements, compounds, and more</td><td>nousernamefound</td></tr>
|
||||
<tr><td>radioactive.js</td><td>Radioactive elements on the periodic table [WIP]</td><td>kaeud</td></tr>
|
||||
<tr><td>random_rocks.js</td><td>Randomly generates rocks on game load</td><td>Alice</td></tr>
|
||||
<tr><td>roseyiede.js</td><td>Adds several variants of a substance called roseyiede</td><td>Alice</td></tr>
|
||||
<tr><td>some_tf_liquids.js</td><td>Adds various liquids from the Thermal Foundation Minecraft mod</td><td>Alice</td></tr>
|
||||
<tr><td>stickystuff.js</td><td>Allows slime, honey and all things normally sticky to stick to other elements</td><td>Suss</td></tr>
|
||||
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||
<tr><td>roseyiede.js</td><td>Several variants of a substance called roseyiede</td><td>Alice</td></tr>
|
||||
<tr><td>some_tf_liquids.js</td><td>Various liquids from the Thermal Foundation Minecraft mod</td><td>Alice</td></tr>
|
||||
<tr><td>stickystuff.js</td><td>Slime, Honey, and others can stick to other elements</td><td>Suss</td></tr>
|
||||
<tr><td>the_ground.js</td><td>Several rocks, worldgen types, and gemstones</td><td>Alice</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Machines & Technology</td></tr><!---->
|
||||
<tr><td>circuitcore.js</td><td>An extension to logicgates.js that adds advanced circuits. <a href="https://redbirdly.github.io/circuitcore_tutorial.html" target="_blank">Documentation</a>.</td><td>RedBirdly</td></tr>
|
||||
<tr><td>clone_liquid.js</td><td>Adds a liquid form of cloner</td><td>Alice</td></tr>
|
||||
<tr><td>colored_lightbulbs.js</td><td>Adds a light bulb that can be painted.</td><td>guzzo86, ggod</td></tr>
|
||||
<tr><td>combustion.js</td><td>Adds components necessary for combustion engines</td><td>uptzik</td></tr>
|
||||
<tr><td>circuitcore.js</td><td>Extension for logicgates.js that adds advanced circuits <a href="https://redbirdly.github.io/circuitcore_tutorial.html" target="_blank">[More Info]</a></td><td>RedBirdly</td></tr>
|
||||
<tr><td>clone_liquid.js</td><td>Liquid form of cloner</td><td>Alice</td></tr>
|
||||
<tr><td>colored_lightbulbs.js</td><td>Light bulb that can be painted</td><td>guzzo86, ggod</td></tr>
|
||||
<tr><td>combustion.js</td><td>Components necessary for combustion engines</td><td>uptzik</td></tr>
|
||||
<tr><td>conveyance.js</td><td>Conveyors, operated with and without electricity</td><td>Melecie</td></tr>
|
||||
<tr><td>drill.js</td><td>Adds drills made out of several materials</td><td>Suss</td></tr>
|
||||
<tr><td>ExtraMachines.js</td><td>Adds sensors, energy resources, materials, and more</td><td>Mecoolnotcool</td></tr>
|
||||
<tr><td>fine_tuned_cloner.js</td><td>Adds a cloner that can spawn at different rates and prevent unwated cloning</td><td>BatteRaquette58</td></tr>
|
||||
<tr><td>flipflop.js</td><td>Toggleable switches; <a href="https://github.com/R74nCom/sandboxels/pull/134">Explanation</a></td><td>Flix</td></tr>
|
||||
<tr><td>fueled_generators.js</td><td>Fuel powered generators.</td></tr>
|
||||
<tr><td>drill.js</td><td>Drills made out of several materials</td><td>Suss</td></tr>
|
||||
<tr><td>ExtraMachines.js</td><td>Sensors, energy resources, materials, and more</td><td>Mecoolnotcool</td></tr>
|
||||
<tr><td>fine_tuned_cloner.js</td><td>Cloner that can spawn at different rates and prevent unwanted cloning</td><td>BatteRaquette58</td></tr>
|
||||
<tr><td>flipflop.js</td><td>Toggleable switches <a href="https://github.com/R74nCom/sandboxels/pull/134">[More Info]</a></td><td>Flix</td></tr>
|
||||
<tr><td>fueled_generators.js</td><td>Fuel powered generators</td><td>guzzo86</td></tr>
|
||||
<tr><td>gameOfLife.js</td><td>Conway's Game of Life on a screen</td><td>ggod</td></tr>
|
||||
<tr><td>heatshield.js</td><td>adds heatshields, makes plasma cooler</td></td><td>Taterbob</td></tr>
|
||||
<tr><td>human_friendly_design.js</td><td>Makes pipes and portals not kill humans, as well as making drag and mix not kill humans.</td><td>Nekonico</td></tr>
|
||||
<tr><td>logicgates.js</td><td>Adds predictable electricity and logic gates</td><td>nousernamefound</td></tr>
|
||||
<tr><td>note_block.js</td><td>Adds musical Note Blocks</td><td>Alice</td></tr>
|
||||
<tr><td>heatshield.js</td><td>Heatshields, makes Plasma cooler</td></td><td>Taterbob</td></tr>
|
||||
<tr><td>human_friendly_design.js</td><td>Pipes, Portals, Drag, and Mix don't kill humans</td><td>Nekonico</td></tr>
|
||||
<tr><td>logicgates.js</td><td>Predictable electricity and logic gates</td><td>nousernamefound</td></tr>
|
||||
<tr><td>note_block_advanced.js</td><td>Edit of Alice's note_block.js, adds different blocks with different frequencies</td><td>CharsonBurensen</td></tr>
|
||||
<tr><td>note_block.js</td><td>Musical Note Blocks</td><td>Alice</td></tr>
|
||||
<tr><td>nousersthings.js</td><td>Destroyable machines, pipe variants, filters, and more</td><td>nousernamefound</td></tr>
|
||||
<tr><td>portal.js</td><td>Adds portals that can teleport pixels</td><td>Alice</td></tr>
|
||||
<tr><td>pullers.js</td><td>Adds pixels that pull pixels towards them</td><td>voidapex11</td></tr>
|
||||
<tr><td>pushers.js</td><td>Adds pixels that push elements away from them</td><td>Alice</td></tr>
|
||||
<tr><td>sandboxels.js</td><td>Adds a digital screen to play a mini version of Sandboxels</td><td>Nekonico</td></tr>
|
||||
<tr><td>spouts.js</td><td>Adds spouts for all liquids</td><td>kaeud</td></tr>
|
||||
<tr><td>state_voids.js</td><td>Adds several elements that each delete a specific state of matter (and combinations thereof)</td><td>Alice</td></tr>
|
||||
<tr><td>switches.js</td><td>Adds electrical switches that can be toggled</td><td>Alice</td></tr>
|
||||
<tr><td>ticking_temp_stuff.js</td><td>Adds more heaters and coolers</td><td>Alice</td></tr>
|
||||
<tr><td>video.js</td><td>Adds a video player</td><td>ggod</td></tr>
|
||||
<tr><td>waterspout.js</td><td>Adds back the old Water Spout</td><td>mollthecoder</td></tr>
|
||||
<tr><td>WhisperingTheory.js</td><td>Adds many more variants of heater and cooler</td><td>kaeud</td></tr>
|
||||
<tr><td>portal.js</td><td>Portals that can teleport pixels</td><td>Alice</td></tr>
|
||||
<tr><td>pullers.js</td><td>Pixels that pull pixels towards them</td><td>voidapex11</td></tr>
|
||||
<tr><td>pushers.js</td><td>Pixels that push elements away from them</td><td>Alice</td></tr>
|
||||
<tr><td>sandboxels.js</td><td>Digital screen to play a mini version of Sandboxels</td><td>Nekonico</td></tr>
|
||||
<tr><td>spouts.js</td><td>Spouts for all liquids</td><td>kaeud</td></tr>
|
||||
<tr><td>state_voids.js</td><td>Several elements that delete specific states of matter</td><td>Alice</td></tr>
|
||||
<tr><td>switches.js</td><td>Electrical switches that can be toggled</td><td>Alice</td></tr>
|
||||
<tr><td>ticking_temp_stuff.js</td><td>Heater and Cooler variants</td><td>Alice</td></tr>
|
||||
<tr><td>video.js</td><td>Video player</td><td>ggod</td></tr>
|
||||
<tr><td>waterspout.js</td><td>Re-adds the old Water Spout</td><td>mollthecoder</td></tr>
|
||||
<tr><td>WhisperingTheory.js</td><td>Many more variants of heater and cooler</td><td>kaeud</td></tr>
|
||||
<tr><td>wifi_draw.js</td><td>Draws connections between WiFi in wifi.js and logicgates.js</td><td>RedBirdly</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Weapons</td></tr><!---->
|
||||
<tr><td>aircrafts.js</td><td>Adds aircraft and aircraft part pixels</td><td>Jayd</td></tr>
|
||||
<tr><td>c_fighter_jet.js</td><td>Adds a controllable fighter jet, wasd to move, q+wasd to shoot, gvbn for missiles.</td><td>Jayd</td></tr>
|
||||
<tr><td>guided_rocket.js</td><td>Adds a homing misile.</td><td>voidapex11</td></tr>
|
||||
<tr><td>icb.js</td><td>Adds various levels of nested cluster bombs</td><td>Alice</td></tr>
|
||||
<tr><td>life_eater.js</td><td>Adds Warhammer 40,000’s Life-Eater Virus and Virus Bombs</td><td>Alice</td></tr>
|
||||
<tr><td>liquid_void.js</td><td>Adds a liquid variant of Void</td><td>Alice</td></tr>
|
||||
<tr><td>meat_rockets.js</td><td>Adds rockets that create meat when exploding</td><td>Melecie</td></tr>
|
||||
<tr><td>more_breaking.js</td><td>Allows for breaking more elements in explosions</td><td>Alice</td></tr>
|
||||
<tr><td>rays.js</td><td>Adds more Ray types</td><td>Alice</td></tr>
|
||||
<tr><td>rays++.js</td><td>Adds a couple more rays</td><td>uptzik</td></tr>
|
||||
<tr><td>subspace.js</td><td>Adds the Subspace Tripmine from Roblox</td><td>nousernamefound</td></tr>
|
||||
<tr><td>war_crimes.js</td><td>Adds tear gas & more</td><td>voidapex11</td></tr>
|
||||
<tr><td>weapons.js</td><td>Adds a variety of different weapons</td><td>Jayd</td></tr>
|
||||
<tr><td>aircrafts.js</td><td>Aircrafts and aircraft parts</td><td>Jayd</td></tr>
|
||||
<tr><td>c_fighter_jet.js</td><td>Controllable fighter jet [WASD to move, Q+WASD to shoot, GVBN for missiles]</td><td>Jayd</td></tr>
|
||||
<tr><td>guided_rocket.js</td><td>Homing misile</td><td>voidapex11</td></tr>
|
||||
<tr><td>icb.js</td><td>Various levels of nested cluster bombs</td><td>Alice</td></tr>
|
||||
<tr><td>life_eater.js</td><td>Warhammer 40,000's Life-Eater Virus and Virus Bombs</td><td>Alice</td></tr>
|
||||
<tr><td>liquid_void.js</td><td>Liquid variant of Void</td><td>Alice</td></tr>
|
||||
<tr><td>meat_rockets.js</td><td>Rockets that create meat when exploding</td><td>Melecie</td></tr>
|
||||
<tr><td>more_breaking.js</td><td>More elements can be broken</td><td>Alice</td></tr>
|
||||
<tr><td>rays.js</td><td>More Ray types</td><td>Alice</td></tr>
|
||||
<tr><td>rays++.js</td><td>Couple more rays</td><td>uptzik</td></tr>
|
||||
<tr><td>subspace.js</td><td>The Subspace Tripmine from Roblox</td><td>nousernamefound</td></tr>
|
||||
<tr><td>war_crimes.js</td><td>Tear gas and more</td><td>voidapex11</td></tr>
|
||||
<tr><td>weapons.js</td><td>Variety of different weapons</td><td>Jayd</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Food & Cooking</td></tr><!---->
|
||||
<tr><td>aChefsDream_beta.js</td><td>Beta testing for aChefsDream. The code can be found <a href="https://www.github.com/SquareScreamYT/aChefsDream.js">on GitHub</a></td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>aChefsDream_beta.js</td><td>Beta testing for aChefsDream.js</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>aChefsDream.js</td><td>More foods, animals, tools, and other cooking items <a href="https://www.youtube.com/playlist?list=PLWHqGb75vC8o7CLv-pMoVb56JL9BY9F0t">[YouTube Playlist]</a></td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>aChefsDream2.js</td><td>The sequel to aChefsDream.js, with brand new elements and tools</a></td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>aChefsDream.js</td><td>More foods, animals, tools, and other cooking items. See the <a href="https://www.youtube.com/watch?v=pQFTtlNPODQ&list=PLWHqGb75vC8o7CLv-pMoVb56JL9BY9F0t">YouTube Playlist</a> for updates</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>bananas.js</td><td>Adds bananas and banana plants</td><td>Alice</td></tr>
|
||||
<tr><td>CherrySoda.js</td><td>Adds materials to make Cherry soda. Benzaldehyde + seltzer = Cherrysoda.</td><td>guzzo86</td></tr>
|
||||
<tr><td>community_desserts.js</td><td>Adds various desserts from community suggestions</td><td>Tisquares</td></tr>
|
||||
<tr><td>GrapeSoda.js</td><td>Adds materials to make Grape soda. Methylanthranilic acid + seltzer = Cherrysoda.</td><td>guzzo86</td></tr>
|
||||
<tr><td>greenitemsandmore.js</td><td>Adds various green things, including apples and more food</td><td>zonneschijn7</td>
|
||||
<tr><td>ketchup_mod.js</td><td>Adds a bunch of ketchup related stuff, plus a few other condiments</td><td>Nubo318 (main dev), Devi, Alice (contributors)</td></tr>
|
||||
<tr><td>lemonade.js</td><td>Adds lemons and lemonade</td><td>personman / baconthemyth</td></tr>
|
||||
<tr><td>morefoodsmod.js</td><td>Adds more foods</td><td>Clide4</td></tr>
|
||||
<tr><td>bananas.js</td><td>Bananas and banana plants</td><td>Alice</td></tr>
|
||||
<tr><td>CherrySoda.js</td><td>Materials to make cherry soda</td><td>guzzo86</td></tr>
|
||||
<tr><td>community_desserts.js</td><td>Various desserts from community suggestions</td><td>Tisquares</td></tr>
|
||||
<tr><td>GrapeSoda.js</td><td>Materials to make grape soda</td><td>guzzo86</td></tr>
|
||||
<tr><td>greenitemsandmore.js</td><td>Various green things, including apples and more food</td><td>zonneschijn7</td>
|
||||
<tr><td>ketchup_mod.js</td><td>Many ketchup related elements, plus a few other condiments</td><td>Nubo318, Devi, Alice</td></tr>
|
||||
<tr><td>lemonade.js</td><td>Lemons and lemonade</td><td>personman, baconthemyth</td></tr>
|
||||
<tr><td>morefoodsmod.js</td><td>More foods</td><td>Clide4</td></tr>
|
||||
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
|
||||
<tr><td>potato_chips.js</td><td>Potato chips.</td><td>guzzo86</td></tr>
|
||||
<tr><td>sbstuff.js</td><td>Adds many foods</td><td>stefanblox</td></tr>
|
||||
<tr><td>soups.js</td><td>Adds seasoning and soup</td><td>pixelegend4</td></tr>
|
||||
<tr><td>weAllScreamFor.js</td><td>Adds ice cream toppings</td><td>rottenEgghead</td></tr>
|
||||
<tr><td>potato_chips.js</td><td>Potato chips and sunflower oil</td><td>guzzo86</td></tr>
|
||||
<tr><td>sbstuff.js</td><td>Many foods</td><td>stefanblox</td></tr>
|
||||
<tr><td>soups.js</td><td>Seasoning and soup</td><td>pixelegend4</td></tr>
|
||||
<tr><td>weAllScreamFor.js</td><td>Ice cream toppings</td><td>rottenEgghead</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Life & Nature</td></tr><!---->
|
||||
<tr><td>apioforms_pre.js</td><td>An incomplete implementation of elements from the <a href="https://osmarks.net/apioform/">Apioform Game</a></td><td>Alice</td></tr>
|
||||
<tr><td>baby.js</td><td>Adds various babies</td><td>Suss</td></tr>
|
||||
<tr><td>bacteria_mod.js</td><td>Adds content from the <a href="https://www.curseforge.com/minecraft/mc-mods/bacterium">Bacterium Mod</a>: (Bacteria, Replacer B., Jammer Block)</td><td>Alice</td></tr>
|
||||
<tr><td>bananas.js</td><td>Adds bananas and banana plants</td><td>Alice</td></tr>
|
||||
<tr><td>biology.js</td><td>Adds various elements and functions that let you build your own organism.</td><td>Nekonico</td></tr>
|
||||
<tr><td>cat.js</td><td>Adds cats and cat food</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>cells.js</td><td>Adds several experimental edits of the Cell element</td><td>Alice</td></tr>
|
||||
<tr><td>children.js</td><td>Adds pesky little gremlins</td><td>Taterbob</td></tr>
|
||||
<tr><td>colonies.js</td><td>Adds rockets that contain settlers to terraform a planet.</td><td>Nekonico</td></tr>
|
||||
<tr><td>crimson.js</td><td>Adds elements relating to the Crimson from Terraria</td><td>Alice</td></tr>
|
||||
<tr><td>dogs.js</td><td>Adds a simple dog and dog food</td><td>hedera-ivy</td></tr>
|
||||
<tr><td>fairy_chain.js</td><td>Adds way too many fairies to fey_and_more.js</td><td>Alice</td></tr>
|
||||
<tr><td>fantastic_creatures.js</td><td>Adds various animals</td><td>Melecie</td></tr>
|
||||
<tr><td>apioforms_pre.js</td><td>Incomplete implementation of elements from the <a href="https://osmarks.net/apioform/">Apioform Game</a></td><td>Alice</td></tr>
|
||||
<tr><td>baby.js</td><td>Various babies</td><td>Suss</td></tr>
|
||||
<tr><td>bacteria_mod.js</td><td>Content from Minecraft's <a href="https://www.curseforge.com/minecraft/mc-mods/bacterium">Bacterium Mod</a></td><td>Alice</td></tr>
|
||||
<tr><td>bananas.js</td><td>Bananas and banana plants</td><td>Alice</td></tr>
|
||||
<tr><td>biology.js</td><td>Various elements and features that let you build your own organism</td><td>Nekonico</td></tr>
|
||||
<tr><td>cat.js</td><td>Cats and cat food</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>cells.js</td><td>Several experimental edits of the Cell element</td><td>Alice</td></tr>
|
||||
<tr><td>children.js</td><td>Pesky little gremlins</td><td>Taterbob</td></tr>
|
||||
<tr><td>colonies.js</td><td>Rockets that contain settlers to terraform a planet</td><td>Nekonico</td></tr>
|
||||
<tr><td>crimson.js</td><td>Elements relating to the Crimson from Terraria</td><td>Alice</td></tr>
|
||||
<tr><td>dogs.js</td><td>Simple dog and dog food</td><td>hedera-ivy</td></tr>
|
||||
<tr><td>fairy_chain.js</td><td>Way too many fairies to fey_and_more.js</td><td>Alice</td></tr>
|
||||
<tr><td>fantastic_creatures.js</td><td>Various animals</td><td>Melecie</td></tr>
|
||||
<tr><td>fantasy_elements.js</td><td>Fantasy creatures and substances</td><td>pixelegend4</td></tr>
|
||||
<tr><td>fey_and_more.js</td><td>Adds fairies, magic, and a lot of other things</td><td>Melecie</td></tr>
|
||||
<tr><td>fishin.js</td><td>Adds a fishing rod and more fish with scientific names, press B to open bank account, A, S or D to cast your line and Q to reel it back in.</td><td>Nekonico</td></tr>
|
||||
<tr><td>flowers_and_forests.js</td><td>adds trees and flowers and things to do with nature</td><td>pixelegend4 and SquareScreamYT</td></tr>
|
||||
<tr><td>fwibblen.js</td><td>Adds a flying creature that turns nickel into itself, and a second creature that does the same to the first one</td><td>Alice</td></tr>
|
||||
<tr><td>genetics.js</td><td>Adds an organism that evolves and changes as it creates more of itself by eating, and adapts to environment.</td><td>Nekonico</td></tr>
|
||||
<tr><td>fey_and_more.js</td><td>Fairies, magic, and a lot of other things</td><td>Melecie</td></tr>
|
||||
<tr><td>fishin.js</td><td>Fishing rod and more fish with scientific names <a href="https://r74n.com/textviewer/?fishin.js%0A%0APress%20B%20to%20open%20bank%20account%2C%20A%2C%20S%20or%20D%20to%20cast%20your%20line%20and%20Q%20to%20reel%20it%20back%20in.">[More Info]</a></td><td>Nekonico</td></tr>
|
||||
<tr><td>flowers_and_forests.js</td><td>Trees and flowers</td><td>pixelegend4, SquareScreamYT</td></tr>
|
||||
<tr><td>fwibblen.js</td><td>Flying creature that turns nickel into itself, and another that does the same to the first one</td><td>Alice</td></tr>
|
||||
<tr><td>genetics.js</td><td>Organism that evolves and changes as it creates more of itself by eating</td><td>Nekonico</td></tr>
|
||||
<tr><td>human_edit.js</td><td>Improvements to humans</td><td>Alice</td></tr>
|
||||
<tr><td>Humanitize.js</td><td>Makes humans cultured and able to craft, mine, build houses, trade, and much more.</td><td>Nekonico</td></tr>
|
||||
<tr><td>kopalstuff.js</td><td>Adds creatures, spirits, DNA, foods, and more</td><td>DaviStudios</td></tr>
|
||||
<tr><td>lizard_mod.js</td><td>Adds lizards to sandboxels.</td><td>RedBirdly</td></tr>
|
||||
<tr><td>lost_souls.js</td><td>Adds souls and related elements, the mod can also be found <a href="https://github.com/HACKERPRO908/lost_souls.js">on Github</a></td><td>pixelegend4, SquareScreamYT, salmonfishy</td></tr>
|
||||
<tr><td>miscible_psoup_and_birthpool.js</td><td>Makes Primordial Soup and Birthpool mix instead of the birthpool settling to the bottom. Will be deprecated upon the release of Magical Menagerie</td><td>Alice</td></tr>
|
||||
<tr><td>mobs.js</td><td>Adds Creepers, Zombies, and Skeletons</td><td>Alice</td></tr>
|
||||
<tr><td>moretrees.js</td><td>Adds 25 more tree & wood types.</td><td>guzzo86</td></tr>
|
||||
<tr><td>nocancer.js</td><td>Removes cancer from the game one tick after it is created</td><td>mollthecoder</td></tr>
|
||||
<tr><td>nocancer2.js</td><td>Removes cancer from the game altogether. May be incompatible with other mods that spawn cancer</td><td>mollthecoder</td></tr>
|
||||
<tr><td>Humanitize.js</td><td>Humans are cultured and able to craft, mine, build houses, trade, and more</td><td>Nekonico</td></tr>
|
||||
<tr><td>kopalstuff.js</td><td>Creatures, spirits, DNA, foods, and more</td><td>DaviStudios</td></tr>
|
||||
<tr><td>lizard_mod.js</td><td>Lizards</td><td>RedBirdly</td></tr>
|
||||
<tr><td>lost_souls.js</td><td>Souls and related elements</td><td>pixelegend4, SquareScreamYT, salmonfishy</td></tr>
|
||||
<tr><td>miscible_psoup_and_birthpool.js</td><td>Primordial Soup and Birthpool can mix (fey_and_more.js)</td><td>Alice</td></tr>
|
||||
<tr><td>mobs.js</td><td>Creepers, Zombies, and Skeletons</td><td>Alice</td></tr>
|
||||
<tr><td>moretrees.js</td><td>25 more tree and wood types</td><td>guzzo86</td></tr>
|
||||
<tr><td>nocancer.js</td><td>Removes cancer one tick after it is created</td><td>mollthecoder</td></tr>
|
||||
<tr><td>nocancer2.js</td><td>Removes cancer from the game altogether; May be incompatible with other mods that spawn cancer</td><td>mollthecoder</td></tr>
|
||||
<tr><td>nograssgrow.js</td><td>Prevents Grass from growing</td><td>mollthecoder</td></tr>
|
||||
<tr><td>ocean.js</td><td>Adds many Marine life</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>ores.js</td><td>Adds ore generation along with tools to mine them</td><td>nousernamefound</td></tr>
|
||||
<tr><td>ocean.js</td><td>Marine life</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>ores.js</td><td>Ore generation along with tools to mine them</td><td>nousernamefound</td></tr>
|
||||
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
|
||||
<tr><td>plants.js</td><td>Adds a wide variety of new plants and fruits</td><td>Adora</td></tr>
|
||||
<tr><td>primordial_birthpool.js</td><td>A cross between Primordial Soup and Birthpool. Requires F&M</td><td>Alice</td></tr>
|
||||
<tr><td>plants.js</td><td>Wide variety of new plants and fruits</td><td>Adora</td></tr>
|
||||
<tr><td>primordial_birthpool.js</td><td>Cross between Primordial Soup and Birthpool. Requires fey_and_more.js</td><td>Alice</td></tr>
|
||||
<tr><td>spring.js</td><td>Many nature elements, like sakura trees, butterflies, beehives, and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>the_ground_og.js</td><td>Simplified and more stable version of the_ground.js</td><td>Alice</td></tr>
|
||||
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||
<tr><td>the_ground.js</td><td>Several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||
<tr><td>toothpaste.js</td><td>Teeth and paste</td><td>Alice</td></tr>
|
||||
<tr><td>volcanic_expansion.js</td><td>Adds Obsidian, Pumice, and Andesite rocks</td><td>Jayd</td></tr>
|
||||
<tr><td>volcanic_expansion.js</td><td>Obsidian, Pumice, and Andesite rocks</td><td>Jayd</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Fun & Games</td></tr><!---->
|
||||
<tr><td>10kelements.js</td><td>Inserts a customizable amount of randomly generated elements into the game</td><td>nousernamefound</td></tr>
|
||||
<tr><td>all_around_fillers.js</td><td>Adds directional Filler variants</td><td>idk73248</td></tr>
|
||||
<tr><td>10kelements.js</td><td>Customizable amount of randomly generated elements</td><td>nousernamefound</td></tr>
|
||||
<tr><td>all_around_fillers.js</td><td>Directional Filler variants</td><td>idk73248</td></tr>
|
||||
<tr><td>allliquids.js</td><td>Made all elements liquids</td><td>Adora</td></tr>
|
||||
<tr><td>amogus.js</td><td>Adds a small amogus structure</td><td>Alice</td></tr>
|
||||
<tr><td>bfdi.js</td><td>Adds several references to bfdi</td><td>Taterbob</td></tr>
|
||||
<tr><td>citybuilding.js</td><td>Adds seeds that create miniature buildings and other city-related items</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>amogus.js</td><td>Small Among Us structure</td><td>Alice</td></tr>
|
||||
<tr><td>bfdi.js</td><td>Several references to Battle for Dream Island</td><td>Taterbob</td></tr>
|
||||
<tr><td>citybuilding.js</td><td>Seeds that create miniature buildings and other city-related items</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>collab_mod.js</td><td>Created by multiple people, adds random things</td><td>mrapple, ilikepizza, stefanblox</td></tr>
|
||||
<tr><td>doom.js</td><td>As seen on TikTok - Select the Doom element to start, WASD</td><td>ggod</td></tr>
|
||||
<tr><td>elem3.js</td><td>Adds all elements and combinations from Elemental 3 [Very Large]</td><td>Sophie</td></tr>
|
||||
<tr><td>fishin.js</td><td>Adds a fishing rod and more fish with scientific names, press B to open bank account, A, S or D to cast your line and Q to reel it back in.</td><td>Nekonico</td></tr>
|
||||
<tr><td>fools+.js</td><td>improves and makes fools.js EXTREMELY annoying.</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>funny elements 2022-11-15.js</td><td>Adds a few curated randomly-generated elements</td><td>Alice</td></tr>
|
||||
<tr><td>funny_solid.js</td><td>Adds feces</td><td>Alice</td></tr>
|
||||
<tr><td>funnynames.js</td><td>Adds various ways to mess with the names of elements</td><td>nousernamefound</td></tr>
|
||||
<tr><td>haseulite.js</td><td>Adds Loona-related materials with various properties</td><td>Alice</td></tr>
|
||||
<tr><td>lactose_intolerance_and_celiac.js</td><td>Makes humans explode on contact with milk, wheat, bread, or toast</td><td>Nubo318</td></tr>
|
||||
<tr><td>lattice_filler.js</td><td>Adds a combination of lattice and filler and a destructive variant</td><td>Suss</td></tr>
|
||||
<tr><td>liquid_mixing.js</td><td>Allows liquids to mix colors dynamically</td><td>Nekonico</td></tr>
|
||||
<tr><td>lone_urea.js</td><td>Adds urea without the rest of the piss mod</td><td>Alice</td></tr>
|
||||
<tr><td>maze.js</td><td>Adds a solvable maze generator</td><td>ggod</td></tr>
|
||||
<tr><td>memelists.js</td><td>Makes it so you must select elements through a list at the bottom of the page.<br>We like lists</td><td>mollthecoder</td></tr>
|
||||
<tr><td>minecraft.js</td><td>Adds several things from Minecraft</td><td>StellarX20, nousernamefound</td></tr>
|
||||
<tr><td>minesweeper.js</td><td>A subpar implementation of Minesweeper</td><td>Alice</td></tr>
|
||||
<tr><td>doom.js</td><td>As seen on TikTok - Select the Doom element to start [WASD to move]</td><td>ggod</td></tr>
|
||||
<tr><td>elem3.js</td><td>All elements and combinations from Elemental 3 [Very Large]</td><td>Sophie</td></tr>
|
||||
<tr><td>fishin.js</td><td>Fishing rod and more fish with scientific names <a href="https://r74n.com/textviewer/?fishin.js%0A%0APress%20B%20to%20open%20bank%20account%2C%20A%2C%20S%20or%20D%20to%20cast%20your%20line%20and%20Q%20to%20reel%20it%20back%20in.">[More Info]</a></td><td>Nekonico</td></tr>
|
||||
<tr><td>fools+.js</td><td>Improves and makes fools.js extremely annoying</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>funny elements 2022-11-15.js</td><td>Few curated randomly-generated elements</td><td>Alice</td></tr>
|
||||
<tr><td>funny_solid.js</td><td>Feces</td><td>Alice</td></tr>
|
||||
<tr><td>funnynames.js</td><td>Various ways to mess with the names of elements</td><td>nousernamefound</td></tr>
|
||||
<tr><td>haseulite.js</td><td>Loona-related materials with various properties</td><td>Alice</td></tr>
|
||||
<tr><td>lactose_intolerance_and_celiac.js</td><td>Humans explode on contact with milk, wheat, bread, or toast</td><td>Nubo318</td></tr>
|
||||
<tr><td>lattice_filler.js</td><td>Combination of lattice and filler and a destructive variant</td><td>Suss</td></tr>
|
||||
<tr><td>liquid_mixing.js</td><td>Liquids can mix colors dynamically</td><td>Nekonico</td></tr>
|
||||
<tr><td>lone_urea.js</td><td>Urea</td><td>Alice</td></tr>
|
||||
<tr><td>maze.js</td><td>Solvable maze generator</td><td>ggod</td></tr>
|
||||
<tr><td>memelists.js</td><td>You must select elements through a list at the bottom of the page</td><td>mollthecoder</td></tr>
|
||||
<tr><td>minecraft.js</td><td>Several things from Minecraft</td><td>nousernamefound</td></tr>
|
||||
<tr><td>minesweeper.js</td><td>Implementation of Minesweeper</td><td>Alice</td></tr>
|
||||
<tr><td>musicalfruit.js</td><td>Humans get gas from eating Beans</td><td>mollthecoder</td></tr>
|
||||
<tr><td>nekonicos_stuff.js</td><td>Random stuff like graphite, oobleck, and red ice, as well as many machines.</td><td>Nekonico</td></tr>
|
||||
<tr><td>prideflags.js</td><td>Adds some pride flags to the game</td><td>Adora</td></tr>
|
||||
<tr><td>nekonicos_stuff.js</td><td>Random stuff like graphite, oobleck, and red ice, as well as many machines</td><td>Nekonico</td></tr>
|
||||
<tr><td>prideflags.js</td><td>Some pride flags to the game</td><td>Adora</td></tr>
|
||||
<tr><td>random_elems.js</td><td>Curated randomly generated elements</td><td>Alice</td></tr>
|
||||
<tr><td>random_liquids.js</td><td>Randomly generates liquids on game load</td><td>Alice</td></tr>
|
||||
<tr><td>sbmixup.js</td><td>Adds silly elements from a <a href="https://R74n.com/mix/" target="_blank">Mix-Up!</a> game</td><td>stefanblox</td>
|
||||
<tr><td>sports_beta.js</td><td>Adds several sports items</td><td>BluBun5193</td></tr>
|
||||
<tr><td>star_wars.js</td><td>Adds various items from Star Wars by Disney</td><td>SeaPickle754</td>
|
||||
<tr><td>sus.js</td><td>Adds an Among Us crewmate</td><td>Nv7</td></tr>
|
||||
<tr><td>triggerable_random_powders.js</td><td>Adds powders with different abilities, such as heating and cooling</td><td>Alice</td></tr>
|
||||
<tr><td>troll.js</td><td>Adds various dumb elements that iterate randomly on the entire screen</td><td>Alice</td></tr>
|
||||
<tr><td>WhisperingTheory.js</td><td>Adds powder and gas variant of heater and cooler</td><td>kaeud</td></tr>
|
||||
<tr><td>sbmixup.js</td><td>Silly elements from a <a href="https://R74n.com/mix/" target="_blank">Mix-Up!</a> game</td><td>stefanblox</td>
|
||||
<tr><td>sports_beta.js</td><td>Several sports items</td><td>BluBun5193</td></tr>
|
||||
<tr><td>star_wars.js</td><td>Various items from Star Wars by Disney</td><td>SeaPickle754</td>
|
||||
<tr><td>sus.js</td><td>Among Us crewmate</td><td>Nv7</td></tr>
|
||||
<tr><td>triggerable_random_powders.js</td><td>Powders with different abilities, such as heating and cooling</td><td>Alice</td></tr>
|
||||
<tr><td>troll.js</td><td>Various dumb elements that iterate randomly on the entire screen</td><td>Alice</td></tr>
|
||||
<tr><td>WhisperingTheory.js</td><td>Powder and gas variant of heater and cooler</td><td>kaeud</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Visual Effects</td></tr><!---->
|
||||
<tr><td>acid_and_shapes.js</td><td>Weird visual effects. Enable in Settings</td><td>Alice</td></tr>
|
||||
<tr><td>clouds.js</td><td>Adds moving clouds, recommended to include sky.js too</td><td>RedBirdly</td></tr>
|
||||
<tr><td>acid_and_shapes.js</td><td>Weird visual effects enabled in settings</td><td>Alice</td></tr>
|
||||
<tr><td>clouds.js</td><td>Moving clouds, sky.js recommended</td><td>RedBirdly</td></tr>
|
||||
<tr><td>customBackground.js</td><td>Set your background to an image link</td><td>Jayd</td></tr>
|
||||
<tr><td>fast_lightmap.js</td><td>Makes light sources glow, but the fast version</td><td>RedBirdly</td></tr>
|
||||
<tr><td>fractals.js</td><td>Adds an element and tools to render fractals in game</td><td>nousernamefound</td></tr>
|
||||
<tr><td>hexagon_test.js</td><td>Makes pixels look like hexagons</td><td>RedBirdly</td></tr>
|
||||
<tr><td>fast_lightmap.js</td><td>Light sources glow, but faster</td><td>RedBirdly</td></tr>
|
||||
<tr><td>fractals.js</td><td>Element and tools to render fractals in game</td><td>nousernamefound</td></tr>
|
||||
<tr><td>heatglow.js</td><td>Red glowing effect for hot metals</td><td>nousernamefound</td></tr>
|
||||
<tr><td>invisible_dye.js</td><td>Adds elements like Dye and Spray Paint that take the color of the background</td><td>Alice</td></tr>
|
||||
<tr><td>invisible_wall.js</td><td>Adds an element like Wall that takes the color of the background</td><td>Alice</td></tr>
|
||||
<tr><td>lightmap.js</td><td>Makes light sources glow</td><td>RedBirdly</td></tr>
|
||||
<tr><td>liquid_mixing.js</td><td>Allows liquids to mix colors dynamically</td><td>Nekonico</td></tr>
|
||||
<tr><td>hexagon_test.js</td><td>Pixels look like hexagons</td><td>RedBirdly</td></tr>
|
||||
<tr><td>invisible_dye.js</td><td>Elements like Dye and Spray Paint that take the color of the background</td><td>Alice</td></tr>
|
||||
<tr><td>invisible_wall.js</td><td>Element like Wall that takes the color of the background</td><td>Alice</td></tr>
|
||||
<tr><td>lightmap.js</td><td>Light sources glow</td><td>RedBirdly</td></tr>
|
||||
<tr><td>liquid_mixing.js</td><td>Liquids can mix colors dynamically</td><td>Nekonico</td></tr>
|
||||
<tr><td>moreViews.js</td><td>Many new rendering modes</td><td>ggod</td></tr>
|
||||
<tr><td>nicer_flame.js</td><td>Makes fire visually pleasing</td><td>RedBirdly</td></tr>
|
||||
<tr><td>occlusion.js</td><td>Adds realistic shadows (similar to Terraria's lighting)</td><td>RedBirdly</td></tr>
|
||||
<tr><td>onecolor.js</td><td>Makes all placed pixels single-colored</td><td>nousernamefound</td></tr>
|
||||
<tr><td>paint_event.js</td><td>Adds a random event that randomly paints a circle</td><td>Alice</td></tr>
|
||||
<tr><td>rainbow_tests.js</td><td>Adds variants of the rainbow element with different maths</td><td>Alice</td></tr>
|
||||
<tr><td>real_light.js</td><td>Changes view code to make everything dark if not hit with a photon or light element, as well as making hot things and glowing things still be visible.</td><td>Nekonico</td></tr>
|
||||
<tr><td>shader_by_jayd.js</td><td>Adds a glow around light elements</td><td>Jayd</td></tr>
|
||||
<tr><td>Shroomboxels.js</td><td>A variant of acid_and_shapes.js that uses a different trigonometric function</td><td>Alice</td></tr>
|
||||
<tr><td>singleColor.js</td><td>Makes all elements pick one color each time they're drawn</td><td>stefanblox</td></tr>
|
||||
<tr><td>sky.js</td><td>Adds a day-night cycle</td><td>RedBirdly</td></tr>
|
||||
<tr><td>solidcolor.js</td><td>Makes all placed pixels have a solid color (clone of onecolor.js)</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>texture_pack_by_jayd.js</td><td>Adds a cool background</td><td>Jayd</td></tr>
|
||||
<tr><td>UwUify.js</td><td>Adds an "UwU" background</td><td>Jayd</td></tr>
|
||||
|
||||
<tr><td>nicer_flame.js</td><td>Fire is visually pleasing</td><td>RedBirdly</td></tr>
|
||||
<tr><td>occlusion.js</td><td>Realistic shadows, similar to Terraria's lighting</td><td>RedBirdly</td></tr>
|
||||
<tr><td>onecolor.js</td><td>Placed pixels are single-colored</td><td>nousernamefound</td></tr>
|
||||
<tr><td>paint_event.js</td><td>Random event that randomly paints a circle</td><td>Alice</td></tr>
|
||||
<tr><td>rainbow_tests.js</td><td>Variants of the rainbow element with different maths</td><td>Alice</td></tr>
|
||||
<tr><td>real_light.js</td><td>Everything is dark unless hit with a photon (Light) pixel, hot, or glowing</td><td>Nekonico</td></tr>
|
||||
<tr><td>shader_by_jayd.js</td><td>Glow around light elements</td><td>Jayd</td></tr>
|
||||
<tr><td>Shroomboxels.js</td><td>Variant of acid_and_shapes.js that uses a different trigonometric function</td><td>Alice</td></tr>
|
||||
<tr><td>singleColor.js</td><td>Elements pick one color each time they're drawn</td><td>stefanblox</td></tr>
|
||||
<tr><td>sky.js</td><td>Day-night cycle</td><td>RedBirdly</td></tr>
|
||||
<tr><td>solidcolor.js</td><td>Placed pixels have a solid color</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>texture_pack_by_jayd.js</td><td>Cool background</td><td>Jayd</td></tr>
|
||||
<tr><td>UwUify.js</td><td>"UwU" background</td><td>Jayd</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Compilations</td></tr><!---->
|
||||
<tr><td>food_mods.js</td><td>A mod combining most food mods</td><td>stefanblox, moss, Tisquares, SquareScreamYT, Adora, pixelegend4, Alice, Nubo318, Clide4, rottenEgghead</td></tr>
|
||||
<tr><td>food_mods.js</td><td>Combination of most food mods</td><td>stefanblox, moss, Tisquares, SquareScreamYT, Adora, pixelegend4, Alice, Nubo318, Clide4, rottenEgghead</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Technical Libraries & Tests</td></tr><!---->
|
||||
<tr><td>1.10example.js</td><td>Examples for modern rendering modding and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>a_bundle_of_tests.js</td><td>Several test functions</td><td>Alice</td></tr>
|
||||
<tr><td>all_stain.js</td><td>Makes every element stain solids</td><td>stefanblox</td></tr>
|
||||
<tr><td>all_stain.js</td><td>Every element stains solids</td><td>stefanblox</td></tr>
|
||||
<tr><td>betterMenuScreens.js</td><td>Library for mods to create their own menus</td><td>ggod</td></tr>
|
||||
<tr><td>changePixelDebug.js</td><td>Makes the changePixel() function abort and log to console when it tries to change to a non-existent element</td><td>Alice</td></tr>
|
||||
<tr><td>changeTempReactionParameter.js</td><td>Adds the changeTemp property to modded reactions</td><td>Alice</td></tr>
|
||||
<tr><td>code_library.js</td><td>Adds functions and variables common to some other mods</td><td>Alice</td></tr>
|
||||
<tr><td>customexplosion.js</td><td>Added a custom explosion element and interface for it. check out its <a href="https://sandboxels-mods.the-enchanteden.repl.co/Mods/customexplosion.js">source code</a> for how modders can use it.</td><td>Alex</td></tr>
|
||||
<tr><td>changePixelDebug.js</td><td>The changePixel() function aborts and logs to console when it tries to change to a non-existent element</td><td>Alice</td></tr>
|
||||
<tr><td>changeTempReactionParameter.js</td><td>The changeTemp property to modded reactions</td><td>Alice</td></tr>
|
||||
<tr><td>code_library.js</td><td>Functions and variables common to some other mods</td><td>Alice</td></tr>
|
||||
<tr><td>controllable_pixel_test.js</td><td>Pixel that can be controlled with the keyboard keys <a href="https://github.com/R74nCom/sandboxels/commit/58dfa9477f2ed7ec9c44b00a35162e7c63bc129c">[More Info]</a> [PC ONLY]</td><td>Alice</td></tr>
|
||||
<tr><td>customexplosion.js</td><td>Added a custom explosion element and interface for it. check out its <a href="https://sandboxels-mods.the-enchanteden.repl.co/Mods/customexplosion.js">source code</a> for how modders can use it</td><td>Alex</td></tr>
|
||||
<tr><td>date_test.js</td><td>K-pop idol birthday testing stuff</td><td>Alice</td></tr>
|
||||
<tr><td>drawPixels_change_test.js</td><td>A test of altering drawPixels(). Gives burning pixels a red overlay similar to the yellow overlay for charged pixels</td><td>Alice</td></tr>
|
||||
<tr><td>example_mod.js</td><td>An example mod for new modders</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>drawPixels_change_test.js</td><td>Test of altering drawPixels(). Gives burning pixels a red overlay similar to the yellow overlay for charged pixels</td><td>Alice</td></tr>
|
||||
<tr><td>example_mod.js</td><td>Example mod for new modders</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>explodeAtPlus.js</td><td>Extension of the explodeAt function with more options</td><td>Alice</td></tr>
|
||||
<tr><td>fill_script.js</td><td>Script that fills an area</td><td>TealEgg#7646</td></tr>
|
||||
<tr><td>generative_mods.js</td><td>Modpack with optional mass element generation</td><td>Alice</td></tr>
|
||||
<tr><td>generator_prompt.js</td><td>Adds a prompt to use generative_mods.js’s element generators after the game finishes loading</td><td>Alice</td></tr>
|
||||
<tr><td>generator_prompt.js</td><td>Prompt to use generative_mods.js's element generators after the game finishes loading</td><td>Alice</td></tr>
|
||||
<tr><td>gradient_background_support.js</td><td>Enables linear gradients for backgrounds as arrays in settings.bg</td><td>Alice</td></tr>
|
||||
<tr><td>libpacman-v1.js</td><td>Library for making mods</td><td>mollthecoder</td></tr>
|
||||
<tr><td>libpixeltracking.js</td><td>Library for tracking pixels</td><td>mollthecoder</td></tr>
|
||||
<tr><td>maxColorOffset.js</td><td>Adds a property to specify how much a pixel’s color can be randomly offset from the element color</td><td>Alice</td></tr>
|
||||
<tr><td>modlangs.js</td><td>Adds a customisable property in an element to allow for translations in mods. See the file for instructions on how to implement.</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>nested_for_reaction_example.js</td><td>An example of using a nested for loop to add reactions. It makes various things kill plants</td><td>Alice</td></tr>
|
||||
<tr><td>nv7.js</td><td>Adds a giant Nv7 image [Large]</td><td>Nv7</td></tr>
|
||||
<tr><td>maxColorOffset.js</td><td>Property to specify how much a pixel's color can be randomly offset from the element color</td><td>Alice</td></tr>
|
||||
<tr><td>modlangs.js</td><td>Customisable property in an element to allow for translations in mods. See the file for instructions on how to implement</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>nested_for_reaction_example.js</td><td>Example of using a nested for loop to add reactions. It makes various things kill plants</td><td>Alice</td></tr>
|
||||
<tr><td>nv7.js</td><td>Giant Nv7 image [Large]</td><td>Nv7</td></tr>
|
||||
<tr><td>place_all_elements.js</td><td>Experimental function that places every pixel</td><td>Alice</td></tr>
|
||||
<tr><td>randomness_but_tick.js</td><td>Random experimental elements using the tick function feature</td><td>Alice</td></tr>
|
||||
<tr><td>randomness_but_tool.js</td><td>Random experimental elements using the tool function feature</td><td>Alice</td></tr>
|
||||
<tr><td>randomness.js</td><td>Random experimental elements</td><td>Alice</td></tr>
|
||||
<tr><td>scenexe.js</td><td>Work-in-progress mod, allows you to move through and damage a simulated field of polygons</td><td>nousernamefound</td></tr>
|
||||
<tr><td>scenexe.js</td><td>Move through and damage a simulated field of polygons [WIP]</td><td>nousernamefound</td></tr>
|
||||
<tr><td>structure_test_2.js</td><td>Another test for implementing structures into Sandboxels (requires the previous test)</td><td>Alice</td></tr>
|
||||
<tr><td>structure_test.js</td><td>A test for implementing structures into Sandboxels</td><td>Alice</td></tr>
|
||||
<tr><td>test.js</td><td>A test mod that adds mayo :)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>structure_test.js</td><td>Test for implementing structures into Sandboxels</td><td>Alice</td></tr>
|
||||
<tr><td>test.js</td><td>Test that adds mayo :)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>tool_pixel_behavior.js</td><td>Gives unique behaviors to tools if placed with cheats</td><td>Alice</td></tr>
|
||||
<tr><td>worldgen_test.js</td><td>Adds an element that generates a save with a grass layer, dirt layer, rock layer, and a pond</td><td>Alice</td></tr>
|
||||
<tr><td>worldgen_test.js</td><td>Element that generates a save with a grass layer, dirt layer, rock layer, and a pond</td><td>Alice</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Broken or Deprecated</td></tr><!---->
|
||||
<tr class="deprecated"><td>a_mod_by_alice.js</td><td>A mod combining most of Alice’s mods, and some other things</td><td>Alice</td></tr>
|
||||
<tr class="deprecated"><td>advanced_colonies.js</td><td>Adds davlers, creatures with complex colonies</td><td>DaviStudios</td></tr>
|
||||
<tr class="deprecated"><td>humans.js</td><td>Adds humans. Now part of the base game</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr class="deprecated"><td>a_mod_by_alice.js</td><td>Combination of most of Alice's mods, and some other things</td><td>Alice</td></tr>
|
||||
<tr class="deprecated"><td>adjustablepixelsize.js</td><td>Set the pixelSize with a URL parameter</td><td>Alice</td></tr>
|
||||
<tr class="deprecated"><td>advanced_colonies.js</td><td>Davlers, creatures with complex colonies</td><td>DaviStudios</td></tr>
|
||||
<tr class="deprecated"><td>humans.js</td><td>Humans. Now part of the base game</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr class="deprecated"><td>invertscroll.js</td><td>Inverts the scroll wheel for adjusting brush size (now a setting)</td><td>SquareScreamYT</td></tr>
|
||||
<tr class="deprecated"><td>mobile_shift.js</td><td>Adds a button for shift on mobile (Now in the base game)</td><td>SquareScreamYT</td></tr>
|
||||
<tr class="deprecated"><td>mobile_shift.js</td><td>Button for shift on mobile (Now in the base game)</td><td>SquareScreamYT</td></tr>
|
||||
<tr class="deprecated"><td>nopixellimit.js</td><td>Removes the pixel limit. (now a setting)</td><td>Jayd</td></tr>
|
||||
<tr class="deprecated"><td>unhide.js</td><td>Unhides all elements except molten ones. (This functionality now exists as a vanilla setting)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr class="deprecated"><td>wheel_fix.js</td><td>Attempts to fix the brush scaling too much with the mouse wheel for some people. Deprecated</td><td>Nubo318</td></tr>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
document.body.style.backgroundImage = 'url("https://jayd-rubies.github.io/image/uwuify.png")';
|
||||
document.body.style.backgroundSize = 'cover';
|
||||
gameDiv.style.border = "1px solid #ffffff00";
|
||||
var statsbar = document.getElementById("stats");
|
||||
var stylesheetchangevar = document.querySelector("link[rel=stylesheet]");
|
||||
stylesheetchangevar.href = "https://jayd-Rubies.github.io/assets/css/UwUstyle.css";
|
||||
statsbar.style.backgroundColor = 'transparent';
|
||||
window.addEventListener("load",function(){
|
||||
document.querySelectorAll(".categoryButton").forEach(e => {
|
||||
e.style.backgroundColor = "#ffc0cb40";
|
||||
|
|
@ -80,4 +84,4 @@ function pixelColorPick(pixel,customColor=null) {
|
|||
}
|
||||
}*/
|
||||
return color;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
//Main version
|
||||
//Main version. Still in WIP
|
||||
//reminder for creator: human code is on index.html line 3242.
|
||||
|
||||
//Ini adalah aScientistsWish.js, mod dari Sandboxels yang diciptakan oleh Carbon Monoxide dengan bantuan startup oleh Salmonfishy, bertema sains dan semi fiktif dengan adanya zombie, mod ini masih dalam tahap pengembangan.
|
||||
elements.carbon_monoxide = {
|
||||
color: ["#b5b5b5", "#404040", "#2b2b2b",],
|
||||
behavior: behaviors.GAS,
|
||||
|
|
@ -232,7 +232,7 @@ reactions: {
|
|||
}
|
||||
};
|
||||
|
||||
elements.radiated_metal = {
|
||||
elements.radiated_metal = {
|
||||
behavior: [
|
||||
["XX","CR:radiation%25","XX"],
|
||||
["CR:radiation%25","XX","CR:radiation%25"],
|
||||
|
|
@ -929,6 +929,7 @@ elements.liquid_phosgene = {
|
|||
category: "states",
|
||||
density: 7.50,
|
||||
tempLow: -118,
|
||||
hidden: true,
|
||||
temp: -10,
|
||||
stateLow: "solid_phosgene",
|
||||
tempHigh: 8,
|
||||
|
|
@ -939,6 +940,7 @@ elements.solid_phosgene = {
|
|||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "states",
|
||||
hidden: true,
|
||||
density: 12.45,
|
||||
temp: -150,
|
||||
tempHigh: -117,
|
||||
|
|
@ -962,3 +964,232 @@ elements.chlorophyll = {
|
|||
"acid": { elem1: ["magnesium"], }
|
||||
}
|
||||
}
|
||||
elements.lithium = { //Unsur lithium, buat versi baru, masih WIP.
|
||||
color: ["#928c96", "#9c9c9c",],
|
||||
state: "powder",
|
||||
category: "powders",
|
||||
behavior: behaviors.POWDER,
|
||||
density: 0.5,
|
||||
tempHigh: 180,
|
||||
stateHigh: "molten_lithium",
|
||||
conduct: 0.2,
|
||||
burn: 85,
|
||||
burnTime: 500,
|
||||
reactions: {
|
||||
"water": { elem1: ["pop","explosion","hydrogen","lithium_hydroxide"] },
|
||||
"salt_water": { elem1: ["pop","explosion","hydrogen","lithium_hydroxide"] },
|
||||
"pool_water": { elem1: ["pop","explosion","hydrogen","lithium_hydroxide"] },
|
||||
"dirty_water": { elem1: ["pop","explosion","hydrogen","lithium_hydroxide"] },
|
||||
"sugar_water": { elem1: ["pop","explosion","hydrogen","lithium_hydroxide"] },
|
||||
"steam": { elem1: ["pop","explosion","hydrogen","lithium_hydroxide"] },
|
||||
"oxygen": { elem1: "lithium_oxide" },
|
||||
"chlorine": { elem1: "lithium_chloride" },
|
||||
"acid": { elem1: ["lithium_chloride","hydrogen"], chance: 0.2 },
|
||||
"carbon_dioxide": { elem1: "lithium_carbonate" },
|
||||
"carbon_monoxide": { elem1: "lithium_carbonate" },
|
||||
"nitrogen": { elem1: "lithium_nitride", chance: 0.1 }
|
||||
}
|
||||
}
|
||||
elements.molten_lithium = {
|
||||
color: ["#c0c0c0", "#d0d0d0", "#b0b0b0"],
|
||||
behavior: behaviors.LIQUID,
|
||||
temp: 250, // temperatur normal
|
||||
density: 0.5,
|
||||
conduct: 0.5,
|
||||
state: "liquid",
|
||||
category: "states",
|
||||
hidden: true,
|
||||
tempLow: 180,
|
||||
stateLow: "lithium",
|
||||
burn: 50,
|
||||
burnTime: 300,
|
||||
burnInto: "lithium_oxide",
|
||||
}
|
||||
|
||||
elements.lithium_hydroxide = {
|
||||
color: "#c8e4d8",
|
||||
behavior: behaviors.POWDER,
|
||||
category: "powders",
|
||||
state: "solid",
|
||||
density: 1500,
|
||||
tempHigh: 462, // titik leleh LiOH
|
||||
stateHigh: "molten_lithium_hydroxide",
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Molten Lithium Hydroxide
|
||||
elements.molten_lithium_hydroxide = {
|
||||
color: "#dff7f2",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "states",
|
||||
state: "liquid",
|
||||
density: 1400,
|
||||
hidden: true,
|
||||
temp: 463,
|
||||
tempHigh: 924, // perkiraan titik didih
|
||||
stateHigh: "lithium_hydroxide_gas", // opsional
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Lithium Oxide (hasil reaksi lithium dengan oksigen)
|
||||
elements.lithium_oxide = {
|
||||
color: "#d0d0d0",
|
||||
behavior: behaviors.POWDER,
|
||||
category: "powders",
|
||||
state: "solid",
|
||||
density: 2013,
|
||||
tempHigh: 1438,
|
||||
stateHigh: "molten_lithium_oxide",
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Molten Lithium Oxide
|
||||
elements.molten_lithium_oxide = {
|
||||
color: "#e8e8e8",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "states",
|
||||
state: "liquid",
|
||||
density: 1800,
|
||||
hidden: true,
|
||||
temp: 1440,
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Lithium Carbonate (hasil reaksi lithium dengan karbon dioksida)
|
||||
elements.lithium_carbonate = {
|
||||
color: "#f0f0f0",
|
||||
behavior: behaviors.POWDER,
|
||||
category: "powders",
|
||||
state: "solid",
|
||||
density: 2110,
|
||||
tempHigh: 723,
|
||||
stateHigh: "molten_lithium_carbonate",
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Molten Lithium Carbonate
|
||||
elements.molten_lithium_carbonate = {
|
||||
color: "#fafafa",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "states",
|
||||
state: "liquid",
|
||||
density: 1900,
|
||||
hidden: true,
|
||||
temp: 725,
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Lithium Chloride (hasil reaksi lithium dengan klorin atau asam)
|
||||
elements.lithium_chloride = {
|
||||
color: "#e0e0f8",
|
||||
behavior: behaviors.POWDER,
|
||||
category: "powders",
|
||||
state: "solid",
|
||||
density: 2068,
|
||||
tempHigh: 614,
|
||||
stateHigh: "molten_lithium_chloride",
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Molten Lithium Chloride
|
||||
elements.molten_lithium_chloride = {
|
||||
color: "#f0f0ff",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "states",
|
||||
state: "liquid",
|
||||
hidden: true,
|
||||
density: 1900,
|
||||
temp: 615,
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Lithium Nitride (hasil reaksi lithium dengan nitrogen)
|
||||
elements.lithium_nitride = {
|
||||
color: "#b8b8b8",
|
||||
behavior: behaviors.POWDER,
|
||||
category: "powders",
|
||||
state: "solid",
|
||||
density: 1270,
|
||||
tempHigh: 813,
|
||||
stateHigh: "molten_lithium_nitride",
|
||||
reactions: {},
|
||||
};
|
||||
|
||||
// Molten Lithium Nitride
|
||||
elements.molten_lithium_nitride = {
|
||||
color: "#c8c8c8",
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "states",
|
||||
state: "liquid",
|
||||
hidden: true,
|
||||
density: 1100,
|
||||
temp: 815,
|
||||
reactions: {},
|
||||
};
|
||||
elements.phosphorus = {
|
||||
color: ["#ffffcc", "#ffff99", "#ffff66"],
|
||||
behavior: behaviors.POWDER,
|
||||
category: "powders",
|
||||
state: "solid",
|
||||
density: 1820,
|
||||
burn: 100,
|
||||
burnTime: 100,
|
||||
burnInto: "fire",
|
||||
reactions: {
|
||||
"oxygen": { elem1: "fire", chance: 0.5 },
|
||||
"water": { elem1: "explosion", },
|
||||
},
|
||||
tempHigh: 44,
|
||||
stateHigh: "molten_phosphorus",
|
||||
hidden: false,
|
||||
};
|
||||
elements.molten_phosphorus = {
|
||||
color: ["#ffcc00", "#ff9900"],
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "states",
|
||||
state: "liquid",
|
||||
density: 1600,
|
||||
hidden: true,
|
||||
burning: true,
|
||||
burnTime: 2000,
|
||||
burnInto: "fire",
|
||||
reactions: {
|
||||
"oxygen": { elem1: "fire", chance: 1 },
|
||||
},
|
||||
temp: 100,
|
||||
tempLow: 43,
|
||||
stateLow: "phosphorus",
|
||||
viscosity: 20,
|
||||
};
|
||||
elements.phosphorus_bomb = {
|
||||
color: "#ffdd66",
|
||||
behavior: behaviors.POWDER,
|
||||
category: "weapons",
|
||||
state: "solid",
|
||||
density: 1200,
|
||||
desc: "Bom fosfor – meledak saat menyentuh elemen lain dan menyebarkan molten_phosphorus.",
|
||||
tick: function(pixel) {
|
||||
// Periksa apakah ada elemen lain di sekitarnya
|
||||
for (let dx = -1; dx <= 1; dx++) {
|
||||
for (let dy = -1; dy <= 1; dy++) {
|
||||
if (dx === 0 && dy === 0) continue;
|
||||
let x = pixel.x + dx;
|
||||
let y = pixel.y + dy;
|
||||
if (!isEmpty(x, y)) {
|
||||
// Meledak: ubah area sekitar jadi molten_phosphorus
|
||||
for (let ex = -3; ex <= 3; ex++) {
|
||||
for (let ey = -3; ey <= 3; ey++) {
|
||||
let nx = pixel.x + ex;
|
||||
let ny = pixel.y + ey;
|
||||
if (isEmpty(nx, ny) && Math.random() < 0.6) {
|
||||
createPixel("molten_phosphorus", nx, ny);
|
||||
}
|
||||
}
|
||||
}
|
||||
deletePixel(pixel.x, pixel.y); // Hancurkan bomb setelah meledak
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1,209 @@
|
|||
/*
|
||||
Barista Mods by Salmonfishyy (eu)
|
||||
Add many ingredients for drinks
|
||||
|
||||
Changelog - Foundation Level (v0.1)
|
||||
- Matcha Elements
|
||||
Changelog - Foundation Level (v0.2)
|
||||
- Oolong tea
|
||||
- cinnamon tea
|
||||
*/
|
||||
|
||||
elements.tencha = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#25360c","#324a0c"],
|
||||
density: 500,
|
||||
breakInto: "matcha_powder",
|
||||
isFood: true,
|
||||
desc: "Tea leaves, can break into matcha, look pretty sussy.",
|
||||
reactions: {
|
||||
"water": { elem2:"tea", tempMin:80 }
|
||||
}
|
||||
};
|
||||
|
||||
elements.matcha_powder = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#74A662","#74A12E"],
|
||||
density: 400,
|
||||
tempHigh: 80,
|
||||
stateHigh: "burn_matcha",
|
||||
isFood: true,
|
||||
desc: "Fine green powder from tea leaves. Vibrant color, earthy taste, and packed with antioxidants. Used in drinks, desserts, and rituals. Basically, classy leaf dust. Watch out for heat and oxygen!",
|
||||
reactions: {
|
||||
"oxygen": { elem2: "broke_matcha", chance: 0.5 },
|
||||
"dirty_water": { elem2: "null", chance: 0.5 },
|
||||
"pool_water": { elem2: "null", chance: 0.5 },
|
||||
"water": { elem2: "matcha_tea", chance: 0.5 },
|
||||
"seltzer": { elem2: "matcha_soda", chance: 0.5 },
|
||||
"salt_water": { elem2: "salty_matcha", chance: 0.5 },
|
||||
"sugar_water": { elem2: "sweet_matcha", chance: 0.5 }
|
||||
}
|
||||
};
|
||||
|
||||
elements.broke_matcha = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#556B2F","#8B4513"],
|
||||
density: 400,
|
||||
desc: "Broke matcha—once a proud green powder, now a sad, terrible mess. Faded, bitter, and questioning its life choices. Now useless."
|
||||
};
|
||||
|
||||
elements.matcha_tea = {
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "food",
|
||||
state: "liquid",
|
||||
color: ["#5F8A3D"],
|
||||
density: 1000,
|
||||
isFood: true,
|
||||
desc: "Thick green drink, kinda earthy, kinda bitter. Looks like a magic potion, feels like a forest hug. Smooth, strong, and definitely plotting something...",
|
||||
reactions: {
|
||||
"milk": { elem2: "matcha_latte", chance: 0.5 },
|
||||
"cream": { elem2: "matcha_latte", chance: 0.5 },
|
||||
"salt": { elem2: "salty_matcha", chance: 0.5 },
|
||||
"sugar": { elem2: "sweet_matcha", chance: 0.5 },
|
||||
"carbon_dioxide": { elem2: "matcha_soda", chance: 0.5 }
|
||||
}
|
||||
};
|
||||
|
||||
elements.matcha_latte = {
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "food",
|
||||
state: "liquid",
|
||||
color: ["#DDEEAF"],
|
||||
density: 1000,
|
||||
isFood: true,
|
||||
desc: "Green tea and milk mixed together. Smooth, slightly sweet, and a bit earthy. Looks fancy, tastes cozy.",
|
||||
reactions: {
|
||||
"milk": { elem2:null, chance: 0.5 },
|
||||
"cream": { elem2:null, chance: 0.5 }
|
||||
}
|
||||
};
|
||||
|
||||
elements.salty_matcha = {
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "food",
|
||||
state: "liquid",
|
||||
color: ["#A2B57D"],
|
||||
density: 1000,
|
||||
isFood: true,
|
||||
desc: "Green tea but slightly salty. Confusing, kinda wrong, yet somehow still drinkable. Like matcha decided to rebel.",
|
||||
reactions: {
|
||||
"salt": { elem2:null, chance: 0.5 }
|
||||
}
|
||||
};
|
||||
|
||||
elements.matcha_soda = {
|
||||
behavior: behaviors.LIQUID,
|
||||
behavior: [
|
||||
"XX|CR:foam%3|XX",
|
||||
"M2|XX|M2",
|
||||
"M2|M1|M2",
|
||||
],
|
||||
tick: function(pixel) {
|
||||
if (Math.random() < 0.05 && isEmpty(pixel.x,pixel.y-1)) {
|
||||
let foam = releaseElement(pixel, "foam");
|
||||
if (foam) foam.color = pixelColorPick(foam,"#7EBF5C");
|
||||
}
|
||||
},
|
||||
|
||||
onMix: function(pixel) {
|
||||
releaseElement(pixel, "foam", shiftDown)
|
||||
},
|
||||
|
||||
category: "food",
|
||||
state: "liquid",
|
||||
color: ["#7EBF5C"],
|
||||
density: 1000,
|
||||
isFood: true,
|
||||
desc: "Carbonated green tea. Slightly bitter, extra fizzy. Tastes fresh, feels weird...",
|
||||
reactions: {
|
||||
"carbon_dioxide": { elem2:null, chance: 0.5 }
|
||||
}
|
||||
};
|
||||
|
||||
elements.oolong_leaves = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#CDB361","#8F6B3A"],
|
||||
density: 200,
|
||||
isFood: true,
|
||||
tempHigh: 120,
|
||||
stateHigh: "roasted_oolong",
|
||||
desc: "Dark, twisty tea leaves that look kinda serious. Smell fancy, taste like tea that went through a phase. Smooth, strong, and slightly dramatic.",
|
||||
reactions: {
|
||||
"water": { elem2:"oolong_tea", tempMin:80 },
|
||||
}
|
||||
};
|
||||
|
||||
elements.roasted_oolong = {
|
||||
behavior: behaviors.POWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#8F6B3A","#654321"],
|
||||
density: 220,
|
||||
isFood: true,
|
||||
desc: "Roasted oolong—deeper flavor, slightly smoky, and probably wiser now.",
|
||||
reactions: {
|
||||
"water": { elem2:"oolong_tea", tempMin:80 },
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
elements.cinnamon = {
|
||||
behavior: behaviors.SUPPORTPOWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#6a462f","#4a3120"],
|
||||
density: 500,
|
||||
breakInto: "cinnamon_powder",
|
||||
isFood: true,
|
||||
desc: "Cinnamon, a thingy things with spicy flavour.",
|
||||
reactions: {
|
||||
"water": { elem2:"cinnamon_tea", tempMin:80, color2:"#6c3213" },
|
||||
}
|
||||
};
|
||||
|
||||
elements.cinnamon_powder = {
|
||||
behavior: behaviors.SUPPORTPOWDER,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#986544"],
|
||||
density: 589,
|
||||
isFood: true,
|
||||
desc: "Cinnamon powder, from cinnamon, a thingy things powder with spicy flavour.",
|
||||
reactions: {
|
||||
"water": { elem2:"cinnamon_tea", chance: 0.5, color2:"#6c3213" },
|
||||
}
|
||||
};
|
||||
|
||||
elements.cinnamon_tea = {
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#723900"],
|
||||
density: 1000,
|
||||
isFood: true,
|
||||
desc: "Cozy tea with spicy taste.",
|
||||
reactions: {
|
||||
"cinnamon_powder": { elem2:"null", chance: 0.5 },
|
||||
}
|
||||
};
|
||||
|
||||
elements.oolong_tea = {
|
||||
behavior: behaviors.LIQUID,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
color: ["#ADA07B"],
|
||||
density: 1000,
|
||||
isFood: true,
|
||||
desc: "it's just tea, make from oolong.",
|
||||
reactions: {
|
||||
"sugar": { elem2:"null", chance: 0.5 },
|
||||
}
|
||||
};
|
||||
|
|
@ -116,4 +116,39 @@ worldgentypes.city = {
|
|||
// ["bird", 0.025, 10],
|
||||
],
|
||||
baseHeight: 0.25
|
||||
}
|
||||
|
||||
|
||||
currentBuildingElement = "wood";
|
||||
|
||||
function buildSelectHandler(r) {
|
||||
if (!r) { return; }
|
||||
e = r.replace(/ /g, "_");
|
||||
es = mostSimilarElement(e);
|
||||
if (es) {
|
||||
currentBuildingElement = es;
|
||||
logMessage("Element \"" + e + "\" selected");
|
||||
}
|
||||
else {
|
||||
currentBuildingElement = "wood";
|
||||
logMessage("Element \"" + e + "\" not found");
|
||||
selectElement(null);
|
||||
}
|
||||
}
|
||||
|
||||
elements.slab = {
|
||||
color: "#888888",
|
||||
onSelect: () => {
|
||||
promptInput("Which element should the slab be?", buildSelectHandler, "Select Material")
|
||||
},
|
||||
onPlace: (pixel) => {
|
||||
pixel.mat = currentBuildingElement;
|
||||
},
|
||||
renderer: (pixel,ctx) => {
|
||||
let color = elements[pixel.mat].color;
|
||||
if (Array.isArray(color)) color = color[0];
|
||||
if (color) { ctx.fillStyle = color; }
|
||||
ctx.fillRect(canvasCoord(pixel.x), canvasCoord(pixel.y+0.5), pixelSize, pixelSize/2);
|
||||
},
|
||||
category: "solids"
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
logMessage("This mod (cookingnstuff.js) has been moved to talismanadditions.js");
|
||||
156
mods/devtests.js
156
mods/devtests.js
|
|
@ -193,138 +193,28 @@ elements.clone_fluid = {
|
|||
// category: "special"
|
||||
// }
|
||||
|
||||
addCanvasLayer("devtests");
|
||||
addCanvasLayer("devtests2");
|
||||
canvasLayersPre.unshift(canvasLayers["devtests"]);
|
||||
devtestsCtx = canvasLayers["devtests"].getContext("2d");
|
||||
devtestsCtx2 = canvasLayers["devtests2"].getContext("2d");
|
||||
delete canvasLayers.devtests;
|
||||
delete canvasLayers.devtests2;
|
||||
|
||||
viewInfo[9] = { // Blur
|
||||
name: "blur",
|
||||
pixel: viewInfo[1].pixel,
|
||||
post: function(ctx) {
|
||||
devtestsCtx.canvas.width = ctx.canvas.width;
|
||||
devtestsCtx.canvas.height = ctx.canvas.height;
|
||||
devtestsCtx.filter = "blur(80px)";
|
||||
// Draw the blurred content on the canvas
|
||||
devtestsCtx.drawImage(canvasLayers["pixels"], 0, 0);
|
||||
devtestsCtx.filter = "none";
|
||||
},
|
||||
};
|
||||
|
||||
elements.fire.emit = true;
|
||||
elements.lightning.emit = 15;
|
||||
elements.electric.emit = true;
|
||||
elements.plasma.emit = true;
|
||||
elements.uranium.emit = 3;
|
||||
elements.uranium.emitColor = "#009800";
|
||||
elements.rainbow.emit = true;
|
||||
elements.static.emit = true;
|
||||
elements.flash.emit = true;
|
||||
elements.cold_fire.emit = true;
|
||||
elements.blaster.emit = true;
|
||||
elements.ember.emit = true;
|
||||
elements.fw_ember.emit = 10;
|
||||
elements.bless.emit = true;
|
||||
elements.pop.emit = true;
|
||||
elements.explosion.emit = true;
|
||||
elements.n_explosion.emit = 10;
|
||||
elements.supernova.emit = 20;
|
||||
elements.midas_touch.emit = true;
|
||||
elements.fireball.emit = true;
|
||||
|
||||
elements.sun.emit = 15;
|
||||
elements.light.emit = 3;
|
||||
elements.liquid_light.emit = true;
|
||||
elements.laser.emit = 3;
|
||||
elements.neutron.emit = 3;
|
||||
elements.proton.emit = 3;
|
||||
elements.radiation.emit = 3;
|
||||
elements.fallout.emit = 3;
|
||||
elements.rad_steam.emit = 2;
|
||||
elements.rad_steam.emitColor = "#6ad48c";
|
||||
elements.rad_cloud.emit = 2;
|
||||
elements.rad_cloud.emitColor = "#009800";
|
||||
elements.rad_glass.emit = 2;
|
||||
elements.rad_glass.emitColor = "#009800";
|
||||
elements.rad_shard.emit = 2;
|
||||
elements.rad_shard.emitColor = "#009800";
|
||||
elements.malware.emit = 2;
|
||||
elements.border.emit = 2;
|
||||
|
||||
viewInfo[8] = { // Blur Glow (Emissive pixels only)
|
||||
name: "blurglow",
|
||||
pixel: viewInfo[1].pixel,
|
||||
effects: true,
|
||||
colorEffects: true,
|
||||
pre: function(ctx) {
|
||||
devtestsCtx2.canvas.width = ctx.canvas.width;
|
||||
devtestsCtx2.canvas.height = ctx.canvas.height;
|
||||
},
|
||||
pixel: viewInfo[1].pixel,
|
||||
post: function(ctx) {
|
||||
devtestsCtx.canvas.width = ctx.canvas.width;
|
||||
devtestsCtx.canvas.height = ctx.canvas.height;
|
||||
devtestsCtx.filter = "blur(30px)";
|
||||
// Draw the blurred content on the canvas
|
||||
devtestsCtx.drawImage(devtestsCtx2.canvas, 0, 0);
|
||||
devtestsCtx.filter = "none";
|
||||
},
|
||||
};
|
||||
|
||||
// viewInfo[7] = { // Pixelized Glow (Emissive pixels only)
|
||||
// name: "pixelglow",
|
||||
// pixel: viewInfo[1].pixel,
|
||||
// effects: true,
|
||||
// colorEffects: true,
|
||||
// pre: function(ctx) {
|
||||
// devtestsCtx2.canvas.width = width;
|
||||
// devtestsCtx2.canvas.height = height;
|
||||
// devtestsCtx.canvas.width = ctx.canvas.width;
|
||||
// devtestsCtx.canvas.height = ctx.canvas.height;
|
||||
// if (devtestsCtx.msImageSmoothingEnabled !== false) {
|
||||
// devtestsCtx.msImageSmoothingEnabled = false;
|
||||
// devtestsCtx.mozImageSmoothingEnabled = false;
|
||||
// devtestsCtx.webkitImageSmoothingEnabled = false;
|
||||
// devtestsCtx.imageSmoothingEnabled = false;
|
||||
// }
|
||||
// },
|
||||
// pixel: viewInfo[1].pixel,
|
||||
// post: function(ctx) {
|
||||
// // devtestsCtx.canvas.width = ctx.canvas.width;
|
||||
// // devtestsCtx.canvas.height = ctx.canvas.height;
|
||||
// // devtestsCtx.filter = "blur(30px)";
|
||||
// // Draw the blurred content on the canvas
|
||||
// devtestsCtx.filter = "blur(30px)";
|
||||
// devtestsCtx.drawImage(devtestsCtx2.canvas, 0, 0, width, height, 0, 0, devtestsCtx.canvas.width, devtestsCtx.canvas.height);
|
||||
// devtestsCtx.filter = "none";
|
||||
// devtestsCtx.drawImage(devtestsCtx.canvas, 0, 0, devtestsCtx.canvas.width, devtestsCtx.canvas.height, 0, 0, devtestsCtx.canvas.width, devtestsCtx.canvas.height);
|
||||
// },
|
||||
// };
|
||||
|
||||
renderEachPixel(function(pixel,ctx) {
|
||||
if (view === 8) {
|
||||
if (elements[pixel.element].emit || pixel.emit || (elements[pixel.element].colorOn && pixel.charge)) {
|
||||
let a = (settings.textures !== 0) ? pixel.alpha : undefined;
|
||||
let d = elements[pixel.element].emit||true;
|
||||
if (d === true) d = 5;
|
||||
let r = Math.floor(d/2);
|
||||
drawSquare(devtestsCtx2,elements[pixel.element].emitColor||pixel.color,pixel.x-r,pixel.y-r,d,a);
|
||||
// viewInfo[1].pixel(pixel,devtestsCtx2);
|
||||
elements.hue_paint = {
|
||||
color: elements.paint.color,
|
||||
tool: (pixel) => {
|
||||
let hsl;
|
||||
if (pixel.color.match(/^rgb/)) {
|
||||
hsl = RGBToHSL(pixel.color.match(/\d+/g));
|
||||
}
|
||||
if (pixel.charge && !elements[pixel.element].colorOn) {
|
||||
drawSquare(devtestsCtx2,"#ffff00",pixel.x-1,pixel.y-1,3);
|
||||
if (hsl) {
|
||||
let newRGB = hexToRGB(currentColorMap.hue_paint);
|
||||
let newHSL = RGBToHSL([newRGB.r,newRGB.g,newRGB.b]);
|
||||
hsl[0] = parseFloat(newHSL[0]);
|
||||
hsl[1] = parseFloat(hsl[1]);
|
||||
if (hsl[1] < 0.05) hsl[1] = 0.1;
|
||||
hsl[2] = parseFloat(hsl[2]);
|
||||
newRGB = HSLtoRGB(hsl);
|
||||
newRGB[0] = Math.floor(newRGB[0]);
|
||||
newRGB[1] = Math.floor(newRGB[1]);
|
||||
newRGB[2] = Math.floor(newRGB[2]);
|
||||
pixel.color = "rgb("+newRGB.join(",")+")";
|
||||
delete pixel.origColor;
|
||||
}
|
||||
}
|
||||
// else if (view === 7) {
|
||||
// let a = (settings.textures !== 0) ? pixel.alpha : undefined;
|
||||
// let d = elements[pixel.element].emit||true;
|
||||
// if (d === true) d = 5;
|
||||
// let r = Math.floor(d/2);
|
||||
// devtestsCtx2.fillStyle = pixel.color;
|
||||
// if (devtestsCtx2.globalAlpha !== a) { devtestsCtx2.globalAlpha = a; }
|
||||
// devtestsCtx2.fillRect(pixel.x-r, pixel.y-r, d, d);
|
||||
// }
|
||||
})
|
||||
},
|
||||
category: "special",
|
||||
customColor: true,
|
||||
}
|
||||
13
mods/glow.js
13
mods/glow.js
|
|
@ -1,7 +1,9 @@
|
|||
|
||||
var isChromium = !!window.chrome;
|
||||
var ua = navigator.userAgent.toLowerCase();
|
||||
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
|
||||
|
||||
if (!isChromium) {
|
||||
if (!isChromium && !isAndroid) {
|
||||
window.addEventListener("load",function(){
|
||||
console.log(1)
|
||||
logMessage("Error: glow.js only works on Chrome or Chromium-based browsers.")
|
||||
|
|
@ -58,6 +60,13 @@ elements.malware.emit = 2;
|
|||
elements.border.emit = 2;
|
||||
elements.void.emit = 10;
|
||||
|
||||
window.addEventListener("load",()=>{
|
||||
glowmodCtx2.canvas.width = ctx.canvas.width;
|
||||
glowmodCtx2.canvas.height = ctx.canvas.height;
|
||||
glowmodCtx.canvas.width = ctx.canvas.width;
|
||||
glowmodCtx.canvas.height = ctx.canvas.height;
|
||||
})
|
||||
|
||||
viewInfo[1] = { // Blur Glow (Emissive pixels only)
|
||||
name: "",
|
||||
pixel: viewInfo[1].pixel,
|
||||
|
|
@ -85,7 +94,7 @@ viewInfo[1] = { // Blur Glow (Emissive pixels only)
|
|||
};
|
||||
|
||||
renderEachPixel(function(pixel,ctx) {
|
||||
if (view === 1) {
|
||||
if (view === 1 && settings.textures !== 0) {
|
||||
if (elements[pixel.element].emit || pixel.emit || (elements[pixel.element].colorOn && pixel.charge)) {
|
||||
let a = (settings.textures !== 0) ? pixel.alpha : undefined;
|
||||
let d = pixel.emit||elements[pixel.element].emit||true;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
// validateMoves((pixel,nx,ny) => {
|
||||
// if (pixel.y-ny < 0) { //goes down usually
|
||||
// return false;
|
||||
// }
|
||||
// })
|
||||
|
||||
validateMoves((pixel,nx,ny) => {
|
||||
if (elements[pixel.element].isGas) return true;
|
||||
if (true || pixel.y-ny < 0) { //goes down usually
|
||||
|
||||
nx = 0;
|
||||
ny = 0;
|
||||
|
||||
const centerX = Math.floor(width/2);
|
||||
const centerY = Math.floor(height/2);
|
||||
|
||||
let diffX = centerX-pixel.x;
|
||||
let diffY = centerY-pixel.y;
|
||||
|
||||
let dirX = 0;
|
||||
let dirY = 0;
|
||||
if (Math.abs(diffX) > Math.abs(diffY)) {
|
||||
dirX = Math.sign(diffX);
|
||||
}
|
||||
else {
|
||||
dirY = Math.sign(diffY);
|
||||
}
|
||||
|
||||
if (Math.random() < Math.abs(diffX)/100) diffX = Math.sign(diffX);
|
||||
else diffX = 0;
|
||||
if (Math.random() < Math.abs(diffY)/100) diffY = Math.sign(diffY);
|
||||
else diffY = 0;
|
||||
|
||||
if ((diffX || diffY) && !isEmpty(pixel.x+diffX,pixel.y+diffY)) {
|
||||
if (dirX !== 0) {
|
||||
diffY = Math.random() < 0.5 ? 1 : -1;
|
||||
}
|
||||
else if (dirY !== 0) {
|
||||
diffX = Math.random() < 0.5 ? 1 : -1;
|
||||
}
|
||||
}
|
||||
|
||||
// if (!(pixel.y-ny)) {
|
||||
// diffX += pixel.y-ny;
|
||||
// diffY += pixel.x-nx;
|
||||
// }
|
||||
|
||||
return [pixel.x+diffX,pixel.y+diffY];
|
||||
|
||||
}
|
||||
})
|
||||
63
mods/mars.js
63
mods/mars.js
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
elements.mars_gunk = {
|
||||
color: "#121212",
|
||||
behavior: behaviors.DGAS,
|
||||
|
|
@ -29,8 +28,8 @@ elements.mars_basalt = {
|
|||
state: "solid",
|
||||
density: 5000,
|
||||
extraInfo: "Woah",
|
||||
tempHigh: "molten_mars",
|
||||
stateHigh: "600",
|
||||
tempHigh: "700",
|
||||
stateHigh: "molten_mars",
|
||||
hardness: 0.7,
|
||||
breakInto: ["mars_dust", "mars_rock", "mars_rock", "mars_rock", "molten_mars", "mars_debris", "mars_debris", "gunk", "mars_rock_wall"]
|
||||
}
|
||||
|
|
@ -113,7 +112,11 @@ elements.mars_ironheart_ore = {
|
|||
}
|
||||
elements.mars_ironheart = {
|
||||
color: ["#e8e8e8", "#bd1102"],
|
||||
behavior: behaviors.STURDYPOWDER,
|
||||
behavior: [
|
||||
"XX|CR:radiation%3|XX",
|
||||
"XX|XX|XX",
|
||||
"XX|XX|XX",
|
||||
],
|
||||
category: "mars",
|
||||
state: "solid",
|
||||
density: 1500,
|
||||
|
|
@ -155,10 +158,10 @@ elements.nosmoker = {
|
|||
breakInto: ["ironheart", "mars_ironheart", "ironheart_ore", "antigunk"]
|
||||
}
|
||||
elements.ironheart = {
|
||||
color: "#e9825a",
|
||||
color: "#FF6B5A",
|
||||
behavior: [
|
||||
"XX|XX|XX|",
|
||||
"XX|XX|XX|",
|
||||
"XX|CR:radiation%2|XX|",
|
||||
"XX|CH:feynmanium%0.1|XX|",
|
||||
"M2|M1|M2|",
|
||||
],
|
||||
category: "mars",
|
||||
|
|
@ -166,6 +169,40 @@ elements.ironheart = {
|
|||
state: "solid",
|
||||
stateHigh: "molten_mars",
|
||||
extraInfo: "Very Sturdy.",
|
||||
stateLow: "depleted_ironheart",
|
||||
tempLow: -50,
|
||||
tempHigh: 1500,
|
||||
reactions: {
|
||||
"electric": { elem1: "smint", elem2: "null" },
|
||||
},
|
||||
}
|
||||
elements.depleted_ironheart = {
|
||||
color: "#e9825a",
|
||||
behavior: [
|
||||
"XX|XX|XX|",
|
||||
"XX|XX|XX|",
|
||||
"M2|M1|M2|",
|
||||
],
|
||||
category: "mars",
|
||||
density: 1200,
|
||||
state: "solid",
|
||||
stateHigh: "molten_mars",
|
||||
reactions: {
|
||||
"electric": { elem1: "smint", elem2: "null" },
|
||||
},
|
||||
}
|
||||
elements.feynmanium = {
|
||||
color: "#8C7656",
|
||||
behavior: [
|
||||
"XX|XX|XX|",
|
||||
"XX|XX|XX|",
|
||||
"M2|M1|M2|",
|
||||
],
|
||||
category: "mars",
|
||||
density: 1200,
|
||||
state: "solid",
|
||||
stateHigh: "molten_mars",
|
||||
tempHigh: 6000,
|
||||
reactions: {
|
||||
"electric": { elem1: "smint", elem2: "null" },
|
||||
},
|
||||
|
|
@ -190,7 +227,7 @@ elements.red_gold_powder = {
|
|||
}
|
||||
elements.red_gold = {
|
||||
color: ["#D20103", "#E4080A", "#EFC3CA"],
|
||||
behavior: behaviors.POWDER,
|
||||
behavior: behaviors.WALL,
|
||||
category: "mars",
|
||||
state: "solid",
|
||||
density: 1350,
|
||||
|
|
@ -240,7 +277,7 @@ elements.mars_coal = {
|
|||
stateHigh: "molten_mars",
|
||||
temp: 10,
|
||||
reactions: {
|
||||
"electric": { elem2: "useless", chance: 0.01 },
|
||||
"electric": { elem2: "smint", chance: 0.01 },
|
||||
}
|
||||
}
|
||||
elements.mars_ice = {
|
||||
|
|
@ -354,7 +391,8 @@ elements.ironheart_core = {
|
|||
conduct: 1,
|
||||
extraInfo: "wha"
|
||||
}
|
||||
// 2.9.17.1
|
||||
|
||||
// 2.10.20
|
||||
// most elements done :D
|
||||
// iron heart ore
|
||||
// iron heart
|
||||
|
|
@ -385,7 +423,10 @@ elements.ironheart_core = {
|
|||
// added cores that emit electricity
|
||||
// its like plants
|
||||
// dumbed down ironheart a bit, im thinking about its behaviour
|
||||
|
||||
// Ironheart is Radioactive
|
||||
// Red Gold is Solid
|
||||
// Feynmanium
|
||||
// make things have recaitons
|
||||
|
||||
// Creditssss
|
||||
// Ghanisma - idea for 2.9.16
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
behaviors.SOLIDIFY = function(pixel) {
|
||||
pixel.solid = true
|
||||
}
|
||||
|
|
@ -1548,12 +1549,107 @@ grabAllWeights = function(pixel){
|
|||
return results
|
||||
}
|
||||
|
||||
/*elements.Cherries_Ceri_Moji = {
|
||||
color: "#fcd1d7",
|
||||
category: Student,
|
||||
state: High_School,
|
||||
behavior: [Shy, Introverted, Easily_Excited, Kind],
|
||||
pronouns: [She,Her,Herself],
|
||||
sexuality: [Panromantic, Asexual],
|
||||
desc: "Ceri is a 16 year old high school student who loves cats"
|
||||
}*/
|
||||
var modName = "mods/nekonicos_stuff.js";
|
||||
var cookieMod = "mods/cookie_clicker.js";
|
||||
|
||||
if (!enabledMods.includes(cookieMod)) {
|
||||
|
||||
elements.cookie_dough = {
|
||||
color: ["#bfac91","#CDBFAB",],
|
||||
behavior: behaviors.STURDYPOWDER,
|
||||
reactions: {
|
||||
"chocolate": { elem1:"chocolate_chip_cookie_dough", elem2:null, chance: 0.5 },
|
||||
"chocolate_powder": { elem1:"chocolate_chip_cookie_dough", elem2:null, chance: 0.5 },
|
||||
},
|
||||
category: "food",
|
||||
tempHigh: 74,
|
||||
stateHigh: "plain_cookie",
|
||||
burn:40,
|
||||
burnTime:25,
|
||||
burnInto:"ash",
|
||||
state: "solid",
|
||||
density: 526.9,
|
||||
isFood: true
|
||||
}
|
||||
|
||||
elements.chocolate_chip_cookie_dough = {
|
||||
color: ["#bfac91","#CDBFAB","#bfac91","#CDBFAB","#bfac91","#CDBFAB","#bfac91","#CDBFAB","#bfac91","#CDBFAB","#4d2818","#3b1b0d","#33160a"],
|
||||
behavior: behaviors.STURDYPOWDER,
|
||||
category: "food",
|
||||
tempHigh: 74,
|
||||
stateHigh: "cookie",
|
||||
burn:40,
|
||||
burnTime:25,
|
||||
burnInto:"ash",
|
||||
state: "solid",
|
||||
density: 526.9,
|
||||
isFood: true
|
||||
}
|
||||
|
||||
clicked = false
|
||||
cookies = 0
|
||||
oldcookies = 0
|
||||
createdcookies = 0
|
||||
|
||||
elements.plain_cookie = {
|
||||
color: ["#C4966C","#C0946B"],
|
||||
behavior: behaviors.POWDER,
|
||||
reactions: {
|
||||
"chocolate": { elem1:"cookie", elem2:null, chance: 0.25 },
|
||||
"chocolate_powder": { elem1:"cookie", elem2:null, chance: 0.25 },
|
||||
},
|
||||
tempHigh: 192,
|
||||
stateHigh: "toast",
|
||||
category: "food",
|
||||
burn: 10,
|
||||
burnTime: 200,
|
||||
burnInto: "toast",
|
||||
breakInto: "crumb",
|
||||
breakIntoColor: ["#c8946a","#c08655","#ba7a45","#a86d3e"],
|
||||
state: "solid",
|
||||
density: 233.96,
|
||||
isFood: true
|
||||
}
|
||||
|
||||
elements.cookie = {
|
||||
color: ["#C4966C","#C0946B","#C4966C","#C0946B","#C4966C","#C0946B","#C4966C","#C0946B","#C4966C","#C0946B","#4d2818","#3b1b0d","#33160a"],
|
||||
behavior: behaviors.POWDER,
|
||||
tick: function(pixel) {
|
||||
var top = mousePos.y - Math.floor(mouseSize/2);
|
||||
var bottom = mousePos.y + Math.floor(mouseSize/2);
|
||||
var left = mousePos.x - Math.floor(mouseSize/2);
|
||||
var right = mousePos.x + Math.floor(mouseSize/2);
|
||||
if ((pixel.x >= left && pixel.x <= right && pixel.y >= top && pixel.y <= bottom) && mouseIsDown === true && clicked === false) {
|
||||
clicked = true
|
||||
cookies += 1
|
||||
}
|
||||
else if ((pixel.x >= left && pixel.x <= right && pixel.y >= top && pixel.y <= bottom) && mouseIsDown !== true && clicked === true) {
|
||||
clicked = false
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
tempHigh: 95,
|
||||
stateHigh: ["melted_chocolate","plain_cookie","plain_cookie"],
|
||||
category: "food",
|
||||
burn: 10,
|
||||
burnTime: 200,
|
||||
burnInto: ["melted_chocolate","plain_cookie","plain_cookie"],
|
||||
breakInto: ["crumb","crumb","crumb","crumb","crumb","chocolate","chocolate_powder"],
|
||||
breakIntoColor: ["#bfac91","#CDBFAB","#bfac91","#CDBFAB","#bfac91","#CDBFAB","#bfac91","#CDBFAB","#bfac91","#CDBFAB","#4d2818","#3b1b0d","#33160a"],
|
||||
state: "solid",
|
||||
density: 233.96,
|
||||
isFood: true,
|
||||
renderer: function(pixel,ctx) {
|
||||
if (!viewInfo[view].effects) { return }
|
||||
if (isEmpty(pixel.x,pixel.y+1) || !outOfBounds(pixel.x,pixel.y+1) || pixelMap[pixel.x][pixel.y+1].element === "pipe") {
|
||||
drawPlus(ctx,"#C4966C",pixel.x,pixel.y,undefined,2)
|
||||
}
|
||||
drawDefault(ctx,pixel)
|
||||
}
|
||||
}
|
||||
|
||||
elements.dough.reactions.sugar = { elem1:"cookie_dough", elem2: null, chance:0.5}
|
||||
elements.dough.reactions.chocolate = { elem1:"chocolate_chip_cookie_dough", elem2: null, chance:0.5}
|
||||
elements.dough.reactions.chocolate_powder = { elem1:"chocolate_chip_cookie_dough", elem2: null, chance:0.5}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,628 @@
|
|||
audioContext = new AudioContext()
|
||||
|
||||
//Derived from Alice's note_block.js - thanks!
|
||||
//adv_note_block/note_block_advance/nba
|
||||
|
||||
oscillatorDefaults = {
|
||||
frequency: 440,
|
||||
type: "sine",
|
||||
endType: "none",
|
||||
length: 1,
|
||||
volume: 1,
|
||||
delay: 0,
|
||||
};
|
||||
|
||||
audioObject = {};
|
||||
|
||||
function oscillator(name="test",parameterObject=oscillatorDefaults){ //creates oscillator with gain node, has specifiable frequency and type, fades out over 1 second (hard-coded)
|
||||
var defaultKeys = Object.keys(oscillatorDefaults); //readability variable
|
||||
|
||||
for(i = 0; i < defaultKeys.length; i++) {
|
||||
var key = defaultKeys[i]; //the indexed keyname
|
||||
if(typeof(parameterObject[key]) === "undefined") {
|
||||
parameterObject[key] = oscillatorDefaults[key];
|
||||
};
|
||||
};
|
||||
|
||||
var oscillatorNodeName = `${name}Oscillator`;
|
||||
var gainNodeName = `${name}Gain`;
|
||||
|
||||
audioObject[oscillatorNodeName] = audioContext.createOscillator()
|
||||
audioObject[gainNodeName] = audioContext.createGain()
|
||||
audioObject[gainNodeName].gain.value = parameterObject.volume;
|
||||
audioObject[oscillatorNodeName].type = parameterObject.type
|
||||
audioObject[oscillatorNodeName].connect(audioObject[gainNodeName])
|
||||
audioObject[oscillatorNodeName].frequency.value = parameterObject.frequency
|
||||
audioObject[gainNodeName].connect(audioContext.destination)
|
||||
audioObject[oscillatorNodeName].start(audioContext.currentTime + parameterObject.delay)
|
||||
|
||||
//stopping handler
|
||||
if(parameterObject.endType === "exponential") { //starts fading immediately
|
||||
audioObject[gainNodeName].gain.exponentialRampToValueAtTime(
|
||||
0.00001, audioContext.currentTime + parameterObject.length
|
||||
);
|
||||
} else if(parameterObject.endType === "linear") { //starts fading immediately
|
||||
audioObject[gainNodeName].gain.linearRampToValueAtTime(
|
||||
0.00001, audioContext.currentTime + parameterObject.length
|
||||
);
|
||||
} else { //waits to stop
|
||||
audioObject[oscillatorNodeName].stop(audioContext.currentTime + parameterObject.delay + parameterObject.length);
|
||||
};
|
||||
};
|
||||
|
||||
elements.c_note_block = {
|
||||
color: "#eb4034",
|
||||
name: "Note Block - C",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 261.63,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.cs_note_block = {
|
||||
color: "#fc3903",
|
||||
name: "Note Block - C Sharp",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 277.183,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.d_note_block = {
|
||||
color: "#fc6203",
|
||||
name: "Note Block - D",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 293.66,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.ef_note_block = {
|
||||
color: "#fc9803",
|
||||
name: "Note Block - E Flat",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 293.66,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
elements.e_note_block = {
|
||||
color: "#fce303",
|
||||
name: "Note Block - E",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 329.63,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.f_note_block = {
|
||||
color: "#fce303",
|
||||
name: "Note Block - F",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 349.228,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.fs_note_block = {
|
||||
color: "#03fc3d",
|
||||
name: "Note Block - F Sharp",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 369.99,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.g_note_block = {
|
||||
color: "#03fcca",
|
||||
name: "Note Block - G",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 391.995,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.gs_note_block = {
|
||||
color: "#0394fc",
|
||||
name: "Note Block - G Sharp",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 415.305,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.a_note_block = {
|
||||
color: "#0f03fc",
|
||||
name: "Note Block - A",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 440,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.bf_note_block = {
|
||||
color: "#9803fc",
|
||||
name: "Note Block - B Flat",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 466.164,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
elements.b_note_block = {
|
||||
color: "#fc03b5",
|
||||
name: "Note Block - B",
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
category: "note_blocks",
|
||||
density: 1200,
|
||||
hardness: 0.2,
|
||||
breakInto: ["plastic","metal_scrap","metal_scrap","metal_scrap"],
|
||||
conduct: 1,
|
||||
properties: {
|
||||
frequency: 493.883,
|
||||
type: "triangle",
|
||||
endType: "none",
|
||||
length: 0.5,
|
||||
volume: 0.7,
|
||||
delay: 0,
|
||||
debounce: 0,
|
||||
debounceLength: tps,
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name
|
||||
|
||||
var pixelPropertyObject = { //Load sound properties from pixel as object;
|
||||
frequency: pixel.frequency,
|
||||
type: pixel.type,
|
||||
endType: pixel.endType,
|
||||
length: pixel.length,
|
||||
volume: pixel.volume,
|
||||
delay: pixel.delay,
|
||||
};
|
||||
|
||||
//console.log(pixelPropertyObject);
|
||||
|
||||
if(pixel.debounce < 1) {
|
||||
//console.log(`${pixel.debounce} not debounced, play`);
|
||||
if(pixel.charge) {
|
||||
oscillator(pixelSoundName,pixelPropertyObject);
|
||||
delete pixel.charge;
|
||||
pixel.debounce = pixel.debounceLength;
|
||||
};
|
||||
} else if(pixel.debounce > 0) {
|
||||
//console.log(`${pixel.debounce} debounced, don't play`);
|
||||
pixel.debounce--;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,421 @@
|
|||
emptyList = []
|
||||
|
||||
runPerPixel(function(pixel) {
|
||||
// run any code on each pixel every tick
|
||||
if (pixel.start>pixelTicks) {
|
||||
if (pixel.olderelement != undefined && pixel.oldercolor != undefined && pixel.olderstart != undefined && pixel.oldertemp != undefined && pixel.olderanimal != undefined && pixel.olderage != undefined) {
|
||||
OGChangePixel(pixel)
|
||||
}
|
||||
else {
|
||||
deletePixel(pixel.x,pixel.y)
|
||||
}
|
||||
} /*
|
||||
if (pixel.start>pixelTicks+10) {
|
||||
deletePixel(pixel.x,pixel.y)
|
||||
} */
|
||||
if (pixel.burnStart && pixel.burnStart>pixelTicks) {
|
||||
if (pixel.burning) {
|
||||
delete pixel.burning;
|
||||
delete pixel.burnStart;
|
||||
}
|
||||
}
|
||||
if (pixel.origColor && !pixel.stainStart) {
|
||||
pixel.stainStart = pixelTicks
|
||||
}
|
||||
if (pixel.stainStart && pixel.origColor && pixel.stainStart>pixelTicks) {
|
||||
pixel.color = "rgb("+pixel.origColor[0]+","+pixel.origColor[1]+","+pixel.origColor[2]+")"
|
||||
delete pixel.origColor
|
||||
delete pixel.stainStart
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
changePixel = function(pixel,element,changetemp=true) {
|
||||
if (!element) { return }
|
||||
if (elements[pixel.element].onChange !== undefined) {
|
||||
elements[pixel.element].onChange(pixel,element);
|
||||
}
|
||||
if (!elements[element]) {
|
||||
pixel.invalidElement = element;
|
||||
element = "unknown"
|
||||
}
|
||||
if (!pixel.olderelement) {
|
||||
pixel.olderelement = []
|
||||
}
|
||||
if (!pixel.oldercolor) {
|
||||
pixel.oldercolor = []
|
||||
}
|
||||
if (!pixel.olderstart) {
|
||||
pixel.olderstart = []
|
||||
}
|
||||
if (!pixel.oldertemp) {
|
||||
pixel.oldertemp = []
|
||||
}
|
||||
if (!pixel.olderanimal) {
|
||||
pixel.olderanimal = []
|
||||
}
|
||||
if (!pixel.olderage) {
|
||||
pixel.olderage = []
|
||||
}
|
||||
for (var i = 0; i <= 500; i++) {
|
||||
if (!pixel.olderelement[i]) {
|
||||
pixel.olderelement[i] = pixel.element
|
||||
if (pixel.element === "human") {
|
||||
pixel.olderelement[i] = "head"
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i <= 500; i++) {
|
||||
if (!pixel.oldercolor[i]) {
|
||||
pixel.oldercolor[i] = pixel.color
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i <= 500; i++) {
|
||||
if (!pixel.olderstart[i]) {
|
||||
pixel.olderstart[i] = pixel.start
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i <= 500; i++) {
|
||||
if (!pixel.oldertemp[i]) {
|
||||
pixel.oldertemp[i] = pixel.temp
|
||||
if (elements[pixel.element].tempHigh && elements[pixel.element].tempHigh < pixel.temp) {
|
||||
pixel.oldertemp[i] = (elements[pixel.element].tempHigh - 1.5)
|
||||
}
|
||||
if (elements[pixel.element].tempLow && elements[pixel.element].tempLow > pixel.temp) {
|
||||
pixel.oldertemp[i] = (elements[pixel.element].tempLow + 1.5)
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i <= 500; i++) {
|
||||
if (!pixel.olderanimal[i]) {
|
||||
pixel.olderanimal[i] = pixel.animal
|
||||
if (!pixel.animal) {
|
||||
pixel.olderanimal[i] = pixel.element
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i <= 500; i++) {
|
||||
if (!pixel.olderage[i]) {
|
||||
pixel.olderage[i] = pixel.age
|
||||
if (!pixel.age) {
|
||||
pixel.olderage[i] = pixel.start
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
pixel.element = element;
|
||||
pixel.color = pixelColorPick(pixel);
|
||||
pixel.start = pixelTicks;
|
||||
var elementInfo = elements[element];
|
||||
if (elementInfo.burning == true) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
}
|
||||
else if (pixel.burning && !elementInfo.burn) {
|
||||
delete pixel.burning;
|
||||
delete pixel.burnStart;
|
||||
}
|
||||
delete pixel.origColor; // remove stain
|
||||
delete pixel.clone;
|
||||
if (pixel.glow !== undefined) {
|
||||
delete pixel.glow;
|
||||
}
|
||||
if (pixel.r && !elementInfo.rotatable) {
|
||||
delete pixel.r;
|
||||
}
|
||||
if (pixel.flipX && !elementInfo.flippableX) {
|
||||
delete pixel.flipX;
|
||||
}
|
||||
if (pixel.flipY && !elementInfo.flippableY) {
|
||||
delete pixel.flipY;
|
||||
}
|
||||
// If elementInfo.flippableX, set it to true or false randomly
|
||||
if (elementInfo.flipX !== undefined) { pixel.flipX = elementInfo.flipX }
|
||||
else if (elementInfo.flippableX) {
|
||||
pixel.flipX = Math.random() >= 0.5;
|
||||
}
|
||||
// If elementInfo.flippableY, set it to true or false randomly
|
||||
if (elementInfo.flipY !== undefined) { pixel.flipY = elementInfo.flipY }
|
||||
else if (elementInfo.flippableY) {
|
||||
pixel.flipY = Math.random() >= 0.5;
|
||||
}
|
||||
if (elementInfo.temp !== undefined && changetemp) {
|
||||
pixel.temp = (elementInfo.temp+pixel.temp)/2;
|
||||
pixelTempCheck(pixel)
|
||||
}
|
||||
if (pixel.con && !elementInfo.canContain) {
|
||||
delete pixel.con;
|
||||
}
|
||||
// If elementInfo.properties, set each key to its value
|
||||
if (elementInfo.properties !== undefined) {
|
||||
for (var key in elementInfo.properties) {
|
||||
// If it is an array or object, make a copy of it
|
||||
if (typeof elementInfo.properties[key] == "object") {
|
||||
pixel[key] = JSON.parse(JSON.stringify(elementInfo.properties[key]));
|
||||
}
|
||||
else {
|
||||
pixel[key] = elementInfo.properties[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pixel.alpha !== undefined) {
|
||||
delete pixel.alpha;
|
||||
}
|
||||
if (pixel.emit) {
|
||||
delete pixel.emit;
|
||||
}
|
||||
if (elements[element].alpha !== undefined) {
|
||||
pixel.alpha = elements[element].alpha;
|
||||
}
|
||||
if (elements[element].onPlace !== undefined) {
|
||||
elements[element].onPlace(pixel);
|
||||
}
|
||||
checkUnlock(element);
|
||||
}
|
||||
|
||||
OGChangePixel = function(pixel) {
|
||||
if (pixel.olderelement != undefined && pixel.oldercolor != undefined && pixel.olderstart != undefined && pixel.oldertemp != undefined && pixel.olderanimal != undefined && pixel.olderage != undefined && pixel.olderelement.length > emptyList.length && pixel.oldercolor.length > emptyList.length && pixel.olderstart.length > emptyList.length && pixel.oldertemp.length > emptyList.length && pixel.olderanimal.length > emptyList.length && pixel.olderage.length > emptyList.length && pixel.start<pixelTicks+5) {
|
||||
pixel.element = pixel.olderelement[(pixel.olderelement.length - 1)]
|
||||
pixel.color = pixel.oldercolor[(pixel.oldercolor.length - 1)]
|
||||
pixel.start = pixel.olderstart[(pixel.olderstart.length - 1)]
|
||||
pixel.temp = pixel.oldertemp[(pixel.oldertemp.length - 1)]
|
||||
pixel.animal = pixel.olderanimal[(pixel.olderanimal.length - 1)]
|
||||
pixel.age = pixel.olderage[(pixel.olderage.length - 1)]
|
||||
pixel.olderelement.pop()
|
||||
pixel.oldercolor.pop()
|
||||
pixel.olderstart.pop()
|
||||
pixel.oldertemp.pop()
|
||||
pixel.olderanimal.pop()
|
||||
pixel.olderage.pop()
|
||||
}
|
||||
else {
|
||||
deletePixel(pixel.x,pixel.y)
|
||||
}
|
||||
}
|
||||
|
||||
elements.reverse_time = {
|
||||
color: "#f2eeb8",
|
||||
tool: function(pixel) {},
|
||||
perTick: function() {
|
||||
pixelTicks -= 2;
|
||||
},
|
||||
category: "tools",
|
||||
canPlace: false,
|
||||
darkText: true,
|
||||
}
|
||||
/*
|
||||
|
||||
elements.egg = {
|
||||
color: "#e0d3ab",
|
||||
tick: function(pixel) {
|
||||
if (!pixel.animal && pixel.start>pixelTicks) {
|
||||
deletePixel(pixel.x,pixel.y)
|
||||
}
|
||||
else if (pixel.animal && pixel.start-pixelTicks >= 500 && Math.random() < 0.2) {
|
||||
deletePixel(pixel.x,pixel.y)
|
||||
}
|
||||
if (pixel.start === pixelTicks) {return}
|
||||
if (pixel.drag) pixel.fall = 0;
|
||||
if (!tryMove(pixel, pixel.x, pixel.y+1)) {
|
||||
if (pixel.animal || pixel.fall < 20) {
|
||||
if (Math.random() < 0.5) {
|
||||
if (!tryMove(pixel, pixel.x+1, pixel.y+1)) {
|
||||
tryMove(pixel, pixel.x-1, pixel.y+1);
|
||||
}
|
||||
} else {
|
||||
if (!tryMove(pixel, pixel.x-1, pixel.y+1)) {
|
||||
tryMove(pixel, pixel.x+1, pixel.y+1);
|
||||
}
|
||||
}
|
||||
pixel.fall = 0;
|
||||
}
|
||||
else if (outOfBounds(pixel.x,pixel.y+1) || (!isEmpty(pixel.x,pixel.y+1,true) && elements.egg.ignore.indexOf(pixelMap[pixel.x][pixel.y+1].element) === -1 && elements[pixelMap[pixel.x][pixel.y+1].element].state === "solid")) {
|
||||
changePixel(pixel,"yolk")
|
||||
}
|
||||
else {pixel.fall = 0}
|
||||
if (pixel.animal && pixelTicks-pixel.start >= 500 && Math.random() < 0.2) {
|
||||
changePixel(pixel,pixel.animal)
|
||||
}
|
||||
}
|
||||
else {pixel.fall ++}
|
||||
if (pixel.temp < -2 || pixel.temp > 100) {
|
||||
pixel.animal = null;
|
||||
}
|
||||
doDefaults(pixel);
|
||||
},
|
||||
ignore: ["paper","sponge","straw","wheat","rat","frog","pollen","clay","snow","mud","wet_sand","tinder","feather","bread","ice_cream","dough"],
|
||||
innerColor: "#ffffff",
|
||||
properties: { "fall":0 },
|
||||
tempHigh: 1500,
|
||||
stateHigh: ["steam","calcium","carbon_dioxide","sulfur_gas"],
|
||||
breakInto: "yolk",
|
||||
category: "food",
|
||||
state: "solid",
|
||||
density: 1031,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
|
||||
elements.tadpole = {
|
||||
color: "#87b574",
|
||||
behavior: [
|
||||
"XX|XX|M2%25 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water%14",
|
||||
"XX|FX%0.5|SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water%14",
|
||||
"XX|M1|SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water%14",
|
||||
],
|
||||
tick: function(pixel) {
|
||||
if (pixel.start-pixelTicks > 500) {
|
||||
OGChangePixel(pixel,"egg")
|
||||
pixel.color = pixelColorPick(pixel,"#717c80")
|
||||
pixel.animal = "tadpole"
|
||||
}
|
||||
if (pixelTicks-pixel.start > 500) {
|
||||
changePixel(pixel,"frog");
|
||||
}
|
||||
},
|
||||
reactions: {
|
||||
"algae": { elem2:null, chance:0.25 },
|
||||
"kelp": { elem2:"water", chance:0.25 }
|
||||
},
|
||||
tempHigh: 100,
|
||||
stateHigh: "steam",
|
||||
tempLow: -10,
|
||||
stateLow: "ice",
|
||||
breakInto: ["slime",null],
|
||||
category:"life",
|
||||
hidden: true,
|
||||
state: "solid",
|
||||
density: 1450,
|
||||
conduct: 0.2
|
||||
}
|
||||
|
||||
elements.frog = {
|
||||
color: "#607300",
|
||||
behavior: [
|
||||
"XX|XX|M2%3 AND SW:water,salt_water,sugar_water,dirty_water,seltzer%7",
|
||||
"XX|FX%0.5|CR:slime%0.01 AND BO",
|
||||
"XX|M1|XX",
|
||||
],
|
||||
reactions: {
|
||||
"fly": { elem2:null, chance:0.5, func:behaviors.FEEDPIXEL },
|
||||
"firefly": { elem1:"meat", elem2:null, chance:0.5 },
|
||||
"stink_bug": { elem2:null, chance:0.55, func:behaviors.FEEDPIXEL },
|
||||
"snail": { elem2:"limestone", chance:0.05, func:behaviors.FEEDPIXEL },
|
||||
"slug": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
|
||||
"worm": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
|
||||
"spider": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
|
||||
"algae": { elem2:null, chance:0.5, func:behaviors.FEEDPIXEL },
|
||||
"kelp": { elem2:"water", chance:0.5, func:behaviors.FEEDPIXEL },
|
||||
"oxygen": { elem2:"carbon_dioxide", chance:0.5 },
|
||||
"dead_bug": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
|
||||
"mercury": { elem1:"rotten_meat", chance:0.1 },
|
||||
"bleach": { elem1:"rotten_meat", chance:0.1 },
|
||||
"infection": { elem1:"rotten_meat", chance:0.025 },
|
||||
"uranium": { elem1:"rotten_meat", chance:0.1 },
|
||||
"cyanide": { elem1:"rotten_meat", chance:0.1 },
|
||||
"chlorine": { elem1:"meat", chance:0.1 },
|
||||
"alcohol": { elem1:"meat", chance:0.025 },
|
||||
"dirty_water": { elem1:"rotten_meat", chance:0.0001 },
|
||||
"pool_water": { elem1:"rotten_meat", chance:0.005 },
|
||||
"vinegar": { elem1:"rotten_meat", chance:0.001 },
|
||||
},
|
||||
tick: function(pixel) {
|
||||
if (pixelTicks < pixel.start) {
|
||||
OGChangePixel(pixel,"tadpole");
|
||||
}
|
||||
},
|
||||
foodNeed: 10,
|
||||
baby: "tadpole",
|
||||
eggColor:"#717c80",
|
||||
temp: 19.1,
|
||||
tempHigh: 100,
|
||||
stateHigh: "cooked_meat",
|
||||
stateHighColor: "#CDAF96",
|
||||
onStateHigh: function(pixel) {
|
||||
releaseElement(pixel,"steam");
|
||||
},
|
||||
tempLow: -18,
|
||||
stateLow: "frozen_frog",
|
||||
category:"life",
|
||||
breakInto: "slime",
|
||||
burn:15,
|
||||
burnTime:300,
|
||||
state: "solid",
|
||||
density: 1450,
|
||||
conduct: 0.2
|
||||
}
|
||||
|
||||
elements.fly = {
|
||||
color: "#4c4e42",
|
||||
behaviorOn: [
|
||||
"XX|CR:flash|XX",
|
||||
"CR:flash|CH:ash|CR:flash",
|
||||
"XX|CR:flash|XX",
|
||||
],
|
||||
reactions: {
|
||||
"dead_plant": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"meat": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"cooked_meat": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"rotten_meat": { elem2:[null,null,"ammonia"], chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"cheese": { elem2:[null,null,"ammonia"], chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"cheese_powder": { elem2:[null,null,"ammonia"], chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"rotten_cheese": { elem2:[null,null,"ammonia"], chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"vine": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"corn": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
|
||||
"potato": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
|
||||
"crumb": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
|
||||
"wheat": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
|
||||
"yeast": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"caramel": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"bread": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
|
||||
"sugar_water": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"honey": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL },
|
||||
"soda": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }
|
||||
},
|
||||
tick: function(pixel, onHit) {
|
||||
var nx = pixel.flipX ? -1 : 1;
|
||||
var ny = Math.random() < 0.5 ? -1 : 1;
|
||||
var hit = false;
|
||||
if (!tryMove(pixel, pixel.x+nx, pixel.y+ny)) {
|
||||
if (!tryMove(pixel, pixel.x+nx, pixel.y-ny)) {
|
||||
if (!tryMove(pixel, pixel.x, pixel.y+ny)) {
|
||||
if (!tryMove(pixel, pixel.x, pixel.y-ny)) {hit=[pixel.x, pixel.y-ny]}
|
||||
}else {hit=[pixel.x, pixel.y+ny]}
|
||||
}else {hit=[pixel.x+nx, pixel.y-ny]}
|
||||
}else {hit=[pixel.x+nx, pixel.y+ny]}
|
||||
if (hit && onHit) {
|
||||
if (!isEmpty(hit[0], hit[1], true)) {
|
||||
onHit(pixel, pixelMap[hit[0]][hit[1]]);
|
||||
}
|
||||
else {onHit(pixel);}
|
||||
}
|
||||
if (pixel.del) {return}
|
||||
if (!isEmpty(pixel.x+nx,pixel.y) || Math.random() < 0.02) {
|
||||
pixel.flipX = !pixel.flipX;
|
||||
}
|
||||
if (pixel.charge && elements[pixel.element].behaviorOn) {
|
||||
pixelTick(pixel)
|
||||
}
|
||||
doDefaults(pixel);
|
||||
if (pixel.start-pixelTicks > 500) {
|
||||
OGChangePixel(pixel,"egg")
|
||||
pixel.animal = "fly"
|
||||
}
|
||||
},
|
||||
foodNeed: 15,
|
||||
tempHigh: 100,
|
||||
stateHigh: "ash",
|
||||
tempLow: 0,
|
||||
stateLow: "dead_bug",
|
||||
breakInto: "dead_bug",
|
||||
category:"life",
|
||||
burn:95,
|
||||
burnTime:25,
|
||||
state: "solid",
|
||||
density: 600,
|
||||
conduct: 1
|
||||
} */
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
|
||||
behaviors.YOGURT = [
|
||||
"XX|XX|XX",
|
||||
"XX|XX|XX",
|
||||
"M2%5|M1|M2%5",
|
||||
];
|
||||
|
||||
elements.kefir = {
|
||||
color: "#f0f1fa",
|
||||
behavior: behaviors.YOGURT,
|
||||
category: "food",
|
||||
state: "solid",
|
||||
stateHigh: "yogurt",
|
||||
stateLow: "frozen_kefir",
|
||||
stateLowColorMultiplier: 1.05,
|
||||
tempHigh: 125,
|
||||
tempLow: 0,
|
||||
reactions: {
|
||||
"honey": { elem1: "honey_kefir", elem2: null },
|
||||
"caramel": { elem1: "honey_kefir", elem2: null },
|
||||
"sugar": { elem1: "honey_kefir", elem2: null },
|
||||
}
|
||||
}
|
||||
|
||||
elements.frozen_kefir = {
|
||||
temp: -5,
|
||||
tempHigh: 0,
|
||||
stateHigh: "kefir",
|
||||
breakInto: "kefir",
|
||||
behavior: behaviors.STURDYPOWDER,
|
||||
category: "food",
|
||||
isFood: true,
|
||||
stateHighColorMultiplier: 0.955,
|
||||
}
|
||||
|
||||
elements.honey_kefir = {
|
||||
color: "#ffe7cf",
|
||||
behavior: behaviors.YOGURT,
|
||||
category: "states",
|
||||
state: "solid",
|
||||
stateHigh: "honey",
|
||||
stateLowName: "frozen_kefir",
|
||||
stateLowColorMultiplier: 1.05,
|
||||
tempHigh: 125,
|
||||
tempLow: 0,
|
||||
}
|
||||
|
||||
elements.honey_yogurt = {
|
||||
color: "#fff6e6",
|
||||
category: "states",
|
||||
behavior: behaviors.YOGURT,
|
||||
tempHigh: 1000,
|
||||
stateHigh: ["smoke","smoke","honey","calcium"],
|
||||
tempLow: 0,
|
||||
stateLowName: "frozen_yogurt",
|
||||
stateLowColorMultiplier: 1.05,
|
||||
state: "liquid",
|
||||
density: 820.33,
|
||||
isFood: true,
|
||||
alias: "honey_yoghurt",
|
||||
}
|
||||
|
||||
elements.beet = {
|
||||
color: "#ff576d",
|
||||
category: "food",
|
||||
behavior: behaviors.POWDER,
|
||||
state: "solid",
|
||||
stateHigh: "beet_juice",
|
||||
tempHigh: 125,
|
||||
breakInto: "beet_juice",
|
||||
}
|
||||
|
||||
elements.beet_juice = {
|
||||
color: "#ff0062",
|
||||
category: "liquids",
|
||||
behavior: behaviors.LIQUID,
|
||||
state: "solid",
|
||||
stateHigh: "sugar",
|
||||
tempHigh: 125,
|
||||
stateLow: "frozen_beet_juice",
|
||||
stateLowColorMultiplier: 1.15,
|
||||
tempLow: 0,
|
||||
}
|
||||
|
||||
elements.frozen_beet_juice = {
|
||||
temp: -5,
|
||||
tempHigh: 0,
|
||||
stateHigh: "beet_juice",
|
||||
breakInto: "beet_juice",
|
||||
behavior: behaviors.STURDYPOWDER,
|
||||
category: "states",
|
||||
isFood: true,
|
||||
stateHighColorMultiplier: 0.955,
|
||||
}
|
||||
|
||||
const swaps = {
|
||||
"meat": "cooked_meat",
|
||||
"kefir": "honey_kefir",
|
||||
"bread": "toast",
|
||||
"yogurt": "honey_yogurt",
|
||||
"egg": "yolk",
|
||||
"wheat": "flour",
|
||||
"frozen_meat": "meat",
|
||||
"coffee_beans": "coffee_ground",
|
||||
"coffee_ground": "coffee",
|
||||
"corn": "popcorn",
|
||||
"flour": "dough",
|
||||
"potato": "baked_potato",
|
||||
"beet": "beet_juice",
|
||||
};
|
||||
elements.prepare = {
|
||||
color: "#ffe7cf",
|
||||
tool: function(pixel) {
|
||||
if (pixel.element in swaps) {
|
||||
changePixel(pixel, swaps[pixel.element])
|
||||
}
|
||||
},
|
||||
category: "tools",
|
||||
};
|
||||
|
||||
if (!elements.yogurt.reactions) { // Include this block once
|
||||
elements.yogurt.reactions = {} // This creates the property if it doesn't exist
|
||||
}
|
||||
elements.yogurt.reactions.honey = { "elem1":"honey_yogurt", "elem2":null }
|
||||
|
|
@ -0,0 +1,207 @@
|
|||
airResistance = 0.1;
|
||||
terminalVelocity = 5;
|
||||
gravityPull = 0.2;
|
||||
|
||||
validateMoves((pixel,nx,ny) => {
|
||||
if (elements[pixel.element].isGas) return true;
|
||||
if (isEmpty(pixel.x,pixel.y+1) && pixel.y-ny < 0) { //goes down usually
|
||||
pixel.vy = (pixel.vy||0) + gravityPull;
|
||||
}
|
||||
return true;
|
||||
})
|
||||
|
||||
runPerPixel((pixel) => {
|
||||
|
||||
let vx = pixel.vx;
|
||||
let vy = pixel.vy;
|
||||
if (vx === undefined ) vx = 0;
|
||||
else if (Math.abs(vx) > terminalVelocity) vx = (vx + terminalVelocity) / 2;
|
||||
if (vy === undefined ) vy = 0;
|
||||
else if (Math.abs(vy) > terminalVelocity) vy = (vy + terminalVelocity) / 2;
|
||||
|
||||
if (vx !== 0 || vy !== 0) {
|
||||
|
||||
if (!elements[pixel.element].movable) {
|
||||
pixel.vx = 0;
|
||||
pixel.vy = 0;
|
||||
return;
|
||||
};
|
||||
|
||||
// Calculate change in position; Random chance for in-between decimal values
|
||||
const changeX = Math.trunc(vx) +
|
||||
(Math.random() < (vx % 1) ? Math.sign(vx) : 0);
|
||||
const changeY = Math.trunc(vy) +
|
||||
(Math.random() < (vy % 1) ? Math.sign(vy) : 0);
|
||||
|
||||
const loopFor = Math.max(Math.abs(changeX),Math.abs(changeY));
|
||||
// console.log(Math.trunc(vy));
|
||||
|
||||
// let hit = false;
|
||||
for (let i = 0; i < loopFor; i++) {
|
||||
const newX = pixel.x + (changeX ? Math.sign(changeX) : 0);
|
||||
const newY = pixel.y + (changeY ? Math.sign(changeY) : 0);
|
||||
|
||||
if (!tryMove(pixel,newX,newY)) {
|
||||
if (!isEmpty(newX,newY,true)) {
|
||||
const newPixel = pixelMap[newX][newY];
|
||||
newPixel.vx = (newPixel.vx||0) + vx*0.6;
|
||||
newPixel.vy = (newPixel.vy||0) + vy*0.6;
|
||||
}
|
||||
vx = vx*0.3;
|
||||
vy = vy*0.3;
|
||||
};
|
||||
}
|
||||
|
||||
// const newX = pixel.x + changeX;
|
||||
// const newY = pixel.y + changeY;
|
||||
|
||||
const multiplier = (1-airResistance);
|
||||
pixel.vx = vx * multiplier;
|
||||
pixel.vy = vy * multiplier;
|
||||
|
||||
// Cut off very low decimal values
|
||||
if (Math.abs(pixel.vx) < 0.01) pixel.vx = 0;
|
||||
if (Math.abs(pixel.vy) < 0.01) pixel.vy = 0;
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
elements.push_up = {
|
||||
color: "#ffffff",
|
||||
tool: function(pixel) {
|
||||
pixel.vx = (Math.random() * 2) * (Math.random() < 0.5 ? 1 : -1);
|
||||
pixel.vy = (Math.random() * 2) * -1;
|
||||
},
|
||||
category: "special"
|
||||
}
|
||||
|
||||
elements.repeller = {
|
||||
color: "#ffffff",
|
||||
tick: function(pixel) {
|
||||
var coords = circleCoords(pixel.x,pixel.y,5);
|
||||
for (var i = 0; i < coords.length; i++) {
|
||||
var coord = coords[i];
|
||||
if (!isEmpty(coord.x,coord.y,true)) {
|
||||
if (!elements[pixelMap[coord.x][coord.y].element].movable) continue;
|
||||
pixelMap[coord.x][coord.y].vx = (pixelMap[coord.x][coord.y].vx||0) + (Math.random() < 0.5 ? 1 : -1);
|
||||
pixelMap[coord.x][coord.y].vy = (pixelMap[coord.x][coord.y].vy||0) -1;
|
||||
}
|
||||
}
|
||||
},
|
||||
movable: false,
|
||||
category: "machines",
|
||||
emit: true
|
||||
}
|
||||
|
||||
viewInfo["4"] = { // Velocity View
|
||||
name: "velocity",
|
||||
pixel: function(pixel,ctx) {
|
||||
const thermalMin = -5;
|
||||
const thermalMax = 5;
|
||||
|
||||
var temp = pixel.vx || 0;
|
||||
var hue = Math.round((temp - thermalMin) / (thermalMax - thermalMin) * 255);
|
||||
if (hue < 0) {hue = 0}
|
||||
if (hue > 225) {hue = 225}
|
||||
drawSquare(ctx,"hsl("+hue+",100%,50%)",pixel.x,pixel.y)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
explodeAt = function(x,y,radius,fire="fire") {
|
||||
// if fire contains , split it into an array
|
||||
if (fire.indexOf(",") !== -1) {
|
||||
fire = fire.split(",");
|
||||
}
|
||||
var coords = circleCoords(x,y,radius);
|
||||
var power = radius/10;
|
||||
//for (var p = 0; p < Math.round(radius/10+1); p++) {
|
||||
for (var i = 0; i < coords.length; i++) {
|
||||
// damage value is based on distance from x and y
|
||||
var distance = (Math.floor(Math.sqrt(Math.pow(coords[i].x-x,2) + Math.pow(coords[i].y-y,2)))) / radius;
|
||||
const dirX = coords[i].x > x ? 1 : -1;
|
||||
const dirY = coords[i].y > y ? 1 : -1;
|
||||
var damage = Math.random() + distance;
|
||||
// invert
|
||||
damage = 1 - damage;
|
||||
if (damage < 0) { damage = 0; }
|
||||
damage *= power;
|
||||
if (isEmpty(coords[i].x,coords[i].y)) {
|
||||
// create smoke or fire depending on the damage if empty
|
||||
if (damage < 0.02) { } // do nothing
|
||||
else if (damage < 0.2) {
|
||||
createPixel("smoke",coords[i].x,coords[i].y);
|
||||
pixelMap[coords[i].x][coords[i].y].vy = power * (1-distance) * -1;
|
||||
pixelMap[coords[i].x][coords[i].y].vx = power * (1-distance) * dirX;
|
||||
}
|
||||
else {
|
||||
// if fire is an array, choose a random item
|
||||
if (Array.isArray(fire)) {
|
||||
createPixel(fire[Math.floor(Math.random() * fire.length)],coords[i].x,coords[i].y);
|
||||
}
|
||||
else {
|
||||
createPixel(fire,coords[i].x,coords[i].y);
|
||||
}
|
||||
pixelMap[coords[i].x][coords[i].y].vy = 2*power * (1-distance) * -1;
|
||||
pixelMap[coords[i].x][coords[i].y].vx = 2*power * (1-distance) * dirX;
|
||||
}
|
||||
}
|
||||
else if (!outOfBounds(coords[i].x,coords[i].y)) {
|
||||
// damage the pixel
|
||||
var pixel = pixelMap[coords[i].x][coords[i].y];
|
||||
var info = elements[pixel.element];
|
||||
if (info.hardness) { // lower damage depending on hardness(0-1)
|
||||
if (info.hardness < 1) {
|
||||
// more hardness = less damage, logarithmic
|
||||
damage *= Math.pow((1-info.hardness),info.hardness);
|
||||
}
|
||||
else { damage = 0; }
|
||||
}
|
||||
pixel.vy = 3 * (1-distance) * -1;
|
||||
pixel.vx = 3 * (1-distance) * dirX;
|
||||
if (damage > 0.9) {
|
||||
if (Array.isArray(fire)) {
|
||||
var newfire = fire[Math.floor(Math.random() * fire.length)];
|
||||
}
|
||||
else {
|
||||
var newfire = fire;
|
||||
}
|
||||
changePixel(pixel,newfire);
|
||||
// pixel.vy = 10 * damage * (Math.random() < 0.5 ? 1 : -1);
|
||||
// pixel.vx = 10 * damage * (Math.random() < 0.5 ? 1 : -1);
|
||||
continue;
|
||||
}
|
||||
else if (damage > 0.25) {
|
||||
if (isBreakable(pixel)) {
|
||||
breakPixel(pixel);
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
if (Array.isArray(fire)) {
|
||||
var newfire = fire[Math.floor(Math.random() * fire.length)];
|
||||
}
|
||||
else {
|
||||
var newfire = fire;
|
||||
}
|
||||
if (elements[pixel.element].onBreak !== undefined) {
|
||||
elements[pixel.element].onBreak(pixel);
|
||||
}
|
||||
changePixel(pixel,newfire);
|
||||
// pixel.vy = 10 * damage * (Math.random() < 0.5 ? 1 : -1);
|
||||
// pixel.vx = 10 * damage * (Math.random() < 0.5 ? 1 : -1);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (damage > 0.75 && info.burn) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
}
|
||||
pixel.temp += damage*radius*power;
|
||||
pixel.vy = 3 * (1-distance) * -1;
|
||||
pixel.vx = 3 * (1-distance) * dirX;
|
||||
// console.log(pixel.vy);
|
||||
pixelTempCheck(pixel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
elements.acetobacter = {
|
||||
color: ["#328fa8", "#6bbfd6", "#19718a"],
|
||||
category: "life",
|
||||
tempHigh: "102",
|
||||
tempLow: "-2",
|
||||
stateHigh: ["steam","steam","steam","sugar"],
|
||||
stateLow: ["ice","ice","ice","sugar_ice"],
|
||||
breakInto:["dna","dna","dna","water"],
|
||||
behavior: [
|
||||
["XX","M1%30","XX"],
|
||||
["M1%50","XX","M1%50"],
|
||||
["XX","M1%30","XX"]
|
||||
],
|
||||
reactions:{
|
||||
"alcohol" :{ elem1: "acetobacter", elem2:"vinegar", chance:0.2,}
|
||||
}
|
||||
}
|
||||
|
|
@ -61,7 +61,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Sandboxels Offline Use</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<p>Sandboxels can be installed for offline use on mobile. See our <a href="mobile-use">Mobile Use Guide</a>.</p>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,159 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Press Kit - Sandboxels</title>
|
||||
<meta name="description" content="Falling-sand simulation game playable in the browser with a focus on chemistry and life.">
|
||||
<meta name="keywords" content="falling sand, elements, pixel art, simulator, powder">
|
||||
<meta name="author" content="R74n">
|
||||
<meta name="copyright" content="R74n">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="robots" content="all">
|
||||
|
||||
<!--Favicons-->
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="icons/apple-touch-icon.png?v=2">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png?v=2">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png?v=2">
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<link rel="mask-icon" href="icons/safari-pinned-tab.svg?v=2" color="#2167ff">
|
||||
<link rel="shortcut icon" href="icons/favicon.ico?v=2">
|
||||
<meta name="msapplication-TileColor" content="#e6d577">
|
||||
<meta name="theme-color" content="#000000">
|
||||
|
||||
<!--OpenGraph-->
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:site_name" content="Sandboxels">
|
||||
<meta property="og:image" content="https://sandboxels.r74n.com/icons/wallpaper.png">
|
||||
<meta property="og:image:width" content="1980">
|
||||
<meta property="og:image:height" content="971">
|
||||
<meta property="og:image:type" content="image/png">
|
||||
<meta property="og:image:alt" content="A rainforest made in Sandboxels">
|
||||
|
||||
<!--Twitter-->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:site:id" content="1436857621827530753">
|
||||
<meta name="twitter:image" content="https://sandboxels.r74n.com/icons/card.png">
|
||||
<meta name="twitter:image:alt" content="A rainforest made in Sandboxels">
|
||||
<meta name="twitter:creator:id" content="1436857621827530753">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="style.css?nocache=3">
|
||||
<style>
|
||||
#content { font-family:'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; font-size:1.2em; padding-bottom: 5em }
|
||||
h2 { text-align: center; margin-bottom:0; margin-top:45px}
|
||||
h2 {
|
||||
font-family: 'Press Start 2P';
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.centered {
|
||||
margin: auto;
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
.imglink:hover, .gallery a:hover {
|
||||
filter: none
|
||||
}
|
||||
.gallery {
|
||||
display: flex;
|
||||
max-width: 100%;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
.gallery a {
|
||||
flex-shrink: 1;
|
||||
max-width: 40%;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
@media only screen and (max-width: 800px) {
|
||||
h1 { font-size: 1em; }
|
||||
img {max-width: 100%; }
|
||||
.linkgallery {
|
||||
flex-direction: row;
|
||||
}
|
||||
.linkgallery a {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- <h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Press Kit</h1> -->
|
||||
|
||||
<div id="content">
|
||||
|
||||
<a class="imglink" href="https://sandboxels.R74n.com"><img src="icons/cover-3840x1240px-text.png" class="centered"></a>
|
||||
|
||||
<h2>The Game</h2>
|
||||
<p><dfn>Sandboxels</dfn> is a falling-sand simulator playable in any web browser.</p>
|
||||
<p>It brings nostalgia to players of old falling-sand games. This modern take on the genre has a strong focus on chemistry, life, and even food.</p>
|
||||
<p>Players are allowed to freely experiment with over 500 different materials — liquids, powders, metals, plants, bugs, gases, and more — and see how they interact with each other in real time.</p>
|
||||
<p>Sandboxels is releasing on Steam <strong><time>May 16th, 2025</time></strong> for Windows and macOS. Sandboxels is and always will be available to play in the browser as well.</p>
|
||||
|
||||
<h2>The Dev</h2>
|
||||
<p>R74n was founded in 2017 as a web collective. We published Sandboxels in late 2021, and have been marketing it on <a href="https://www.youtube.com/@R74n/shorts" target="_blank">YouTube</a> and <a href="https://tiktok.com/@r74n.com" target="_blank">TikTok</a>, where it has amassed millions of views.</p>
|
||||
|
||||
<h2>Official Trailer</h2>
|
||||
<p style="text-align: center;">Watch the official trailer we posted for the Steam release!</p>
|
||||
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/TgHnD-KRieM?si=twCxVuE2ibNZhP19" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen class="centered"></iframe>
|
||||
|
||||
<h2>Screenshots</h2>
|
||||
<p style="text-align: center;">You are free to use any assets or screenshots in your articles!</p>
|
||||
|
||||
<div class="gallery">
|
||||
<a href="icons/promo1.png" target="_blank"><img src="icons/promo1.png"></a>
|
||||
<a href="icons/promo2.png" target="_blank"><img src="icons/promo2.png"></a>
|
||||
<a href="icons/promo3.png" target="_blank"><img src="icons/promo3.png"></a>
|
||||
<a href="icons/promo4.png" target="_blank"><img src="icons/promo4.png"></a>
|
||||
</div>
|
||||
|
||||
|
||||
<h2>Assets</h2>
|
||||
<p><a href="https://drive.google.com/drive/folders/1wyWliJTc4-xu0L-PfBNo2Fm9_L6OO-LS?usp=sharing" target="_blank">Click here</a> for all logos and assets.</p>
|
||||
|
||||
|
||||
<h2>Pricing</h2>
|
||||
<p>Sandboxels is free to play in the browser, and the Steam version will only cost under a dollar.</p>
|
||||
|
||||
<h2>Quick Facts</h2>
|
||||
<p>Initial release: December 15th, 2021</p>
|
||||
<p>Press Email: <a href="mailto:contact@R74n.com?subject=%5BPress%5D" target="_blank">contact@R74n.com</a></p>
|
||||
<p>Engine: None! :] Just HTML5 and JavaScript</p>
|
||||
|
||||
<h2>Quick Links</h2>
|
||||
<p>
|
||||
<div class="gallery linkgallery">
|
||||
<a href="https://sandboxels.R74n.com/" target="_blank">Play Sandboxels</a>
|
||||
<a href="https://R74n.com/" target="_blank">Developer Website</a>
|
||||
<a href="https://store.steampowered.com/app/3664820/Sandboxels/" target="_blank">Steam</a>
|
||||
<a href="https://www.youtube.com/@R74n/shorts" target="_blank">YouTube</a>
|
||||
<a href="https://tiktok.com/@r74n.com" target="_blank">TikTok</a>
|
||||
<a href="https://discord.gg/ejUc6YPQuS" target="_blank">Discord</a>
|
||||
<a href="https://news.r74n.com/" target="_blank">Newsletter</a>
|
||||
</div></p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-93720349-9"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-93720349-9');
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -9,4 +9,5 @@ https://sandboxels.r74n.com/mobile-use
|
|||
https://sandboxels.r74n.com/mod-list
|
||||
https://sandboxels.r74n.com/offline-use
|
||||
https://sandboxels.r74n.com/feedback
|
||||
https://sandboxels.r74n.com/tips
|
||||
https://sandboxels.r74n.com/tips
|
||||
https://sandboxels.r74n.com/presskit
|
||||
|
|
@ -50,6 +50,12 @@ a:active, a:hover:active, .saveOption:active, .saveOption:hover:active {filter:
|
|||
margin-top: 0!important;
|
||||
border: none!important;
|
||||
}
|
||||
.standalone.mobile #savesButton, .standalone.mobile #extraInfo {
|
||||
display: none
|
||||
}
|
||||
.standalone #extraInfo {
|
||||
display: none
|
||||
}
|
||||
#game {
|
||||
image-rendering: pixelated;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Sandboxels Page</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<h2>Section</h2>
|
||||
|
|
|
|||
|
|
@ -58,7 +58,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> 50 Things to Do in Sandboxels</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<p>Sandboxels is the <strong>ultimate sandbox simulator</strong>, allowing you to experiment with chemistry, ecosystems, food, and much more, with 500+ elements, like sand, water, fire, and plants! Get started on any device with a web browser, even your phone, by visiting the <a href="https://sandboxels.R74n.com/">WEBSITE</a> for free!</p>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@
|
|||
<body>
|
||||
<h1><a href="https://sandboxels.R74n.com" class="backbutton"><</a> Translation</h1>
|
||||
|
||||
</ul>
|
||||
<div id="content">
|
||||
|
||||
<h2>What's This?</h2>
|
||||
|
|
|
|||
Loading…
Reference in New Issue