From 42c445272a0657d667b71ae20da6189831da5f84 Mon Sep 17 00:00:00 2001 From: illegitimate-egg Date: Tue, 25 Feb 2025 01:44:18 +0000 Subject: [PATCH] Fix world block placement calculations --- .gitignore | 1 + src/main.rs | 29 ++++++++++++++--------------- src/world.wrld | Bin 131078 -> 131078 bytes 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index ea8c4bf..14dbc06 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +world.wrld diff --git a/src/main.rs b/src/main.rs index 79edfcf..99f2ef1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -200,23 +200,22 @@ fn handle_client(mut stream: TcpStream, client_number: u8, players_arc_clone: Ar let mode = payload_buffer[6]; let mut block_type = payload_buffer[7]; - - // Sanity check (Stop losers from losing) - if position_x > SIZE_X || position_y > SIZE_Y || position_z > SIZE_Z { - // Fuck you! - let _ = &mut stream.write(&client_disconnect("Block position was not within world bounds, naughty boy")); - break; - } - - if mode == 0x00 { - block_type = 0x00; // Air - } - - let world_offset: u32 = position_x as u32 + (position_z as u32 * SIZE_X as u32) + (position_y as u32 * SIZE_X as u32 * SIZE_Z as u32); - { let mut world_dat = world_arc_clone.lock().unwrap(); - world_dat.data[world_offset as usize] = block_type; + + // Sanity check (Stop losers from losing) + if position_x > world_dat.size_x || position_y > world_dat.size_y || position_z > world_dat.size_z { + // Fuck you! + let _ = &mut stream.write(&client_disconnect("Block position was not within world bounds, naughty boy")); + break; + } + + if mode == 0x00 { + block_type = 0x00; // Air + } + + let world_offset: u32 = position_x as u32 + (position_z as u32 * world_dat.size_x as u32) + (position_y as u32 * world_dat.size_x as u32 * world_dat.size_z as u32); + world_dat.data[world_offset as usize] = block_type; } let mut update_block_bytes: Vec = Vec::new(); diff --git a/src/world.wrld b/src/world.wrld index 18b527a8145fa38cd96db6c572f327105ada9b6f..2d6c30dd13e64c98d6350c6f23ed80b966bc44bb 100644 GIT binary patch literal 131078 zcmeI*&5qhg6b4X>z_J%0qEVzQvgl+JtbT>O|5J^BaHnkwO_gth@o+39ZrpsXs$*Bg z#o$zbsvp&#FBSp>2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlykRhzk7NOEZAK%XYKbZnsVI`F`UaY_`n~O7czXA3M-@rL6tS9hBt5?f=z#|LLCX zzc=a!0t5&UAn?Efm4yHS0uLatKlfo+7k6pbFU7eb5X>KTuV25uz3mRe{tDNJT^IP| ze6N{fnr{Ely{VBilxz7WTj%7f#=rYBdh(&oX65%)D}SiQW6jT>oBcIvzADI{lRrm0 z*mwOO_i6Nm4-dx455LG7|M2|D0NTx&`P2ZS{V(u44`AH?lKeQ?@2(`@C&oviC_j#N zyUU+H=iyIQ`SW)Y^pF4n0t5&UAV7e?LkkQw(y%V>Y_NWBYR_-q+8T83a%_TcZ|&dn zmOlB(`GWc(-F|&M9`owQbiUo1H>TaOssEcl<0U&koHxVzyqoO&xY_qdUH$(4sQ8DH z`uXb4^Zc&HGyRkKaQ}mTUEd?)j~@SMK7anC{kyG`b2|A<8wn5~K!5-N0t5)GNnm)5 zJFJWQ9~|5xh&$#KiCpPJf#r~aStb+aK*|AzBj{XTn6_Mbh-d;e%M^7F&| z^XD=1>i_g{v6TP;0t5&UAVA>B1%?`9SQm4|>;G;K#qAD({>t_A`t|VJ|6boD-)m-> zrrXc{{C{;N-wZsj{!1Uf?CZzF7>D&4JUf5o00r}lUq65H{&(kIYcO{S`c?V!C)vY- z`J2q!NPqwV0t5&UAVAd?tcCG-|Z3@|1I+SQ@c!R;^YxJ)v5OTqmpw> zujQNjuVtB>>b_PQw{@!X^Zg09R6dDX?YsWx_^0#vf7=7* z3*Ns-9lLP-yzuwm!~GBXm7PC{Be1YvRWyGt`(HMHFY~q#AV7cs0RjXF5FoG`f%A9b z=iikuTt5Wsm-W|g&AHOnurrr%{k(Af8t%XPKllI7NSS&yO#hk6wR{-ajvzUwi+9mNUVRy=uhod5v>1PBlyK!5-N0#76mum6Je>)NlMFWmq5@q40^-B1Y- zAV7cs0RjXF5FkKcwm`W4T)2Mjul=|0Va!~D{SW)i?6w#I0t5&UAV7cs0RjXF5V)s6 zy#5V-{=oO&?|HbjMSuVS0t5&UAV7cs0RjYO2}IvNh~{T?T8IDv0t5&Ucw~Wp0XI8) AKmY&$ delta 153 zcmZo`;Am^$*dX$Cv%}A0Y?~E6=&)>MW9(tss=zpziCK_AaJ%6P#xnk?3XC0$zu@dn QLhS7hFBsGL$tRQf0XGOapa1{>