noita_entangled_worlds/ewext/src/noita.rs

17 lines
509 B
Rust
Raw Normal View History

2024-09-17 14:31:08 +03:00
use std::ffi::c_void;
pub(crate) struct ChunkMap {
this: *mut c_void,
}
impl ChunkMap {
unsafe fn get_cell(&self, x: u32, y: u32) {
let x = x as isize;
let y = y as isize;
let index = ((((y) >> 9) - 256 & 511) * 512 + (((x) >> 9) - 256 & 511)) * 4;
let chunk_arr = self.this.offset(8).cast::<*const c_void>().read();
let chunk = chunk_arr.offset(index).cast::<*const c_void>().read();
let pixel = chunk.offset(((y & 511) << 9 | x & 511) * 4);
}
}