Huge refactor, Adding more code to engine from the game

This commit is contained in:
sam
2026-03-19 22:32:26 +05:45
parent 493338d91b
commit 09941e3e1d
10 changed files with 799 additions and 39 deletions
+30 -6
View File
@@ -1,7 +1,6 @@
package ion
import "core:slice"
import "core:fmt"
package edit2d
import im "shared:odin-imgui"
import "core:fmt"
import b2 "vendor:box2d"
/*
@@ -23,11 +22,11 @@ EditMode :: enum
JOINT,
}
interface_state :: struct
interface_state :: struct
{
entity_defs : [dynamic]^engine_entity_def,
entities : [dynamic]^engine_entity,
selected_entity : ^i32,
selected_entity : i32,
world : ^engine_world,
state : ^engine_state,
@@ -42,6 +41,15 @@ interface_state :: struct
curr_static_index : static_index_global,
}
interface_get_default :: proc(interface: ^interface_state)
{
interface.selected_entity = 0
interface.vertex_index = new(i32)
interface.vertex_index^ = 0
interface.chain_index = new(i32)
interface.chain_index^ = 0
}
interface_draw_options :: proc(state: ^engine_state) {
debug_draw := &state.draw.debug_draw
@@ -66,6 +74,23 @@ interface_draw_options :: proc(state: ^engine_state) {
interface_all :: proc(interface: ^interface_state) -> bool
{
ret := false
if interface.selected_entity <0
{
interface.selected_entity = 0
}
if im.Begin("Edit Mode", nil)
{
for type in EditMode
{
if im.RadioButton(fmt.ctprint(type), interface.edit_mode == type)
{
interface.edit_mode = type
}
}
}
im.End()
if im.Begin("Box2d interface")
{
if im.BeginTabBar("Tabs")
@@ -77,7 +102,6 @@ interface_all :: proc(interface: ^interface_state) -> bool
im.EndTabItem()
}
if im.BeginTabItem("Joints", nil, {})
{
if interface_joints(interface) do ret = true