From fac32af2f15cd67fabb152068b8e41337c8b0e9d Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Fri, 23 May 2014 14:31:29 -0400 Subject: [PATCH] First commit of liquid simulation stuff --- code/controllers/master_controller.dm | 16 +++++++++++++++- code/modules/liquid/splash_simulation.dm | 15 +++++++++++---- icons/effects/liquid.dmi | Bin 1061 -> 2279 bytes 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index c1628fcdeaf..b98c9ffac48 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -26,6 +26,7 @@ datum/controller/game_controller var/powernets_cost = 0 var/nano_cost = 0 var/events_cost = 0 + var/puddles_cost var/ticker_cost = 0 var/gc_cost = 0 var/total_cost = 0 @@ -214,6 +215,11 @@ datum/controller/game_controller/proc/process() processEvents() events_cost = (world.timeofday - timer) / 10 + //PUDDLES + timer = world.timeofday + processPuddles() + puddles_cost = (world.timeofday - timer) / 10 + //TICKER timer = world.timeofday last_thing_processed = ticker.type @@ -227,7 +233,7 @@ datum/controller/game_controller/proc/process() gc_cost = (world.timeofday - timer) / 10 //TIMING - total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + ticker_cost + gc_cost + total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + puddles_cost + ticker_cost + gc_cost var/end_time = world.timeofday if(end_time < start_time) @@ -318,6 +324,14 @@ datum/controller/game_controller/proc/process() checkEvent() +/datum/controller/game_controller/proc/processPuddles() + last_thing_processed = /datum/puddle + + for (var/datum/puddle/Puddle in puddles) + if (Puddle) + Puddle.process() + continue + datum/controller/game_controller/proc/Recover() //Mostly a placeholder for now. var/msg = "## DEBUG: [time2text(world.timeofday)] MC restarted. Reports:\n" for(var/varname in master_controller.vars) diff --git a/code/modules/liquid/splash_simulation.dm b/code/modules/liquid/splash_simulation.dm index d9147f60b18..da344cb609b 100644 --- a/code/modules/liquid/splash_simulation.dm +++ b/code/modules/liquid/splash_simulation.dm @@ -74,7 +74,7 @@ obj/effect/liquid/proc/spread() //world << "DEBUG: liquid spread!" var/surrounding_volume = 0 var/list/spread_directions = list(1,2,4,8) - var/turf/loc_turf = loc + var/turf/loc_turf = get_turf(src) for(var/direction in spread_directions) var/turf/T = get_step(src,direction) if(!T) @@ -137,24 +137,31 @@ obj/effect/liquid/Destroy() obj/effect/liquid/proc/update_icon2() //icon_state = num2text( max(1,min(7,(floor(volume),10)/10)) ) - + overlays = null switch(volume) - if(0 to 0.1) + if(0 to 0.2) del(src) - if(0.1 to 5) + if(0.2 to 5) icon_state = "1" + overlays += image('icons/effects/liquid.dmi', src , "1-1", 5) if(5 to 10) icon_state = "2" + overlays += image('icons/effects/liquid.dmi', src , "2-1", 5) if(10 to 20) icon_state = "3" + overlays += image('icons/effects/liquid.dmi', src , "3-1", 5) if(20 to 30) icon_state = "4" + overlays += image('icons/effects/liquid.dmi', src , "4-1", 5) if(30 to 40) icon_state = "5" + overlays += image('icons/effects/liquid.dmi', src , "5-1", 5) if(40 to 50) icon_state = "6" + overlays += image('icons/effects/liquid.dmi', src , "6-1", 5) if(50 to INFINITY) icon_state = "7" + layer = 5 turf/proc/can_accept_liquid(from_direction) return 0 diff --git a/icons/effects/liquid.dmi b/icons/effects/liquid.dmi index 258a0fb2e62e5d73a290916ef66728819269dab1..962dace0672a581fb9bc3240f282dc6cd6e3f1d1 100644 GIT binary patch literal 2279 zcmai0c{J4T8vl-cU&@lD5DG;@B-UPe(=iGD8{o{R~=RD8*e4h6`@A;h16MxIxn3qeO3jhFKQxm8a z!{#v-ii3@@C%L;xFiauB+71T27vdi59SHLd@CSg0=;YBiTs>f+*d?v-gljtIZc2m> zo>okgp^7mj`{mi1#B_9AyILAto5M`ppKSW3c~Rf7mk24@b;y@~&g+E%uZwXxzn|Xj zRo@^NZPz?82*qBOxMp@s0IgRLLGwF$`(4^3LRV<(iW{l6fU z!?ZvCv1tU8Y2kPFvKZfF=k?<~Vha2CDp6C;at#33k4&LgtskPv^A`6dZ6w)uDck-v zW3Wqv@wd+Thu#vLT%i6dr3s1bWJ74c4z|=l5TW+;NiITg8J{?MyKS{>v6v&4l{@yd zEHtAChePtUn)+4b;NjUrJBX<^{I+Mhr>EC?rYey?!}AD+y!~~pJv?BcZ6fenzXpd= zCb~C`YHE9(25h>z1ExaECIu(-kM#j*3T!D*Rg~QI^jvn9-E5C9!T6UiDv+aZSmi8v zq~o=BovUH=VElLenhx~_lw1Nx&T>13|KZONvUb-T_GV+@YtXe+PfTs!`drjsbXC$YNB2g(xFNhRHG?a`Glo9v?k7FW7sN3fHO}u zBdh59L6gLw$D<7Jt$t$M3p~8Dx`BuO=WI0TB8u~NV>y5-KYIa2$K^hEI4({g->cI+ z)r@3Vb-`^O6v#}#=Yg%yTw79$v*CMtkbmTp7qu}Ae`S4bfL)d_UO{MzV#Td%i}O=j zkq$$l>i#aA))BRdJ?&-qEsspse$l5%{&qpOq zpo|t8A@(`{eB8e5j?WNP{F1na2mh6|RtR$zKrguqKMv;zD?19L^6@3NgKtIUGVg>e zxE!t+wUDUbQV)1JModdPFp3Q<ta)cxrQCB z59QMBm^Jd+(&w=I+AQ_J}+GqR3A|sP%=foWwILWTGkZTj}S&cxNrQ1sT*lYF;%#I&bCv z*(@YFk+7*iN@Pzt6;O4qU?QStK~ZLq#^Y+R-7s1kw5KM{i9;?@I2DH_mYnMO&1pjV zbr9q3Uo4Ft0Yw-a2Dyl&Raz`@2+c>*3OiPbkP<9CY%yq?7<1+%Tme8acL@*AcTZ3z6(p`W2?a0lW`K5Mye=r3(;Z! zrr{aBG#Eeq$lWk0Veg%08nyVlKWHMkzx{pJ7F@U?~xmOwAt4H8Jx&Cg+e zS8rMnmU-(sgy>u?9!qN0CBcOeD#UtwHz$W-uIg|e*;w!K@7SmgZuGESfoAr#5y*wVlc9ns*<&%SF`HUyc&7h{>rE{loyE0-QGT4y74tf zBHcYJ(Z}|@X5@nVVxHVfCe~`=&4H@{X69~DTq9j$;AC3VftT0*+SMyNZ`w54>J?u` zvIa(~Cz3vCgmDvSRm7HA>LghyiM5 zBe}?Dnd?ytSD%PSL#Tf(bw9f=N~&!yoWINl5z6TTZ94;bB}RvbQGUCHGto3(inU~Q-}G2Q0fkVxp#4=+YUt}Rr=Bm8 zDNtU?E?D>Dh8Dpsz2^00Ge^hyMVpkP=q`}&VLMA+h>ZcRFXG->?ZCCy4^}^1+z}QG zJ)fZ)ZOo5D?sOe)m}m7b->`Q1VD{w`L*_zy`UCS0`g@Bfi;j*8E_2BImZSeAJ`AP$ z|EWI|GtpIY{CSrH+GOo99=~<*-=)Gwgc7|$`HcuXjX~$f9`t{j>!Lml${WK%@|NZC iq_0z~=|44=&c64LOi}Ei$u47Z0Za|ep_K-%F@FPHzFl4b literal 1061 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo%~c^0B`&GO$wiq3C7Jno3=9=> zT2EPXwHS!FJ+vwpwZGN>j|6BC@iD@gcqiB4K@d%n|*yd8HfKRlH<)<1Khy7PA4 zi}C6rvlgj*{9$UTaYd9f{qMU=)`q$#ofKai3$5lC`5Ulj?D*)G^lO$glbk?-dT z_uH(m?#37V-23!<{qdS&MaB}9h8~s)6B&$z9Nd^rcrZwEDkw9ikSVx_{X_2`$uIvI z4mwk87K&3A{i<%kMf2VT8y~p* zCUKUnk3b;xzWKkLJv3>Z>e+G?sY6AK)PgI7I*m8qbtvzNm^s7py(&Qd8;Gu z0Bkt z_2+lwxYoyr&UqZN;;O-lMy9Xt9!uMOyZR%(Pbq2B%5+z|?>#|+26Nj?n2l1dH*TF; zP_M&yd&+SIMZ0+(6B}5ABv!ycd7anjUst#I%QHjlXW~ z=jSie)3&XRt+7x0tf?VBWu=L+hvUr63!dz}cuwp3`)8~@O_$iq960_gczbH*<5k-> z_*VM-=FwnX8Z%>(+KWRISsrX(;``5|`m=EY@5jWukMuNH>{fQM9~V0C(z^Yuc+!DC zcC~$`SKmLE-~ZwH@9E3==ij+}e*NR$LIR1oDoNW7F3B(ctg!u^gwpY6!51EABx$}d z42T8_U+&U!fW7e+>)kHdGYU%;x$0V2?o8@w5dkID z?JAM%bF#ZDzO#57csnDaWo|Zic}9FQ$J?fLz8rfFzX`jtbDz<@Jq<6szrGep;%@W@ pnmWT#!FYd?gxNlw3&DSwr!TW?y7Bx|GceyXc)I$ztaD0e0sz9b%QXN1