delete old files

This commit is contained in:
zongor 2025-05-03 20:34:55 -04:00
parent 00e7037128
commit 281211d150
45 changed files with 1 additions and 2870 deletions

1
.gitignore vendored
View File

@ -47,3 +47,4 @@ flycheck_*.el
# network security # network security
/network-security.data /network-security.data
.ccls-cache/

View File

@ -1,31 +0,0 @@
```c / zig + lisp like
(fn main (argc :i32 argv :[str]) (v :i32) (
(set message (concat "hello " (get argv 1) " !\n" ))
(write :std message)
(set v 0)))
```
```c + zig like
i32 main(i32 argc, str[] argv) {
str message = concat("hello ", argv[1], " !\n");
write(:std, message);
return 0;
}
```
```lisp like
(set message (concat "Hello " (get argv 1) " !\n"))
(write 0 message)
```
```forth + lisp / var'aq like
"Hello " argv shatter strtie " !\n" strtie disp
```
```fortran c / zig + fortran like
program main {
str message = concat("hello ", argv[1], "! \n")
write(0, "%s", message)
}
```

View File

@ -1,39 +0,0 @@
(255 255 0) ~ purple set
~ main {
800 ~ screen_width set
450 ~ screen_height set
argv split
~ username set
~ password set
() username cons (0.0 1.0 2.0) cons purple cons ~ me set
() password cons me login cons ~ players set
() () me shatter pop exch pop shatter cons
10.0 add cons
10.0 add cons
me shatter pop exch pop cons
(0.0 1.0 0.0) cons
45.0 cons
"CAMERA_PERSPECTIVE" cons
~ camera set
screen_width screen_height "zwl client : raylib" init_window
60 set_target_fps
{
(* Do handling in here *)
end_mode_3d
end_drawing
} window_should_close repeat (* Detect window close button or ESC key *)
me logout ~ players set
close_window (*Close window and OpenGL context *)
} set
main

View File

@ -1,82 +0,0 @@
program main
use raylib
use player
use json
i32 screen_width = 800
i32 screen_height = 450
i32 i, status
f32 time
bool player_updated, exist
str username
str password
call getarg(1, username)
call getarg(2, password)
open(u, file=file_input)
defer close(u)
inquire(unit=u, size=sz)
Player me(username=username, pos=(0.0, 1.0, 2.0), apperance=PURPLE)
Player(:) players = me.login(password)
Camera3D camera = Camera3D(pos = (me.pos.x, me.pos.y + 10.0, me.pos.z + 10.0), !Camera pos
target = (me.pos.x, me.pos.y, me.pos.z), !Camera looking at point
up = (0.0, 1.0, 0.0), !Camera up vector(rotation towards target)
fovy = 45.0, !Camera field - of - view Y
projection = CAMERA_PERSPECTIVE) !Camera projection type
init_window(screen_width, screen_height, "zwl client : raylib")
set_target_fps(60)
!Main game loop
do while (.not. window_should_close()) ! Detect window close button or ESC key
if (is_key_down(KEY_RIGHT)) then
me.pos.x += 0.2
player_updated = .true.
else if (is_key_down(KEY_LEFT)) then
me.pos.x -= 0.2
player_updated = .true.
else if (is_key_down(KEY_DOWN)) then
me.pos.z += 0.2
player_updated = .true.
else if (is_key_down(KEY_UP)) then
me.pos.z -= 0.2
player_updated = .true.
end if
me.sync_camera(camera)
time = get_time()
if (modulo(time, 1.0) .ge. 0.98) then
if (player_updated) then
players = me.move()
else
players = me.ping()
end if
end if
begin_drawing()
clear_background(RAYWHITE)
begin_mode_3d(camera)
! Draw floor
draw_grid(30, 1.0)
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance)
do i = 1, size(players)
draw_cube(players(i).pos, 0.5, 0.5, 0.5, players(i).apperance)
end do
end_mode_3d()
end_drawing()
end do
players = me.logout()
close_window() !Close window and OpenGL context
end program

View File

@ -1,43 +0,0 @@
(set screen-width 800:i32)
(set screen-height 450:i32)
(set username (get argv 1))
(set password (get argv 2))
(set me (make:player username (0.0 1.0 2.0) PURPLE))
(set players (login me))
(set camera (make:camera (me.pos.x (add me.pos.y 10.0) (add me.pos.z 10.0))
(me.pos.x me.pos.y me.pos.z)
(0.0 1.0 0.0)
45.0
CAMERA-PERSPECTIVE))
(init-window screen-width screen-height "lisp-ish client : raylib")
(set-target-fps 60)
(using-window
(while (not (window-should-close))
(case
(is-key-down KEY-RIGHT (
(inc me.pos.x 0.2)
(set player-updated t)))
(is-key-down KEY-LEFT (
(dec me.pos.x 0.2)
(set player-updated t)))
(is-key-down KEY-DOWN (
(inc me.pos.z 0.2)
(set player-updated t)))
(is-key-down KEY-UP (
(dec me.pos.z 0.2)
(set player-updated t))))
(sync-camera me camera)
(choose (player-updated)
(set players (move me))
(set players (ping me)))
(begin-drawing (
(clear-background RAYWHITE)
(begin-mode-3d camera (
(draw-grid 30 1.0)
(draw-cube me.pos 0.5 0.5 0.5 me.apperance)
(for-each (player) players (
(draw-cube player.pos 0.5 0.5 0.5 player.apperance)))))))))

View File

@ -1,39 +0,0 @@
(set purple (255 255 0))
:main {
800 :screen_width set
450 :screen_height set
argv split
:username set
:password set
(username (0.0 1.0 2.0) purple) :me set
(password (me login)) :players set
() () me shatter pop exch pop shatter cons
10.0 add cons
10.0 add cons
me shatter pop exch pop cons
(0.0 1.0 0.0) cons
45.0 cons
"CAMERA_PERSPECTIVE" cons
:camera set
screen_width screen_height "zwl client : raylib" init_window
60 set_target_fps
{
(* Do handling in here *)
end_mode_3d
end_drawing
} window_should_close repeat (* Detect window close button or ESC key *)
me logout :players set
close_window (*Close window and OpenGL context *)
} set
main

View File

@ -1,63 +0,0 @@
i32 main(i32 argc, str argv[]) {
i32 screen_width = 800
i32 screen_height = 450
str username = argv[1]
str password = argv[2]
Player me(username=username, pos=(0.0, 1.0, 2.0), apperance=PURPLE)
Player[] players = me.login(password)
Camera3D camera(pos = (me.pos.x, me.pos.y + 10.0, me.pos.z + 10.0), //Camera pos
target = (me.pos.x, me.pos.y, me.pos.z), //Camera looking at point
up = (0.0, 1.0, 0.0), //Camera up vector(rotation towards target)
fovy = 45.0, //Camera field - of - view Y
projection = CAMERA_PERSPECTIVE) //Camera projection type
init_window(screen_width, screen_height, "zwl client : raylib")
set_target_fps(60)
//Main game loop
do while (.not. window_should_close()) { // Detect window close button or ESC key
if (is_key_down(KEY_RIGHT)) {
me.pos.x = me.pos.x + 0.2
player_updated = .true.
} else if (is_key_down(KEY_LEFT)) {
me.pos.x = me.pos.x - 0.2
player_updated = .true.
} else if (is_key_down(KEY_DOWN)) {
me.pos.z = me.pos.z + 0.2
player_updated = .true.
} else if (is_key_down(KEY_UP)) {
me.pos.z = me.pos.z - 0.2
player_updated = .true.
}
me.sync_camera(camera)
if (player_updated) {
players = me.move()
} else {
players = me.ping()
}
begin_drawing()
clear_background(RAYWHITE)
begin_mode_3d(camera)
// Draw floor
draw_grid(30, 1.0)
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance)
do (int i = 0; size(players)) {
draw_cube(players[i].pos, 0.5, 0.5, 0.5, players[i].apperance)
}
end_mode_3d()
end_drawing()
}
players = me.logout()
close_window() //Close window and OpenGL context
}

