diff --git a/src/codegen/transpiler.rs b/src/codegen/transpiler.rs index 8522c6b..d27b389 100644 --- a/src/codegen/transpiler.rs +++ b/src/codegen/transpiler.rs @@ -652,6 +652,8 @@ impl Transpiler { "cos" => "cos", "floor" => "floor", // Perlin noise functions + "pnoise1d" => "pnoise1d", + "pnoise2d" => "pnoise2d", "pnoise3d" => "pnoise3d", // File I/O API "file_open" => "suic_file_open", diff --git a/src/typechecker.rs b/src/typechecker.rs index db49f36..5170fa8 100644 --- a/src/typechecker.rs +++ b/src/typechecker.rs @@ -997,6 +997,33 @@ impl TypeChecker { ); // Perlin noise functions + self.env.functions.insert( + "pnoise1d".to_string(), + FunctionType { + type_params: vec![], + params: vec![ + Type::Float, + Type::Float, + Type::Int, + Type::Int, + ], // x, persistence, octaves, seed + return_type: Type::Float, + }, + ); + self.env.functions.insert( + "pnoise2d".to_string(), + FunctionType { + type_params: vec![], + params: vec![ + Type::Float, + Type::Float, + Type::Float, + Type::Int, + Type::Int, + ], // x, y, persistence, octaves, seed + return_type: Type::Float, + }, + ); self.env.functions.insert( "pnoise3d".to_string(), FunctionType {