this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add downpour option to not collide with web elements

Tholp 7b0bbb38 b20a30b0

+36 -2
+21 -1
content/res/scripts/downpour/glue.js
··· 25 25 canvas.width = Math.ceil(rect.width * scale); 26 26 canvas.height = Math.ceil(canvas.parentNode.scrollHeight * scale); 27 27 28 - board = new Board(canvas.width, canvas.height, scale, true, canvas, Math.floor(Date.now() / 1000)); 28 + board = new Board(canvas.width, canvas.height, scale, webcollide.checked, canvas, Math.floor(Date.now() / 1000)); 29 29 board.setRainRate(rainrate.value); 30 30 31 31 paint(); ··· 58 58 let rainrate; 59 59 let scalecontrol; 60 60 let scaledisplay; 61 + let webcollide; 61 62 62 63 function hookControlPanel() 63 64 { ··· 132 133 { 133 134 scale = 1/3; 134 135 scaledisplay.innerHTML = 3; 136 + } 137 + 138 + 139 + webcollide = document.getElementById("downpour_webcollide"); 140 + 141 + webcollide.addEventListener("input", ()=>{ 142 + setCookie("downpour_webcollide", webcollide.checked, 30); 143 + if (webcollide.checked) 144 + { 145 + board.makeWebColliders(window); 146 + } 147 + else 148 + { 149 + board.deleteWebColliders(); 150 + } 151 + }) 152 + if (hasCookie("downpour_webcollide")) 153 + { 154 + webcollide.checked = ("true" === getCookie("downpour_webcollide")); 135 155 } 136 156 } 137 157
+11 -1
content/res/scripts/downpour/src/board.rs
··· 100 100 self.cells[x][y].content = particle; 101 101 } 102 102 103 - fn make_web_colliders(&mut self, window: Window) { 103 + #[wasm_bindgen(js_name = "makeWebColliders")] 104 + pub fn make_web_colliders(&mut self, window: Window) { 104 105 let document = window.document().expect("should have a document on window"); 105 106 let elements = document.get_elements_by_class_name("downpour_collide"); 106 107 let mut i = 0; ··· 147 148 } 148 149 i += 1; 149 150 } 151 + } 152 + 153 + #[wasm_bindgen(js_name = "deleteWebColliders")] 154 + pub fn delete_web_colliders(&mut self) { 155 + Self::for_region(0, 0, self.board_width, self.board_height, |x,y| { 156 + if self.get_particle(x, y) == Particle::WebCollide { 157 + self.set_particle(x, y, Particle::Air); 158 + } 159 + }); 150 160 } 151 161 152 162 // 3x3 with (x,y) as center
+4
skid/templates_generic.sk
··· 79 79 <label for="downpour_focus">Continue raining without browser focus</label> 80 80 </div> 81 81 <div> 82 + <input type="checkbox" id="downpour_webcollide" name="downpour_webcollide" checked /> 83 + <label for="downpour_webcollide">Collide with page elements</label> 84 + </div> 85 + <div> 82 86 <input type="number" id="downpour_tps" name="downpour_tps" min="1" max="120" value="60"/> 83 87 <label for="downpour_tps">Rain background ticks per second</label> 84 88 </div>