View File

@ -1,110 +0,0 @@
:vec {
<f32> :x
<f32> :y
<f32> :z
} type
:color {
<i8> :r
<i8> :g
<i8> :b
} type
:player {
<str> :username
<vec> :pos
<color> :color
} type
:login {
<player> 0 check
<str> 1 check
(* do the login here *)
} sub
255 255 0 <color> new :purple set
:main {
800 <i32> new :screen_width set
450 <i32> new :screen_height set
argv split
<str> new :username set
<str> new :password set
username (0.0 1.0 2.0) purple <player> new :me set
password me login <(player)> new :players set
() me (:pos :x) acc push
me (:pos :y) acc 10.0 add push
me (:pos :z) acc 10.0 add push (* Camera pos *)
() me (:pos :x) acc push
me (:pos :y) acc push
me (:pos :z) acc push (* Camera looking at point *)
(0.0 1.0 0.0) (* Camera up vector(rotation towards target) *)
45.0 (* Camera field - of - view Y *)
:CAMERA_PERSPECTIVE (* Camera projection type *)
<Camera3D> new :camera set
screen_width screen_height "zwl client : raylib" init_window
60 set_target_fps
(* Main game loop *)
{
:KEY_RIGHT is_key_down {
0.2 me (:pos :x) acc inc me (:pos :x) mut :me set
true :player_updated set
} ifyes
:KEY_LEFT is_key_down {
0.2 me (:pos :x) acc dec me (:pos :x) mut :me set
true :player_updated set
} ifyes
:KEY_DOWN is_key_down {
0.2 me (:pos :z) acc inc me (:z :pos) mut :me set
true :player_updated set
} ifyes
:KEY_UP is_key_down {
0.2 me (:pos :z) acc dec me (:z :pos) mut :me set
true :player_updated set
} ifyes
camera me sync_camera
player_updated choose {
me move :players set
} ifyes {
me ping :players set
} isubo
begin_drawing
RAYWHITE clear_background
camera begin_mode_3d
(* Draw floor *)
30 1.0 draw_grid
me .pos 0.5 0.5 0.5 me .apperance draw_cube
players {
.pos 0.5 0.5 0.5 .apperance draw_cube
} map
end_mode_3d
end_drawing
}
{ window_should_close not } while (* Detect window close button or ESC key *)
:players me logout set
close_window() (*Close window and OpenGL context *)
} sub
main

View File

@ -1,103 +0,0 @@
:vec {
:x f32
:y f32
:z f32
} type
:color {
:r i8
:g i8
:b i8
} type
:player {
:username str
:pos vec
:color color
} type
:login (player str -> nil) {
(* do the login here *)
} fn
255 255 0 :purple color
:main (i32 char** -> i32) {
800 :screen_width i32
450 :screen_height i32
pop shatter
:username str
:password str
username 0.0 1.0 2.0 purple :me player
password me login :players set
me.pos.x
me.pos.y 10.0 add
me.pos.z 10.0 add (* Camera pos *)
me.pos (* Camera looking at point *)
0.0 1.0 0.0 (* Camera up vector(rotation towards target) *)
45.0 (* Camera field - of - view Y *)
:CAMERA_PERSPECTIVE (* Camera projection type *)
:camera Camera3D
screen_width screen_height "zwl client : raylib" init_window
60 set_target_fps
(* Main game loop *)
{
:KEY_RIGHT is_key_down {
0.2 me.pos.x add :me.pos.x set
true :player_updated set
} ifyes
:KEY_LEFT is_key_down {
0.2 me.pos.x sub :me.pos.x set
true :player_updated set
} ifyes
:KEY_DOWN is_key_down {
0.2 me.pos.z add :me.pos.z set
true :player_updated set
} ifyes
:KEY_UP is_key_down {
0.2 me.pos.z sub :me.pos.z set
true :player_updated set
} ifyes
camera me sync_camera
player_updated
choose {
me move :players set
} ifyes {
me ping :players set
} ifno
begin_drawing
RAYWHITE clear_background
camera begin_mode_3d
(* Draw floor *)
30 1.0 draw_grid
me.pos 0.5 0.5 0.5 me.apperance draw_cube
players :player {
player.pos 0.5 0.5 0.5 player.apperance draw_cube
} map
end_mode_3d
end_drawing
}
{ window_should_close not } loop-if (* Detect window close button or ESC key *)
close_window (*Close window and OpenGL context *)
} fn
argv split count main

View File

@ -1,110 +0,0 @@
type :vec {
<f32> :x
<f32> :y
<f32> :z
}
type :color {
<i8> :r
<i8> :g
<i8> :b
}
type :player {
<str> :username
<vec> :pos
<color> :color
}
fn :login {
check 0 <player>
check 1 <str>
(* do the login here *)
}
set :purple new <color> [255 255 0]
fn :main {
set :screen_width new <i32> 800
set :screen_height new <i32> 450
split argv
set :username new <str>
set :password new <str>
set :me new <player> [
username
new <vec> [0.0 1.0 2.0]
purple
]
set :players <(<player>)> login me password
set :camera new <Camera3D> [
new <vec> [0.0 1.0 0.0]
new <i32> 45.0
:CAMERA_PERSPECTIVE
new <vec> [add [acc me (:pos :x)] 10.0] [add [acc me (:pos :y)] 10.0] [acc me (:pos :z)]
new <vec> [acc me :pos]
]
init_window screen_width screen_height "zwl client : raylib"
set_target_fps 60
(* Main game loop *)
while { not window_should_close } {
if is_key_down :KEY_RIGHT {
mut :me (:pos :x) add [acc me :pos :x] 0.2
set :player_updated true
}
if is_key_down :KEY_LEFT {
mut :me (:pos :x) sub [acc me :pos :x] 0.2
set :player_updated true
}
if is_key_down :KEY_DOWN {
mut :me (:pos :z) add [acc me :pos :z] 0.2
set :player_updated true
}
if is_key_down :KEY_UP {
mut :me (:pos :z) sub [acc me :pos :z] 0.2
set :player_updated true
}
sync_camera camera me
if player_updated {
set :players move me
} else {
set :players ping me
}
begin_drawing
clear_background RAYWHITE
begin_mode_3d camera
(* Draw floor *)
draw_grid 30 1.0
draw_cube [acc me :pos] 0.5 0.5 0.5 [acc me :apperance]
map players {
draw_cube [acc @this :pos] 0.5 0.5 0.5 [acc @this apperance]
}
end_mode_3d
end_drawing
}
(* Detect window close button or ESC key *)
players = me.logout()
close_window() (*Close window and OpenGL context *)
}
main

