mirror of
https://github.com/IntQuant/noita_entangled_worlds.git
synced 2025-10-18 22:53:16 +00:00
get_cell impl in ewext (maybe)
This commit is contained in:
parent
eaa8c2832c
commit
da2cb9b625
4 changed files with 35 additions and 1 deletions
15
.vscode/c_cpp_properties.json
vendored
Normal file
15
.vscode/c_cpp_properties.json
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Linux",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**"
|
||||
],
|
||||
"defines": [],
|
||||
"cStandard": "c17",
|
||||
"cppStandard": "c++17",
|
||||
"intelliSenseMode": "linux-clang-x64"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
@ -9,5 +9,6 @@
|
|||
"Lua.diagnostics.globals": [
|
||||
"wait",
|
||||
"async"
|
||||
]
|
||||
],
|
||||
"C_Cpp.default.compilerPath": "/usr/bin/clang++"
|
||||
}
|
|
@ -4,6 +4,8 @@ use lua_bindings::{lua_State, Lua51};
|
|||
|
||||
mod lua_bindings;
|
||||
|
||||
mod noita;
|
||||
|
||||
static LUA: LazyLock<Lua51> = LazyLock::new(|| unsafe {
|
||||
let lib = libloading::Library::new("./lua51.dll").expect("library to exist");
|
||||
Lua51::from_library(lib).expect("library to be lua")
|
||||
|
|
16
ewext/src/noita.rs
Normal file
16
ewext/src/noita.rs
Normal file
|
@ -0,0 +1,16 @@
|
|||
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);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue