diff --git a/.gitignore b/.gitignore
index b3d95c0..c68b731 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@ out/
splashkit/
generated/
__pycache__/
+_framework/
\ No newline at end of file
diff --git a/Browser_IDE/CSharpWasm/bin/CSharpWasm.dll b/Browser_IDE/CSharpWasm/bin/CSharpWasm.dll
new file mode 100644
index 0000000..3c0fa1d
Binary files /dev/null and b/Browser_IDE/CSharpWasm/bin/CSharpWasm.dll differ
diff --git a/Browser_IDE/CSharpWasm/bin/System.Console.dll b/Browser_IDE/CSharpWasm/bin/System.Console.dll
new file mode 100755
index 0000000..486ae0f
Binary files /dev/null and b/Browser_IDE/CSharpWasm/bin/System.Console.dll differ
diff --git a/Browser_IDE/CSharpWasm/bin/System.Private.CoreLib.dll b/Browser_IDE/CSharpWasm/bin/System.Private.CoreLib.dll
new file mode 100755
index 0000000..ffa92d2
Binary files /dev/null and b/Browser_IDE/CSharpWasm/bin/System.Private.CoreLib.dll differ
diff --git a/Browser_IDE/CSharpWasm/bin/System.Runtime.dll b/Browser_IDE/CSharpWasm/bin/System.Runtime.dll
new file mode 100755
index 0000000..0e2db79
Binary files /dev/null and b/Browser_IDE/CSharpWasm/bin/System.Runtime.dll differ
diff --git a/Browser_IDE/CSharpWasm/bin/mscorlib.dll b/Browser_IDE/CSharpWasm/bin/mscorlib.dll
new file mode 100755
index 0000000..f79abde
Binary files /dev/null and b/Browser_IDE/CSharpWasm/bin/mscorlib.dll differ
diff --git a/Browser_IDE/CSharpWasm/bin/netstandard.dll b/Browser_IDE/CSharpWasm/bin/netstandard.dll
new file mode 100755
index 0000000..fd34bf9
Binary files /dev/null and b/Browser_IDE/CSharpWasm/bin/netstandard.dll differ
diff --git a/Browser_IDE/CSharpWasm/main.js b/Browser_IDE/CSharpWasm/main.js
new file mode 100644
index 0000000..b8b414d
--- /dev/null
+++ b/Browser_IDE/CSharpWasm/main.js
@@ -0,0 +1,71 @@
+import { dotnet } from "./wwwroot/_framework/dotnet.js";
+import methods from "./splashKitMethods.generated.js";
+
+const parseMethods = (methods) => {
+ const methodList = methods
+ .split(",")
+ .map((method) => method.trim().replace("\n", ""))
+ .filter(Boolean);
+
+ const bindingsFunctions = {};
+
+ for (const name of methodList) {
+ try {
+ bindingsFunctions[name] = eval(name);
+ } catch (e) {
+ console.warn(e);
+ }
+ }
+
+ return bindingsFunctions;
+};
+
+const loadDotNet = async () => {
+ const { setModuleImports, getAssemblyExports, getConfig } = await dotnet
+ .withDiagnosticTracing(false)
+ .withApplicationArgumentsFromQuery()
+ .create();
+
+ const skFunctions = parseMethods(methods);
+
+ setModuleImports("main.js", {
+ window: {
+ location: {
+ href: () => globalThis.window.location.href,
+ },
+ },
+ SplashKitBackendWASM: skFunctions,
+ });
+
+ const config = getConfig();
+ const exports = await getAssemblyExports(config.mainAssemblyName);
+ return exports;
+};
+
+const CompileAndRun = async (code, reportError) => {
+ try {
+ const exports = await loadDotNet();
+ const result = await exports.CSharpCodeRunner.CompileAndRun(code);
+ if (result.includes("Compilation failed")) {
+ const errors = result.split(":");
+ const errorLine = errors[1].split("Line");
+
+ const indexCorrector = 1;
+ const filePath = "__USERCODE__/code/main.cs";
+ reportError(
+ filePath,
+ result,
+ Number(errorLine[1]) + indexCorrector,
+ null,
+ true,
+ );
+ }
+ } catch (error) {
+ console.error("Error during code execution:", error);
+ }
+};
+
+// This event will be trigger by the csharp compiler
+document.addEventListener("compileAndRun", (ev) => {
+ CompileAndRun(ev.detail.program[0].source, ev.detail.reportError);
+});
diff --git a/Browser_IDE/CSharpWasm/splashKitMethods.generated.js b/Browser_IDE/CSharpWasm/splashKitMethods.generated.js
new file mode 100644
index 0000000..4e41d20
--- /dev/null
+++ b/Browser_IDE/CSharpWasm/splashKitMethods.generated.js
@@ -0,0 +1,912 @@
+const methods = `
+ accept_all_new_connections,
+ accept_new_connection,
+ add_column,
+ add_column_relative,
+ alpha_of,
+ angle_between,
+ animation_count,
+ animation_current_cell,
+ animation_current_vector,
+ animation_ended,
+ animation_entered_frame,
+ animation_frame_time,
+ animation_index,
+ animation_name,
+ animation_script_name,
+ animation_script_named,
+ any_key_pressed,
+ apply_matrix,
+ assign_animation,
+ audio_ready,
+ base64_decode,
+ base64_encode,
+ bin_to_dec,
+ bin_to_hex,
+ bin_to_oct,
+ bitmap_bounding_circle,
+ bitmap_bounding_rectangle,
+ bitmap_button,
+ bitmap_cell_center,
+ bitmap_cell_circle,
+ bitmap_cell_columns,
+ bitmap_cell_count,
+ bitmap_cell_height,
+ bitmap_cell_offset,
+ bitmap_cell_rectangle,
+ bitmap_cell_rows,
+ bitmap_cell_width,
+ bitmap_center,
+ bitmap_circle_collision,
+ bitmap_collision,
+ bitmap_filename,
+ bitmap_height,
+ bitmap_name,
+ bitmap_named,
+ bitmap_point_collision,
+ bitmap_quad_collision,
+ bitmap_ray_collision,
+ bitmap_rectangle_collision,
+ bitmap_rectangle_of_cell,
+ bitmap_set_cell_details,
+ bitmap_triangle_collision,
+ bitmap_valid,
+ bitmap_width,
+ blue_of,
+ brightness_of,
+ broadcast_message,
+ button,
+ calculate_collision_direction,
+ call_for_all_sprites,
+ call_on_sprite_event,
+ camera_position,
+ camera_x,
+ camera_y,
+ center_camera_on,
+ center_point,
+ check_network_activity,
+ checkbox,
+ circle_at,
+ circle_quad_intersect,
+ circle_radius,
+ circle_ray_intersection,
+ circle_triangle_intersect,
+ circle_x,
+ circle_y,
+ circles_intersect,
+ clear_bitmap,
+ clear_messages,
+ clear_screen,
+ clear_window,
+ close_all_connections,
+ close_all_servers,
+ close_all_windows,
+ close_audio,
+ close_connection,
+ close_current_window,
+ close_log_process,
+ close_message,
+ close_server,
+ close_window,
+ closest_point_on_circle,
+ closest_point_on_line,
+ closest_point_on_line_from_circle,
+ closest_point_on_lines,
+ closest_point_on_rect_from_circle,
+ closest_point_on_triangle_from_circle,
+ color_alice_blue,
+ color_antique_white,
+ color_aqua,
+ color_aquamarine,
+ color_azure,
+ color_beige,
+ color_bisque,
+ color_black,
+ color_blanched_almond,
+ color_blue,
+ color_blue_violet,
+ color_bright_green,
+ color_brown,
+ color_burly_wood,
+ color_cadet_blue,
+ color_chartreuse,
+ color_chocolate,
+ color_coral,
+ color_cornflower_blue,
+ color_cornsilk,
+ color_crimson,
+ color_cyan,
+ color_dark_blue,
+ color_dark_cyan,
+ color_dark_goldenrod,
+ color_dark_gray,
+ color_dark_green,
+ color_dark_khaki,
+ color_dark_magenta,
+ color_dark_olive_green,
+ color_dark_orange,
+ color_dark_orchid,
+ color_dark_red,
+ color_dark_salmon,
+ color_dark_sea_green,
+ color_dark_slate_blue,
+ color_dark_slate_gray,
+ color_dark_turquoise,
+ color_dark_violet,
+ color_deep_pink,
+ color_deep_sky_blue,
+ color_dim_gray,
+ color_dodger_blue,
+ color_firebrick,
+ color_floral_white,
+ color_forest_green,
+ color_fuchsia,
+ color_gainsboro,
+ color_ghost_white,
+ color_gold,
+ color_goldenrod,
+ color_gray,
+ color_green,
+ color_green_yellow,
+ color_honeydew,
+ color_hot_pink,
+ color_indian_red,
+ color_indigo,
+ color_ivory,
+ color_khaki,
+ color_lavender,
+ color_lavender_blush,
+ color_lawn_green,
+ color_lemon_chiffon,
+ color_light_blue,
+ color_light_coral,
+ color_light_cyan,
+ color_light_goldenrod_yellow,
+ color_light_gray,
+ color_light_green,
+ color_light_pink,
+ color_light_salmon,
+ color_light_sea_green,
+ color_light_sky_blue,
+ color_light_slate_gray,
+ color_light_steel_blue,
+ color_light_yellow,
+ color_lime,
+ color_lime_green,
+ color_linen,
+ color_magenta,
+ color_maroon,
+ color_medium_aquamarine,
+ color_medium_blue,
+ color_medium_orchid,
+ color_medium_purple,
+ color_medium_sea_green,
+ color_medium_slate_blue,
+ color_medium_spring_green,
+ color_medium_turquoise,
+ color_medium_violet_red,
+ color_midnight_blue,
+ color_mint_cream,
+ color_misty_rose,
+ color_moccasin,
+ color_navajo_white,
+ color_navy,
+ color_old_lace,
+ color_olive,
+ color_olive_drab,
+ color_orange,
+ color_orange_red,
+ color_orchid,
+ color_pale_goldenrod,
+ color_pale_green,
+ color_pale_turquoise,
+ color_pale_violet_red,
+ color_papaya_whip,
+ color_peach_puff,
+ color_peru,
+ color_pink,
+ color_plum,
+ color_powder_blue,
+ color_purple,
+ color_red,
+ color_rosy_brown,
+ color_royal_blue,
+ color_saddle_brown,
+ color_salmon,
+ color_sandy_brown,
+ color_sea_green,
+ color_sea_shell,
+ color_sienna,
+ color_silver,
+ color_sky_blue,
+ color_slate_blue,
+ color_slate_gray,
+ color_slider,
+ color_snow,
+ color_spring_green,
+ color_steel_blue,
+ color_swinburne_red,
+ color_tan,
+ color_teal,
+ color_thistle,
+ color_to_string,
+ color_tomato,
+ color_transparent,
+ color_turquoise,
+ color_violet,
+ color_wheat,
+ color_white,
+ color_white_smoke,
+ color_yellow,
+ color_yellow_green,
+ connection_count,
+ connection_ip,
+ connection_named,
+ connection_port,
+ contains,
+ convert_to_double,
+ convert_to_integer,
+ cosine,
+ create_animation,
+ create_bitmap,
+ create_json,
+ create_server,
+ create_sprite,
+ create_sprite_pack,
+ create_timer,
+ current_clip,
+ current_sprite_pack,
+ current_ticks,
+ current_window,
+ current_window_has_border,
+ current_window_height,
+ current_window_is_fullscreen,
+ current_window_position,
+ current_window_toggle_border,
+ current_window_toggle_fullscreen,
+ current_window_width,
+ current_window_x,
+ current_window_y,
+ dec_to_bin,
+ dec_to_hex,
+ dec_to_ipv4,
+ dec_to_oct,
+ delay,
+ deregister_callback_on_key_down,
+ deregister_callback_on_key_typed,
+ deregister_callback_on_key_up,
+ deregister_free_notifier,
+ disable_interface,
+ display_details,
+ display_dialog,
+ display_height,
+ display_name,
+ display_width,
+ display_x,
+ display_y,
+ distant_point_on_circle,
+ distant_point_on_circle_heading,
+ dot_product,
+ download_bitmap,
+ download_font,
+ download_music,
+ download_sound_effect,
+ draw_all_sprites,
+ draw_bitmap,
+ draw_bitmap_on_bitmap,
+ draw_bitmap_on_window,
+ draw_circle,
+ draw_circle_on_bitmap,
+ draw_circle_on_window,
+ draw_collected_text,
+ draw_ellipse,
+ draw_ellipse_on_bitmap,
+ draw_ellipse_on_window,
+ draw_interface,
+ draw_line,
+ draw_line_on_bitmap,
+ draw_line_on_window,
+ draw_pixel,
+ draw_pixel_on_bitmap,
+ draw_pixel_on_window,
+ draw_quad,
+ draw_quad_on_bitmap,
+ draw_quad_on_window,
+ draw_rectangle,
+ draw_rectangle_on_bitmap,
+ draw_rectangle_on_window,
+ draw_sprite,
+ draw_text,
+ draw_text_on_bitmap,
+ draw_text_on_window,
+ draw_triangle,
+ draw_triangle_on_bitmap,
+ draw_triangle_on_window,
+ enable_interface,
+ end_inset,
+ end_panel,
+ end_popup,
+ end_reading_text,
+ end_treenode,
+ enter_column,
+ fade_all_sound_effects_out,
+ fade_music_in,
+ fade_music_out,
+ fade_sound_effect_out,
+ fetch_new_connection,
+ file_as_string,
+ fill_circle,
+ fill_circle_on_bitmap,
+ fill_circle_on_window,
+ fill_ellipse,
+ fill_ellipse_on_bitmap,
+ fill_ellipse_on_window,
+ fill_quad,
+ fill_quad_on_bitmap,
+ fill_quad_on_window,
+ fill_rectangle,
+ fill_rectangle_on_bitmap,
+ fill_rectangle_on_window,
+ fill_triangle,
+ fill_triangle_on_bitmap,
+ fill_triangle_on_window,
+ font_has_size,
+ font_load_size,
+ font_named,
+ free_all_animation_scripts,
+ free_all_bitmaps,
+ free_all_fonts,
+ free_all_json,
+ free_all_music,
+ free_all_sound_effects,
+ free_all_sprites,
+ free_all_timers,
+ free_animation,
+ free_animation_script,
+ free_bitmap,
+ free_font,
+ free_json,
+ free_music,
+ free_resource_bundle,
+ free_response,
+ free_sound_effect,
+ free_sprite,
+ free_sprite_pack,
+ free_timer,
+ get_font_style,
+ get_interface_label_width,
+ get_pixel,
+ get_pixel_from_window,
+ get_system_font,
+ greatest_common_divisor,
+ green_of,
+ has_animation_named,
+ has_animation_script,
+ has_bitmap,
+ has_connection,
+ has_font,
+ has_gpio,
+ has_incoming_requests,
+ has_messages,
+ has_music,
+ has_new_connections,
+ has_resource_bundle,
+ has_server,
+ has_sound_effect,
+ has_sprite,
+ has_sprite_pack,
+ has_timer,
+ has_window,
+ header,
+ hex_str_to_ipv4,
+ hex_to_bin,
+ hex_to_dec,
+ hex_to_dec_string,
+ hex_to_mac,
+ hex_to_oct,
+ hide_mouse,
+ hsb_color,
+ hsb_color_slider,
+ http_get,
+ http_post,
+ http_response_to_string,
+ hue_of,
+ identity_matrix,
+ index_of,
+ init_custom_logger,
+ inset_rectangle,
+ interface_enabled,
+ interface_style_panel,
+ intersection,
+ ipv4_to_dec,
+ ipv4_to_hex,
+ is_binary,
+ is_connection_open,
+ is_current_window,
+ is_delete_request_for,
+ is_double,
+ is_get_request_for,
+ is_hex,
+ is_integer,
+ is_number,
+ is_octal,
+ is_options_request_for,
+ is_post_request_for,
+ is_prime_number,
+ is_put_request_for,
+ is_request_for,
+ is_trace_request_for,
+ is_valid_ipv4,
+ is_valid_mac,
+ is_zero_vector,
+ json_count_keys,
+ json_from_color,
+ json_from_file,
+ json_from_string,
+ json_has_key,
+ json_read_array,
+ json_read_bool,
+ json_read_number,
+ json_read_number_as_double,
+ json_read_number_as_int,
+ json_read_object,
+ json_read_string,
+ json_set_array,
+ json_set_bool,
+ json_set_number,
+ json_set_object,
+ json_set_string,
+ json_to_color,
+ json_to_file,
+ json_to_string,
+ key_down,
+ key_name,
+ key_released,
+ key_typed,
+ key_up,
+ label_element,
+ last_connection,
+ last_element_changed,
+ last_element_confirmed,
+ least_common_multiple,
+ leave_column,
+ length_of,
+ line_from,
+ line_intersection_point,
+ line_intersects_circle,
+ line_intersects_lines,
+ line_intersects_rect,
+ line_length,
+ line_length_squared,
+ line_mid_point,
+ line_normal,
+ line_to_string,
+ lines_from,
+ lines_intersect,
+ load_animation_script,
+ load_bitmap,
+ load_font,
+ load_music,
+ load_resource_bundle,
+ load_sound_effect,
+ log,
+ mac_to_hex,
+ matrix_inverse,
+ matrix_multiply,
+ matrix_to_string,
+ message_connection,
+ message_count,
+ message_data,
+ message_data_bytes,
+ message_host,
+ message_port,
+ message_protocol,
+ mouse_clicked,
+ mouse_down,
+ mouse_movement,
+ mouse_position,
+ mouse_position_vector,
+ mouse_shown,
+ mouse_up,
+ mouse_wheel_scroll,
+ mouse_x,
+ mouse_y,
+ move_camera_by,
+ move_camera_to,
+ move_current_window_to,
+ move_mouse,
+ move_sprite,
+ move_sprite_to,
+ move_window_to,
+ music_filename,
+ music_name,
+ music_named,
+ music_playing,
+ music_valid,
+ music_volume,
+ my_ip,
+ name_for_connection,
+ new_connection_count,
+ next_web_request,
+ number_box,
+ number_of_displays,
+ oct_to_bin,
+ oct_to_dec,
+ oct_to_hex,
+ open_audio,
+ open_connection,
+ open_popup,
+ open_window,
+ option_defaults,
+ option_draw_to,
+ option_flip_x,
+ option_flip_xy,
+ option_flip_y,
+ option_line_width,
+ option_part_bmp,
+ option_rotate_bmp,
+ option_scale_bmp,
+ option_to_screen,
+ option_to_world,
+ option_with_animation,
+ option_with_bitmap_cell,
+ paragraph,
+ path_to_resource,
+ path_to_resources,
+ pause_music,
+ pause_timer,
+ pixel_drawn_at_point,
+ play_music,
+ play_sound_effect,
+ point_at,
+ point_at_origin,
+ point_in_circle,
+ point_in_quad,
+ point_in_rectangle,
+ point_in_triangle,
+ point_in_window,
+ point_line_distance,
+ point_offset_by,
+ point_offset_from_origin,
+ point_on_line,
+ point_on_screen,
+ point_point_angle,
+ point_point_distance,
+ point_to_string,
+ pop_clip,
+ process_events,
+ push_clip,
+ quad_from,
+ quad_ray_intersection,
+ quads_intersect,
+ quit_requested,
+ random_bitmap_point,
+ random_color,
+ random_rgb_color,
+ random_screen_point,
+ random_window_point,
+ raspi_cleanup,
+ raspi_get_mode,
+ raspi_init,
+ raspi_read,
+ raspi_set_mode,
+ raspi_set_pull_up_down,
+ raspi_set_pwm_dutycycle,
+ raspi_set_pwm_frequency,
+ raspi_set_pwm_range,
+ raspi_spi_close,
+ raspi_spi_open,
+ raspi_spi_transfer,
+ raspi_write,
+ ray_circle_intersect_distance,
+ ray_intersection_point,
+ read_char,
+ read_line,
+ read_message,
+ read_message_data,
+ reading_text,
+ reconnect,
+ rect_in_window,
+ rect_on_screen,
+ rectangle_around,
+ rectangle_bottom,
+ rectangle_center,
+ rectangle_circle_intersect,
+ rectangle_from,
+ rectangle_left,
+ rectangle_offset_by,
+ rectangle_ray_intersection,
+ rectangle_right,
+ rectangle_to_string,
+ rectangle_top,
+ rectangles_intersect,
+ red_of,
+ refresh_screen,
+ refresh_window,
+ register_callback_on_key_down,
+ register_callback_on_key_typed,
+ register_callback_on_key_up,
+ register_free_notifier,
+ release_all_connections,
+ remote_raspi_cleanup,
+ remote_raspi_get_mode,
+ remote_raspi_init,
+ remote_raspi_read,
+ remote_raspi_set_mode,
+ remote_raspi_set_pull_up_down,
+ remote_raspi_set_pwm_dutycycle,
+ remote_raspi_set_pwm_frequency,
+ remote_raspi_set_pwm_range,
+ remote_raspi_write,
+ replace_all,
+ request_body,
+ request_has_query_parameter,
+ request_headers,
+ request_method,
+ request_query_parameter,
+ request_query_string,
+ request_uri,
+ request_uri_stubs,
+ reset_clip,
+ reset_layout,
+ reset_new_connection_count,
+ reset_quit,
+ reset_timer,
+ resize_current_window,
+ resize_window,
+ resolve_collision,
+ restart_animation,
+ resume_music,
+ resume_timer,
+ retrieve_connection,
+ rgb_color,
+ rgba_color,
+ rnd,
+ rotation_matrix,
+ same_point,
+ saturation_of,
+ save_bitmap,
+ save_response_to_file,
+ scale_matrix,
+ scale_rotate_translate_matrix,
+ screen_center,
+ screen_height,
+ screen_rectangle,
+ screen_width,
+ select_sprite_pack,
+ send_css_file_response,
+ send_file_response,
+ send_html_file_response,
+ send_javascript_file_response,
+ send_message_to,
+ send_response,
+ server_has_new_connection,
+ server_named,
+ set_camera_position,
+ set_camera_x,
+ set_camera_y,
+ set_clip,
+ set_current_window,
+ set_font_style,
+ set_interface_accent_color,
+ set_interface_border_color,
+ set_interface_colors_auto,
+ set_interface_element_color,
+ set_interface_element_shadows,
+ set_interface_font,
+ set_interface_font_size,
+ set_interface_label_width,
+ set_interface_panel_shadows,
+ set_interface_root_text_color,
+ set_interface_shadows,
+ set_interface_spacing,
+ set_interface_style,
+ set_interface_text_color,
+ set_layout_height,
+ set_music_volume,
+ set_quad_point,
+ set_resources_path,
+ set_udp_packet_size,
+ setup_collision_mask,
+ show_mouse,
+ sine,
+ single_line_layout,
+ slider,
+ sound_effect_filename,
+ sound_effect_name,
+ sound_effect_named,
+ sound_effect_playing,
+ sound_effect_valid,
+ split,
+ split_into_columns,
+ split_into_columns_relative,
+ split_uri_stubs,
+ sprite_add_layer,
+ sprite_add_to_velocity,
+ sprite_add_value,
+ sprite_anchor_point,
+ sprite_anchor_position,
+ sprite_animation_has_ended,
+ sprite_animation_name,
+ sprite_at,
+ sprite_bitmap_collision,
+ sprite_bring_layer_forward,
+ sprite_bring_layer_to_front,
+ sprite_call_on_event,
+ sprite_center_point,
+ sprite_circle,
+ sprite_circle_collision,
+ sprite_collision,
+ sprite_collision_bitmap,
+ sprite_collision_circle,
+ sprite_collision_kind,
+ sprite_collision_rectangle,
+ sprite_current_cell,
+ sprite_current_cell_rectangle,
+ sprite_dx,
+ sprite_dy,
+ sprite_has_value,
+ sprite_heading,
+ sprite_height,
+ sprite_hide_layer,
+ sprite_layer,
+ sprite_layer_circle,
+ sprite_layer_count,
+ sprite_layer_height,
+ sprite_layer_index,
+ sprite_layer_name,
+ sprite_layer_offset,
+ sprite_layer_rectangle,
+ sprite_layer_width,
+ sprite_location_matrix,
+ sprite_mass,
+ sprite_move_from_anchor_point,
+ sprite_move_to,
+ sprite_name,
+ sprite_named,
+ sprite_offscreen,
+ sprite_on_screen_at,
+ sprite_point_collision,
+ sprite_position,
+ sprite_quad_collision,
+ sprite_ray_collision,
+ sprite_rectangle_collision,
+ sprite_replay_animation,
+ sprite_rotation,
+ sprite_scale,
+ sprite_screen_rectangle,
+ sprite_send_layer_backward,
+ sprite_send_layer_to_back,
+ sprite_set_anchor_point,
+ sprite_set_collision_bitmap,
+ sprite_set_collision_kind,
+ sprite_set_dx,
+ sprite_set_dy,
+ sprite_set_heading,
+ sprite_set_layer_offset,
+ sprite_set_mass,
+ sprite_set_move_from_anchor_point,
+ sprite_set_position,
+ sprite_set_rotation,
+ sprite_set_scale,
+ sprite_set_speed,
+ sprite_set_value,
+ sprite_set_velocity,
+ sprite_set_x,
+ sprite_set_y,
+ sprite_show_layer,
+ sprite_speed,
+ sprite_start_animation,
+ sprite_stop_calling_on_event,
+ sprite_toggle_layer_visible,
+ sprite_triangle_collision,
+ sprite_value,
+ sprite_value_count,
+ sprite_velocity,
+ sprite_visible_index_of_layer,
+ sprite_visible_layer,
+ sprite_visible_layer_count,
+ sprite_visible_layer_id,
+ sprite_width,
+ sprite_x,
+ sprite_y,
+ square_root,
+ start_custom_layout,
+ start_inset,
+ start_panel,
+ start_popup,
+ start_reading_text,
+ start_timer,
+ start_treenode,
+ start_web_server,
+ stop_calling_on_sprite_event,
+ stop_music,
+ stop_sound_effect,
+ stop_timer,
+ stop_web_server,
+ string_to_color,
+ take_screenshot,
+ tangent,
+ tangent_points,
+ terminal_has_input,
+ text_box,
+ text_entry_cancelled,
+ text_height,
+ text_input,
+ text_width,
+ timer_named,
+ timer_paused,
+ timer_started,
+ timer_ticks,
+ to_lowercase,
+ to_screen,
+ to_screen_x,
+ to_screen_y,
+ to_uppercase,
+ to_world,
+ to_world_x,
+ to_world_y,
+ translation_matrix,
+ triangle_barycenter,
+ triangle_from,
+ triangle_quad_intersect,
+ triangle_ray_intersection,
+ triangle_rectangle_intersect,
+ triangle_to_string,
+ triangles_from,
+ triangles_intersect,
+ trim,
+ udp_packet_size,
+ unit_vector,
+ update_all_sprites,
+ update_animation,
+ update_sprite,
+ update_sprite_animation,
+ vector_add,
+ vector_angle,
+ vector_from_angle,
+ vector_from_center_sprite_to_point,
+ vector_from_line,
+ vector_from_point_to_rect,
+ vector_from_to,
+ vector_in_rect,
+ vector_invert,
+ vector_limit,
+ vector_magnitude,
+ vector_magnitude_squared,
+ vector_multiply,
+ vector_normal,
+ vector_out_of_circle_from_circle,
+ vector_out_of_circle_from_point,
+ vector_out_of_rect_from_circle,
+ vector_out_of_rect_from_point,
+ vector_out_of_rect_from_rect,
+ vector_point_to_point,
+ vector_subtract,
+ vector_to,
+ vector_to_string,
+ vector_world_to_screen,
+ vectors_equal,
+ vectors_not_equal,
+ widest_points,
+ window_area,
+ window_caption,
+ window_close_requested,
+ window_has_border,
+ window_has_focus,
+ window_height,
+ window_is_fullscreen,
+ window_named,
+ window_position,
+ window_set_icon,
+ window_toggle_border,
+ window_toggle_fullscreen,
+ window_width,
+ window_with_focus,
+ window_x,
+ window_y,
+ write,
+ write_line
+`;
+
+export default methods;
\ No newline at end of file
diff --git a/Browser_IDE/compilers/csharp/csharpCompiler.js b/Browser_IDE/compilers/csharp/csharpCompiler.js
new file mode 100644
index 0000000..b6869f9
--- /dev/null
+++ b/Browser_IDE/compilers/csharp/csharpCompiler.js
@@ -0,0 +1,33 @@
+"use strict";
+
+class CSharpCompiler extends Compiler {
+ constructor() {
+ super();
+ this.signalReady();
+ }
+
+ async compileAll(compileList, sourceList, print) {
+ let compiled = {
+ output: null,
+ };
+
+ let hasErrors = false;
+
+ // If all good, then output the 'compiled' result
+ if (!hasErrors) {
+ compiled.output = [];
+ for (let i = 0; i < sourceList.length; i++) {
+ compiled.output.push({
+ name: sourceList[i].name,
+ source: sourceList[i].source,
+ });
+ }
+ }
+
+ return compiled;
+ }
+
+}
+
+// The name has to match the one in languageDefinitions.js
+registerCompiler("csharpCompiler", new CSharpCompiler());
diff --git a/Browser_IDE/executionEnvironment.html b/Browser_IDE/executionEnvironment.html
index 455ab71..39ced2a 100644
--- a/Browser_IDE/executionEnvironment.html
+++ b/Browser_IDE/executionEnvironment.html
@@ -48,5 +48,4 @@
-