View File

@ -1,113 +0,0 @@
type :Vec {
f32 :x
f32 :y
f32 :z
}
type :Color {
i8 :r
i8 :g
i8 :b
}
type :Player {
Str :username
Vec :pos
Color :color
}
fn :login {
Player
str
(* do the login here *)
}
Color :purple {255 255 0}
fn :main {
i32 :screen_width 800
i32 :screen_height 450
split argv
str :username
str :password
Player :me {
username
vec {0.0 1.0 2.0}
purple
}
Player() :players { login me password }
Camera3D :camera {
vec {0.0 1.0 0.0}
i32 45.0
atom :CAMERA_PERSPECTIVE
vec {
add acc (:me :pos :x) 10.0
add acc (:me :pos :y) 10.0
acc (:me :pos :z)
}
vec {acc me :pos}
}
init_window "zwl client : raylib" screen_width screen_height
set_target_fps 60
(* Main game loop *)
while { not window_should_close } {
if {is_key_down :KEY_RIGHT} {
mut (:me :pos :x) add acc me :pos :x 0.2
set :player_updated true
}
if {is_key_down :KEY_LEFT} {
mut (:me :pos :x) sub acc me :pos :x 0.2
set :player_updated true
}
if {is_key_down :KEY_DOWN} {
mut (:me :pos :z) add acc me :pos :z 0.2
set :player_updated true
}
if {is_key_down :KEY_UP} {
mut (:me :pos :z) sub acc me :pos :z 0.2
set :player_updated true
}
sync_camera camera me
if (player_updated) {
set :players move me
} else {
set :players ping me
}
begin_drawing
clear_background RAYWHITE
begin_mode_3d camera
(* Draw floor *)
draw_grid 30 1.0
draw_cube [acc me :pos] 0.5 0.5 0.5 [acc me :apperance]
map :player players {
draw_cube [acc player :pos] 0.5 0.5 0.5 [acc player apperance]
}
end_mode_3d
end_drawing
}
(* Detect window close button or ESC key *)
set :players logout me
close_window (*Close window and OpenGL context *)
}
main

View File

@ -1,113 +0,0 @@
type :Vec {
f32 :x
f32 :y
f32 :z
}
type :Color {
i8 :r
i8 :g
i8 :b
}
type :Player {
str :username
Vec :pos
Color :color
}
fn :login {
Player
str
(* do the login here *)
}
Color :purple {255 255 0}
fn :main {
i32 :screen_width 800
i32 :screen_height 450
split argv
str :username
str :password
Player :me {
username
vec {0.0 1.0 2.0}
purple
}
Player() :players { login me password }
Camera3D :camera {
vec {0.0 1.0 0.0}
i32 45.0
atom :CAMERA_PERSPECTIVE
vec {
add acc (:me :pos :x) 10.0
add acc (:me :pos :y) 10.0
acc (:me :pos :z)
}
vec {acc me :pos}
}
init_window "zwl client : raylib" screen_width screen_height
set_target_fps 60
(* Main game loop *)
while { not window_should_close } {
if {is_key_down :KEY_RIGHT} {
mut (:me :pos :x) add acc me :pos :x 0.2
set :player_updated true
}
if {is_key_down :KEY_LEFT} {
mut (:me :pos :x) sub acc me :pos :x 0.2
set :player_updated true
}
if {is_key_down :KEY_DOWN} {
mut (:me :pos :z) add acc me :pos :z 0.2
set :player_updated true
}
if {is_key_down :KEY_UP} {
mut (:me :pos :z) sub acc me :pos :z 0.2
set :player_updated true
}
sync_camera camera me
if (player_updated) {
set :players move me
} else {
set :players ping me
}
begin_drawing
clear_background RAYWHITE
begin_mode_3d camera
(* Draw floor *)
draw_grid 30 1.0
draw_cube me.pos 0.5 0.5 0.5 me.apperance
map :player players {
draw_cube player.pos 0.5 0.5 0.5 player.apperance
}
end_mode_3d
end_drawing
}
(* Detect window close button or ESC key *)
set :players logout me
close_window (*Close window and OpenGL context *)
}
main

View File

@ -1,116 +0,0 @@
type :Vec {
f32 :x,
f32 :y,
f32 :z,
};
type :Color {
i8 :r,
i8 :g,
i8 :b,
};
type :Player {
str :username,
Vec :pos,
Color :color,
};
fn :login (Player str -> bool) {
set p to pop; /* getting the player from the stack */
set password to pop; /* get the string from the stack */
return true; /* return back from function and push value on stack */
};
Color :purple {255 255 0};
fn :main (i32 str[] -> i32) {
set :argc to pop; // to is a noop but makes it more readable
set :argv to pop;
set :screen_width to i32 800;
set :screen_height to i32 450;
set :username to argv[0];
set :password to argv[1];
set :me to Player { // the brackets are for readablity, the ';' is neccisarry
username,
vec {0.0 1.0 2.0},
purple,
};
set :players to Player[] { login me password; };
set :camera to Camera3D {
vec {0.0 1.0 0.0},
i32 45.0,
atom :CAMERA_PERSPECTIVE,
vec {
add me.pos.x 10.0,
add me.pos.y 10.0,
me.pos.z,
},
me.pos,
};
init_window "zwl client : raylib" screen_width screen_height;
set_target_fps 60;
(* Main game loop *)
while ( not window_should_close ) {
if (is_key_down :KEY_RIGHT) {
set me.pos.x to {add me.pos.x 0.2};
set :player_updated true;
}
if (is_key_down :KEY_LEFT) {
set me.pos.x to {sub me.pos.x 0.2};
set :player_updated true;
}
if (is_key_down :KEY_DOWN) {
set me.pos.z to {add me.pos.z 0.2};
set :player_updated true;
}
if (is_key_down :KEY_UP) {
set me.pos.z to {sub me.pos.z 0.2};
set :player_updated true;
}
sync_camera camera me;
if (player_updated) {
set :players move me;
} else {
set :players ping me;
}
begin_drawing;
clear_background RAYWHITE;
begin_mode_3d camera;
(* Draw floor *)
draw_grid 30 1.0;
draw_cube me.pos 0.5 0.5 0.5 me.apperance;
map :player players {
draw_cube player.pos 0.5 0.5 0.5 player.apperance;
}
end_mode_3d;
end_drawing;
}
/* Detect window close button or ESC key */
set :players to logout me;
close_window; /*Close window and OpenGL context */
}
main;

View File

@ -1,106 +0,0 @@
type Vec {
f32 x;
f32 y;
f32 z;
}
type Color {
i8 r;
i8 g;
i8 b;
}
type Player {
str username;
Vec pos;
Color color;
}
void login(Player p, str password) {
(* do the login here *)
}
Color purple(255, 255, 0);
void main(int argc, str[] argv) {
i32 screen_width = 800;
i32 screen_height = 450;
str username = argv[0];
str password = argv[1];
Player me(
username,
Vec(0.0, 1.0, 2.0),
purple
);
Player[] players = login(me, password);
Camera3D camera(
Vec(0.0, 1.0, 0.0),
45.0,
:CAMERA_PERSPECTIVE,
Vec(
me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z
),
me.pos
);
init_window("zwl client : raylib", screen_width, screen_height);
set_target_fps(60)
(* Main game loop *)
while ( .not. window_should_close() ) {
if (is_key_down(:KEY_RIGHT)) {
me.pos.x = me.pos.x + 0.2;
player_updated = true;
}
if (is_key_down(:KEY_LEFT)) {
me.pos.x = me.pos.x - 0.2;
player_updated = true;
}
if (is_key_down(:KEY_DOWN)) {
me.pos.z = me.pos.z + 0.2;
player_updated = true;
}
if (is_key_down(:KEY_UP)) {
me.pos.z = me.pos.z - 0.2;
player_updated = true;
}
sync_camera(camera, me);
if (player_updated) {
players = move(me);
} else {
players = ping(me);
}
begin_drawing();
clear_background(:RAYWHITE);
begin_mode_3d(camera);
(* Draw floor *)
draw_grid(30, 1.0);
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance);
for (player in players) {
draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance);
}
end_mode_3d();
end_drawing();
}
logout(me);
close_window(); (*Close window and OpenGL context *)
}

View File

@ -1,108 +0,0 @@
use "raylib.zwl"
type Vec {
f32 x;
f32 y;
f32 z;
}
type Color {
i8 r;
i8 g;
i8 b;
}
type Player {
str username;
Vec pos;
Color color;
}
void login(Player p, str password) {
/* do the login here */
}
Color purple(255, 0, 255);
void main(int argc, str[] argv) {
i32 screen_width = 800;
i32 screen_height = 450;
str username = argv[0];
str password = argv[1];
Player me(
username,
Vec(0.0, 1.0, 2.0),
purple
);
Player[] players = login(me, password);
Camera3D camera(
Vec(0.0, 1.0, 0.0),
45.0,
:CAMERA_PERSPECTIVE,
Vec(
me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z
),
me.pos
);
init_window("zwl client : raylib", screen_width, screen_height);
set_target_fps(60)
/* Main game loop */
while ( not window_should_close() ) {
if (is_key_down(:KEY_RIGHT)) {
me.pos.x = me.pos.x + 0.2;
player_updated = true;
}
if (is_key_down(:KEY_LEFT)) {
me.pos.x = me.pos.x - 0.2;
player_updated = true;
}
if (is_key_down(:KEY_DOWN)) {
me.pos.z = me.pos.z + 0.2;
player_updated = true;
}
if (is_key_down(:KEY_UP)) {
me.pos.z = me.pos.z - 0.2;
player_updated = true;
}
sync_camera(camera, me);
if (player_updated) {
players = move(me);
} else {
players = ping(me);
}
begin_drawing();
clear_background(:RAYWHITE);
begin_mode_3d(camera);
/* Draw floor */
draw_grid(30, 1.0);
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance);
for (player in players) {
draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance);
}
end_mode_3d();
end_drawing();
}
logout(me);
close_window(); // Close window and OpenGL context
}

View File

@ -1,104 +0,0 @@
type Vec {
f32[x, y, z];
}
type Color {
i8[r, g, b];
}
type Player {
str username;
Vec pos;
Color color;
}
void login(Player p, str password) {
(* do the login here *)
}
(* Color purple = [255, 255, 0]; *)
Color purple(r=255, g=255, b=0);
void main(int argc, str[] argv) {
i32 screen_width = 800;
i32 screen_height = 450;
str username = argv[0];
str password = argv[1];
Player me(
username=username,
pos=[0.0, 1.0, 2.0],
color=purple
);
Player[] players = login(me, password);
Camera3D camera(
up=[0.0, 1.0, 0.0]
fov=45.0,
mode=:CAMERA_PERSPECTIVE,
pos=[
me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z
]
point_at=me.pos
);
init_window("zwl client : raylib", screen_width, screen_height);
set_target_fps(60)
(* Main game loop *)
while ( .not. window_should_close ) {
if (is_key_down(:KEY_RIGHT)) {
me.pos.x = me.pos.x + 0.2;
player_updated = true;
}
if (is_key_down(:KEY_LEFT)) {
me.pos.x = me.pos.x - 0.2;
player_updated = true;
}
if (is_key_down(:KEY_DOWN)) {
me.pos.z = me.pos.z + 0.2;
player_updated = true;
}
if (is_key_down(:KEY_UP)) {
me.pos.z = me.pos.z - 0.2;
player_updated = true;
}
sync_camera(camera, me);
if (player_updated) {
players = move(me);
} else {
players = ping(me);
}
begin_drawing();
clear_background(:RAYWHITE);
begin_mode_3d(camera);
(* Draw floor *)
draw_grid(30, 1.0);
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance);
for (player in players) {
draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance);
}
end_mode_3d();
end_drawing();
}
logout(me);
close_window(); (*Close window and OpenGL context *)
}

View File

@ -1,43 +0,0 @@
void build(ProjectConfig c) {
c.name("MMO Project");
c.client("src/", {
"c":{
"ffi": [
{
"name":"raylib",
"library":"$RAYLIB_PATH/libraylib.a",
"path":"",
"build": "make build",
}
],
"out": "client/"
}
})
c.server("src/",{
"javascript":{
"out":"server/"
}
});
c.database("src/",{
"sqlite":{
"out":"db/"
}
});
c.common("src/",{
"c":{
"out":"server/"
},
"javascript":{
"out":"client/"
},
"sqlite":{
"out":"db/"
}
});
c.build();
}

View File

@ -1,92 +0,0 @@
use "common.ztl"
Player[] login(tunnel s, Player p, str password) {
s.auth(p.username, password);
s.
}
void main(int argc, str[] argv) {
i32 screen_width = 800;
i32 screen_height = 450;
str username = argv[0];
str password = argv[1];
tunnel s();
s.attach("localhost:25565");
Player me(
username,
Vec(0.0, 1.0, 2.0),
purple
);
Player[] players = login(s, me, password);
Camera3D camera(
Vec(0.0, 1.0, 0.0),
45.0,
:CAMERA_PERSPECTIVE,
Vec(
me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z
),
me.pos
);
init_window("zwl client : raylib", screen_width, screen_height);
set_target_fps(60)
(* Main game loop *)
while ( not window_should_close() ) {
if (is_key_down(:KEY_RIGHT)) {
me.pos.x = me.pos.x + 0.2;
player_updated = true;
}
if (is_key_down(:KEY_LEFT)) {
me.pos.x = me.pos.x - 0.2;
player_updated = true;
}
if (is_key_down(:KEY_DOWN)) {
me.pos.z = me.pos.z + 0.2;
player_updated = true;
}
if (is_key_down(:KEY_UP)) {
me.pos.z = me.pos.z - 0.2;
player_updated = true;
}
sync_camera(s, me, camera);
if (player_updated) {
players = move(s, me);
} else {
players = ping(s, me);
}
begin_drawing();
clear_background(:RAYWHITE);
begin_mode_3d(camera);
(* Draw floor *)
draw_grid(30, 1.0);
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance);
for (player in players) {
draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance);
}
end_mode_3d();
end_drawing();
}
logout(me);
close_window(); (* Close window and OpenGL context *)
}

View File

@ -1,19 +0,0 @@
type Vec {
f32 x;
f32 y;
f32 z;
}
type Color {
i8 r;
i8 g;
i8 b;
}
type Player {
str username;
Vec pos;
Color color;
}
Color purple(255, 255, 0);

View File

@ -1,59 +0,0 @@
use "common.ztl"
void main(int argc, str[] argv) {
tunnel s();
s.host("0.0.0.0:25565",
version,
auth,
error,
flush,
attach,
walk,
open,
create,
read,
write,
clunk,
remove,
stat);
}
msg version(msg m) {
}
msg auth(msg m) {
}
msg error(msg m) {
}
msg flush(msg m) {
}
msg attach(msg m) {
}
msg walk(msg m) {
}
msg open(msg m) {
}
msg create(msg m) {
}
msg read(msg m) {
}
msg write(msg m) {
}
msg clunk(msg m) {
}
msg remove(msg m) {
}
msg stat(msg m) {
}

View File

@ -1,47 +0,0 @@
fn build(c: ProjectConfig) {
c.name("MMO Project");
c.client([
LanguageSettings {
lang: "c",
file: "src/client.ztl",
outpath: "client/",
ffi: [
FFISetting {
"name":"raylib",
"library":"$RAYLIB_PATH/libraylib.a",
"path":"",
"build": "make build",
}
]
}
])
c.server([
LanguageSettings {
lang: "javascript",
file: "src/server.ztl",
outpath: "server/"
}
]);
c.common([
LanguageSettings {
lang: "c",
file: "src/common.ztl",
outpath: "client/"
},
LanguageSettings {
lang: "javascript",
file: "src/common.ztl",
outpath: "server/"
},
LanguageSettings {
lang: "sqlite",
file: "src/common.ztl",
outpath: "db/"
}
]);
c.build();
}

View File

@ -1,93 +0,0 @@
use "common.ztl"
fn login(s: 9p, p: Player, password: str): []Player {
s.auth(p.username, password)
return s.read("players")
}
fn main(argc: i32, argv: []str): i32 {
const screen_width = 800;
const screen_height = 450;
let username = argv[0];
let password = argv[1];
let s = tunnel("localhost:25565");
s.attach();
let me = Player(
username,
Vec(0.0, 1.0, 2.0),
purple
);
let players = login(s, me, password);
let camera = Camera3D(
Vec(0.0, 1.0, 0.0),
45.0,
:CAMERA_PERSPECTIVE,
Vec(
me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z
),
me.pos
);
init_window("zwl client : raylib", screen_width, screen_height);
set_target_fps(60);
(* Main game loop *)
while ( not window_should_close() ) {
let player_updated = false;
if (is_key_down(KEY_RIGHT)) {
me.pos.x = me.pos.x + 0.2;
player_updated = true;
}
if (is_key_down(KEY_LEFT)) {
me.pos.x = me.pos.x - 0.2;
player_updated = true;
}
if (is_key_down(KEY_DOWN)) {
me.pos.z = me.pos.z + 0.2;
player_updated = true;
}
if (is_key_down(KEY_UP)) {
me.pos.z = me.pos.z - 0.2;
player_updated = true;
}
sync_camera(s, me, camera);
if (player_updated) {
players = move(s, me);
} else {
players = ping(s, me);
}
begin_drawing();
clear_background(RAYWHITE);
begin_mode_3d(camera);
(* Draw floor *)
draw_grid(30, 1.0);
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance);
for (player in players) {
draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance);
}
end_mode_3d();
end_drawing();
}
logout(me);
close_window(); (* Close window and OpenGL context *)
}

View File

@ -1,19 +0,0 @@
type Vec {
x: f32,
y: f32,
z: f32,
}
type Color {
r: u8,
g: u8,
b: u8,
}
type Player {
username: str,
pos: Vec,
color: Color,
}
const purple = Color{255, 255, 0};

View File

@ -1,59 +0,0 @@
use "common.ztl"
fn main(argc: i32, argv: []str): i32 {
let s = tunnel();
s.host("0.0.0.0:25565",
version,
auth,
error,
flush,
attach,
walk,
open,
create,
read,
write,
clunk,
remove,
stat);
}
fn version(m : 9pmsg) {
}
fn auth(m : 9pmsg) {
}
fn error(m : 9pmsg) {
}
fn flush(m : 9pmsg) {
}
fn attach(m : 9pmsg) {
}
fn walk(m : 9pmsg) {
}
fn open(m : 9pmsg) {
}
fn create(m : 9pmsg) {
}
fn read(m : 9pmsg) {
}
fn write(m : 9pmsg) {
}
fn clunk(m : 9pmsg) {
}
fn remove(m : 9pmsg) {
}
fn stat(m : 9pmsg) {
}

View File

@ -1,69 +0,0 @@
-- mod-version:1
local syntax = require "core.syntax"
syntax.add {
name = "Zongor's Transpiler Language",
files = { "%.ztl$" },
comment = "//",
block_comment = { '/*', '*/' },
patterns = {
{ pattern = { "/%*", "%*/" }, type = "comment" },
{ pattern = "//.-\n", type = "comment" },
{ pattern = "\\\\.-\n", type = "string" },
{ pattern = { '"', '"', '\\' }, type = "string" },
{ pattern = { "'", "'", '\\' }, type = "string" },
{ pattern = "[iuv][%d_]+", type = "keyword2" },
{ pattern = "[9][%w_]*", type = "keyword2" },
{ pattern = "%d[%d_]*%.[%d_]*", type = "number" },
{ pattern = "%d[%d_]*", type = "number" },
{ pattern = "[%+%-=/%*%^%%<>!~|&%.%?]", type = "operator" },
{ pattern = "[%a_][%w_]*()%s*%(", type = {"function", "normal"} },
{ pattern = "[A-Z][%w_]*", type = "keyword2" },
{ pattern = "[%a_][%w_]*", type = "symbol" },
{ pattern = "@()[%a_][%w_]*", type = {"operator", "function"} },
{ regex = [[(?:[^"\\]|\\.)*()\s*:]], type = { "number" } }, -- key
},
symbols = {
["continue"] = "keyword",
["break"] = "keyword",
["switch"] = "keyword",
["for"] = "keyword",
["in"] = "keyword",
["while"] = "keyword",
["const"] = "keyword",
["test"] = "keyword",
["export"] = "keyword",
["if"] = "keyword",
["else"] = "keyword",
["return"] = "keyword",
["and"] = "keyword",
["or"] = "keyword",
["not"] = "keyword",
["interface"] = "keyword",
["struct"] = "keyword",
["enum"] = "keyword",
["union"] = "keyword",
["inline"] = "keyword",
["use"] = "keyword",
-- types
["str"] = "keyword2",
["f16"] = "keyword2",
["f32"] = "keyword2",
["f64"] = "keyword2",
["f128"] = "keyword2",
["err"] = "keyword2",
["rgb"] = "keyword2",
["hsv"] = "keyword2",
["rgba"] = "keyword2",
["void"] = "keyword2",
["bool"] = "keyword2",
["true"] = "literal",
["false"] = "literal",
["null"] = "literal",
["undefined"] = "literal",
},
}

View File

@ -1,47 +0,0 @@
void build (ProjectConfig c) {
c.name("MMO Project");
c.client([
LanguageSettings {
lang: "c",
file: "src/client.ztl",
outpath: "client/",
ffi: [
FFISetting {
name:"raylib",
library:"$RAYLIB_PATH/libraylib.a",
path:"./",
build: "make build",
}
]
}
])
c.server([
{
lang: "javascript",
file: "src/server.ztl",
outpath: "server/"
}
]);
c.common([
LanguageSettings {
"c",
"src/common.ztl",
"client/"
},
{
lang: "javascript",
file: "src/common.ztl",
outpath: "server/"
},
{
lang: "sqlite",
file: "src/common.ztl",
outpath: "db/"
}
]);
c.build();
}

View File

@ -1,91 +0,0 @@
use "common.ztl";
Player[] login (9pc s Player p str password) {
s.auth(p.username, password);
return s.read("players");
};
i32 main (i32 argc str[] argv) {
const i32 screen_width = 800;
const i32 screen_height = 450;
str username = argv[0];
str password = argv[1];
Player me = {
username: username,
pos: {0.0 1.0 2.0},
apperance: purple,
};
Player[] players = me.login(password);
Camera3D camera = {
up: {0.0 1.0 0.0},
fov: 45.0,
type: CAMERA_PERSPECTIVE,
pos: {
me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z,
},
target: me.pos,
};
init_window("zwl client : raylib", screen_width, screen_height);
set_target_fps(60);
/* Main game loop */
while ( not window_should_close ) {
if (is_key_down(KEY_RIGHT)) {
me.pos.x += 0.2;
player_updated = true;
};
if (is_key_down(KEY_LEFT)) {
me.pos.x -= 0.2;
player_updated = true;
};
if (is_key_down(KEY_DOWN)) {
me.pos.z += 0.2;
player_updated = true;
};
if (is_key_down(KEY_UP)) {
me.pos.z -= 0.2;
player_updated = true;
};
me.sync_camera(camera);
if (player_updated) {
players = me.move();
} else {
players = me.ping();
};
begin_drawing();
clear_background(RAYWHITE);
begin_mode_3d(camera);
/* Draw floor */
draw_grid(30, 1.0);
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance);
for player in players {
draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance);
}
end_mode_3d();
end_drawing();
}
/* Detect window close button or ESC key */
players = logout(me);
close_window(); /* Close window and OpenGL context */
return 0;
};

View File

@ -1,7 +0,0 @@
struct Player {
str username,
v3 pos,
rgb color,
};
const rgb purple = {255 255 0};

View File

@ -1,21 +0,0 @@
use "common.ztl"
i32 main (i32 argc, []str argv) {
9ps s = {
version: "9P2000",
auth:
error:
flush:
attach:
walk:
open:
create:
read:
write:
clunk:
remove:
stat:
};
s.host("0.0.0.0:25565");
};

View File

@ -1,45 +0,0 @@
--mod-version:3
local syntax = require 'core.syntax'
syntax.add {
name = "Zongor's Transpiler Language",
files = { "%.ztl$" },
block_comment = { '/*', '*/' },
patterns = {
{ pattern = { "/%*", "%*/" }, type = "comment" },
{ pattern = { '"', '"', '\\' }, type = "string" },
{ pattern = { "'", "'", '\\' }, type = "string" },
{ pattern = ";", type = "operator" },
{ pattern = "[%a_][%w_]*()%s*%(", type = {"function", "normal"} },
{ pattern = "[viu][%d_]+", type = "keyword2" },
{ pattern = "[A-Z][%w_]*", type = "keyword2" },
{ pattern = "[9][%w_]*", type = "keyword2" },
{ pattern = ":[%w_]*", type = "literal" },
{ pattern = "-?%.?%d+f?", type = "number" },
},
symbols = {
["fn"] = "keyword",
["to"] = "keyword",
["in"] = "keyword",
["use"] = "keyword",
["set"] = "keyword",
["if"] = "keyword",
["else"] = "keyword",
["for"] = "keyword",
["while"] = "keyword",
["push"] = "keyword",
["pop"] = "keyword",
["return"] = "keyword",
["immutable"] = "keyword",
["type"] = "keyword",
["char"] = "keyword2",
["str"] = "keyword2",
["f16"] = "keyword2",
["f32"] = "keyword2",
["f64"] = "keyword2",
["f128"] = "keyword2",
["true"] = "literal",
["false"] = "literal",
}}

View File

@ -1,49 +0,0 @@
fn :build (ProjectConfig) {
set c to pop;
c.name("MMO Project");
c.client([
LanguageSettings {
"c", /* lang */
"src/client.ztl", /* file */
"client/", /* out path */
[ /* ffi */
FFISetting {
"raylib",
"$RAYLIB_PATH/libraylib.a",
"./",
"make build",
}
]
}
])
c.server([
LanguageSettings {
"javascript",
"src/server.ztl",
"server/"
}
]);
c.common([
LanguageSettings {
"c",
"src/common.ztl",
"client/"
},
LanguageSettings {
"javascript",
"src/common.ztl",
"server/"
},
LanguageSettings {
"sqlite",
"src/common.ztl",
"db/"
}
]);
c.build();
}

View File

@ -1,94 +0,0 @@
use "common.ztl"
fn :login (9p :s Player :p str :password) Player[] {
s.auth(p.username, password);
return s.read("players");
}
fn :main (i32 :argc str[] :argv) i32 {
set :screen_width to i32 800;
set :screen_height to i32 450;
set :username to argv[0];
set :password to argv[1];
set :me to Player
username
0.0 1.0 2.0
purple
;
set :players to Player[] login(password);
set :camera to Camera3D
0.0 1.0 0.0
45.0
:CAMERA_PERSPECTIVE
add me.pos.x 10.0
add me.pos.y 10.0
me.pos.z
me.pos
;
init_window( "zwl client : raylib" screen_width screen_height);
set_target_fps( 60);
/* Main game loop */
while ( not window_should_close ) {
set :player_updated to false;
if (is_key_down(:KEY_RIGHT)) {
set me.pos.x to {add me.pos.x 0.2};
set :player_updated true;
}
if (is_key_down(:KEY_LEFT)) {
set me.pos.x to {sub me.pos.x 0.2};
set :player_updated true;
}
if (is_key_down(:KEY_DOWN)) {
set me.pos.z to {add me.pos.z 0.2};
set :player_updated true;
}
if (is_key_down(:KEY_UP)) {
set me.pos.z to {sub me.pos.z 0.2};
set :player_updated true;
}
me.sync_camera(camera);
if (player_updated) {
set :players me.move();
} else {
set :players me.ping();
}
begin_drawing();
clear_background(RAYWHITE);
begin_mode_3d(camera);
/* Draw floor */
draw_grid(30 1.0);
draw_cube(me.pos 0.5 0.5 0.5 me.apperance);
for :player in players {
draw_cube(player.pos 0.5 0.5 0.5 player.apperance);
}
end_mode_3d();
end_drawing();
}
/* Detect window close button or ESC key */
me.logout();
close_window(); /*Close window and OpenGL context */
return 0;
}

View File

@ -1,19 +0,0 @@
set :Vec to type {
f32 :x,
f32 :y,
f32 :z,
};
set :Color to type {
i8 :r,
i8 :g,
i8 :b,
};
set :Player to type {
str :username,
Vec :pos,
Color :color,
};
set immutable :purple to Color {255 255 0};

View File

@ -1,73 +0,0 @@
use "common.ztl"
fn :main (i32 :argc []str :argv) i32 {
set s to 9p {
version,
auth,
error,
flush,
attach,
walk,
open,
create,
read,
write,
clunk,
remove,
stat,
};
s.host("0.0.0.0:25565")
};
fn :version(9pmsg :m) {
};
fn :auth(9pmsg :m) {
};
fn :error(9pmsg :m) {
};
fn :flush(9pmsg :m) {
};
fn :attach(9pmsg :m) {
};
fn :walk(9pmsg :m) {
};
fn :open(9pmsg :m) {
};
fn :create(9pmsg :m) {
};
fn :read(9pmsg :m) {
};
fn :write(9pmsg :m) {
};
fn :clunk(9pmsg :m) {
};
fn :remove(9pmsg :m) {
};
fn :stat(9pmsg :m) {
};

View File

@ -1,64 +0,0 @@
--mod-version:3
local syntax = require 'core.syntax'
syntax.add {
name = "Zongor's Transpiler Language",
files = { "%.ztl$" },
comment = "!",
block_comment = { '!!', '!!' },
patterns = {
{ pattern = { "!!", "!!" }, type = "comment" }, -- tested ok
{ pattern = "!.*", type = "comment" },
{ pattern = { '"', '"', '\\' }, type = "string" },
{ pattern = { "'", "'", '\\' }, type = "string" },
{ pattern = ";", type = "operator" },
{ pattern = "[%a_][%w_]*()%s*%(", type = {"function", "normal"} },
{ pattern = "[viu][%d_]+", type = "keyword2" },
{ pattern = "[A-Z][%w_]*", type = "keyword2" },
{ pattern = "[9][%w_]*", type = "keyword2" },
{ pattern = "-?%.?%d+f?", type = "number" },
},
symbols = {
["fn"] = "keyword",
["to"] = "keyword",
["in"] = "keyword",
["is"] = "keyword",
["as"] = "keyword",
["use"] = "keyword",
["set"] = "keyword",
["if"] = "keyword",
["else"] = "keyword",
["for"] = "keyword",
["loop"] = "keyword",
["while"] = "keyword",
["push"] = "keyword",
["pop"] = "keyword",
["return"] = "keyword",
["const"] = "keyword",
["type"] = "keyword",
["this"] = "keyword",
["eq"] = "keyword",
["ne"] = "keyword",
["mod"] = "keyword",
["not"] = "keyword",
["and"] = "keyword",
["or"] = "keyword",
["xor"] = "keyword",
["band"] = "keyword",
["bor"] = "keyword",
["bxor"] = "keyword",
["srl"] = "keyword",
["sll"] = "keyword",
["char"] = "keyword2",
["str"] = "keyword2",
["f16"] = "keyword2",
["f32"] = "keyword2",
["f64"] = "keyword2",
["f128"] = "keyword2",
["true"] = "literal",
["false"] = "literal",
},
}

View File

@ -1,48 +0,0 @@
fn build(ProjectConfig c) {
c.name("MMO Project");
c.mode("dev");
c.client([
LanguageSettings(
"c", ! lang
"src/client.ztl", ! file
"client/", ! out path
[ ! ffi settings
FFISetting {
"raylib", ! libary name
"$RAYLIB_PATH/libraylib.a", ! path
"./", ! local path
"make build", ! build command
}
]
)
]);
c.server([
LanguageSettings(
"javascript",
"src/server.ztl",
"server/"
)
]);
c.common([
LanguageSettings(
"c",
"src/common.ztl",
"client/"
},
LanguageSettings(
"javascript",
"src/common.ztl",
"server/"
),
LanguageSettings(
"sqlite",
"src/common.ztl",
"db/"
)
]);
c.build();
}

View File

@ -1,93 +0,0 @@
use "common.ztl";
use "raylib" as rl;
fn main (i32 argc, str[] argv) i32 {
set screen_width to 800 as i32;
set screen_height to 450 as i32;
set username to argv[0];
set password to argv[1];
set server to 9p("localhost:25565");
set me to Player(
server,
username,
Vec(0.0, 1.0, 2.0),
purple
);
set players to me.login(password);
set camera to rl.Camera3D(
Vec(0.0, 1.0, 0.0),
45.0,
CAMERA_PERSPECTIVE,
Vec(me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z),
me.pos
);
rl.init_window("zwl client : raylib", screen_width, screen_height);
rl.set_target_fps(60);
!!
Main game loop
!!
while ( not rl.window_should_close() ) { ! Detect window close button or ESC key
set player_updated to false;
if (rl.is_key_down(KEY_RIGHT)) {
set me.pos.x to (me.pos.x + 0.2);
set player_updated to true;
}
if (rl.is_key_down(KEY_LEFT)) {
set me.pos.x to (me.pos.x + 0.2);
set player_updated to true;
}
if (rl.is_key_down(KEY_DOWN)) {
set me.pos.z to (me.pos.z + 0.2);
set player_updated to true;
}
if (rl.is_key_down(KEY_UP)) {
set me.pos.z to (me.pos.z - 0.2);
set player_updated to true;
}
me.sync_camera(camera);
if (player_updated) {
set players to me.move();
} else {
set players to me.ping();
}
rl.begin_drawing();
rl.clear_background(RAYWHITE);
rl.begin_mode_3d(camera);
! Draw floor
rl.draw_grid(30, 1.0);
rl.draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance);
for (player in players) {
rl.draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance);
}
rl.end_mode_3d();
rl.end_drawing();
}
me.logout();
close_window(); ! Close window and OpenGL context
return 0;
}

View File

@ -1,37 +0,0 @@
type Vec {
init(f32 x, f32 y, f32 z) {
set this.x to x;
set this.y to y;
set this.z to z;
}
}
type Color {
init(i8 r, i8 g, i8 b) {
set this.r to r;
set this.g to g;
set this.b to b;
}
}
type Player {
init (9p server, str username, Vec pos, Color color) {
set this.server to server;
set this.username to username;
set this.pos to pos;
set this.color to color;
}
login (str password) Player[] {
this.server.auth(this.username, password);
set this.players to server.open("players");
return players.read();
}
logout() {
this.players.flush();
this.server.clunk();
}
}
const purple is Color(255, 255, 0);

View File

@ -1,75 +0,0 @@
use "common.ztl";
fn main (i32 argc, str[] argv) i32 {
set s to 9p (
version,
auth,
error,
flush,
attach,
walk,
open,
create,
read,
write,
clunk,
remove,
stat,
);
s.host("0.0.0.0:25565");
return 0;
}
fn version(9pmsg m) {
}
fn auth(9pmsg m) {
}
fn error(9pmsg m) {
}
fn flush(9pmsg m) {
}
fn attach(9pmsg m) {
}
fn walk(9pmsg m) {
}
fn open(9pmsg m) {
}
fn create(9pmsg m) {
}
fn read(9pmsg m) {
}
fn write(9pmsg m) {
}
fn clunk(9pmsg m) {
}
fn remove(9pmsg m) {
}
fn stat(9pmsg m) {
}

View File

@ -1,64 +0,0 @@
--mod-version:3
local syntax = require 'core.syntax'
syntax.add {
name = "Zongor's Transpiler Language",
files = { "%.ztl$" },
comment = "!",
block_comment = { '!!', '!!' },
patterns = {
{ pattern = { "!!", "!!" }, type = "comment" }, -- tested ok
{ pattern = "!.*", type = "comment" },
{ pattern = { '"', '"', '\\' }, type = "string" },
{ pattern = { "'", "'", '\\' }, type = "string" },
{ pattern = ";", type = "operator" },
{ pattern = "[%a_][%w_]*()%s*%(", type = {"function", "normal"} },
{ pattern = "[viu][%d_]+", type = "keyword2" },
{ pattern = "[A-Z][%w_]*", type = "keyword2" },
{ pattern = "[9][%w_]*", type = "keyword2" },
{ pattern = "-?%.?%d+f?", type = "number" },
},
symbols = {
["fn"] = "keyword",
["to"] = "keyword",
["in"] = "keyword",
["is"] = "keyword",
["as"] = "keyword",
["use"] = "keyword",
["set"] = "keyword",
["if"] = "keyword",
["else"] = "keyword",
["for"] = "keyword",
["loop"] = "keyword",
["while"] = "keyword",
["push"] = "keyword",
["pop"] = "keyword",
["return"] = "keyword",
["const"] = "keyword",
["type"] = "keyword",
["this"] = "keyword",
["eq"] = "keyword",
["ne"] = "keyword",
["mod"] = "keyword",
["not"] = "keyword",
["and"] = "keyword",
["or"] = "keyword",
["xor"] = "keyword",
["band"] = "keyword",
["bor"] = "keyword",
["bxor"] = "keyword",
["srl"] = "keyword",
["sll"] = "keyword",
["char"] = "keyword2",
["str"] = "keyword2",
["f16"] = "keyword2",
["f32"] = "keyword2",
["f64"] = "keyword2",
["f128"] = "keyword2",
["true"] = "literal",
["false"] = "literal",
},
}

View File

@ -1,48 +0,0 @@
fn build(ProjectConfig c) {
c.name("MMO Project");
c.mode("dev");
c.client([
LanguageSettings(
"c", ! lang
"src/client.ztl", ! file
"client/", ! out path
[ ! ffi settings
FFISetting (
"raylib", ! libary name
"$RAYLIB_PATH/libraylib.a", ! path
"./", ! local path
"make build", ! build command
)
]
)
]);
c.server([
LanguageSettings(
"javascript",
"src/server.ztl",
"server/"
)
]);
c.common([
LanguageSettings(
"c",
"src/common.ztl",
"client/"
),
LanguageSettings(
"javascript",
"src/common.ztl",
"server/"
),
LanguageSettings(
"sqlite",
"src/common.ztl",
"db/"
)
]);
c.build();
}

View File

@ -1,93 +0,0 @@
use "common.ztl";
fn main (argc num, argv str) num {
let screen_width = 800;
let screen_height = 450;
let username = argv[0];
let password = argv[1];
let server = 9p("localhost:25565");
let me = Player(
server,
username,
Vec(0.0, 1.0, 2.0),
purple
);
let players = me.login(password);
let camera = Camera3D(
"CAMERA_PERSPECTIVE",
45.0,
Vec(0.0, 1.0, 0.0),
Vec(me.pos.x + 10.0,
me.pos.y + 10.0,
me.pos.z),
me.pos
);
init_window("zwl client : raylib", screen_width, screen_height);
target_fps(60);
while ( not window_should_close() ) {
let player_updated = false;
if (key_down(KEY_RIGHT)) {
me.pos.x = (me.pos.x + 0.2);
player_updated = true;
}
if (key_down(KEY_RIGHT)) {
me.pos.x = (me.pos.x + 0.2);
player_updated = true;
}
if (key_down(KEY_LEFT)) {
me.pos.x = (me.pos.x + 0.2);
player_updated = true;
}
if (key_down(KEY_DOWN)) {
me.pos.z = (me.pos.z + 0.2);
player_updated = true;
}
if (key_down(KEY_UP)) {
me.pos.z = (me.pos.z - 0.2);
player_updated = true;
}
me.sync_camera(camera);
if (player_updated) {
players = me.move();
} else {
players = me.ping();
}
begin_drawing();
clear_background(RAYWHITE);
begin_mode_3d(camera);
draw_grid(30, 1.0);
draw_cube(me.pos, 0.5, 0.5, 0.5, me.apperance);
for (player in players) {
draw_cube(player.pos, 0.5, 0.5, 0.5, player.apperance);
}
end_mode_3d();
end_drawing();
}
me.logout();
close_window();
return 0;
}

View File

@ -1,47 +0,0 @@
type Vec {
init(x f32, y f32, z f32) {
this.x = x;
this.y = y;
this.z = z;
}
}
type Color {
init(r i8, g i8, b i8) {
this.r = r;
this.g = g;
this.b = b;
}
}
type Camera3D {
init(setting str, pov f32, up Vec, pos Vec, look Vec) {
this.setting = setting;
this.pov = pov;
this.up = up;
this.pos = pos;
this.look = look;
}
}
type Player {
init (server 9p, username str, pos Vec, color Color) {
this.server = server;
this.username = username;
this.pos = pos;
this.color = color;
}
login (password str) Player[] {
this.server.auth(this.username, password);
this.players = server.open("players");
return players.read();
}
logout() {
this.players.flush();
this.server.clunk();
}
}
const purple = Color(255, 255, 0);

View File

@ -1,75 +0,0 @@
use "common.ztl";
fn main (i32 argc, str[] argv) i32 {
set s to 9p (
version,
auth,
error,
flush,
attach,
walk,
open,
create,
read,
write,
clunk,
remove,
stat,
);
s.host("0.0.0.0:25565");
return 0;
}
fn version(9pmsg m) {
}
fn auth(9pmsg m) {
}
fn error(9pmsg m) {
}
fn flush(9pmsg m) {
}
fn attach(9pmsg m) {
}
fn walk(9pmsg m) {
}
fn open(9pmsg m) {
}
fn create(9pmsg m) {
}
fn read(9pmsg m) {
}
fn write(9pmsg m) {
}
fn clunk(9pmsg m) {
}
fn remove(9pmsg m) {
}
fn stat(9pmsg m) {
}

0
src/common.h Normal file
View File