Fix position of new entities
This commit is contained in:
+10
-3
@@ -2,6 +2,7 @@ package edit2d
|
||||
|
||||
import b2 "vendor:box2d"
|
||||
//import im "shared:odin-imgui"
|
||||
import "core:fmt"
|
||||
import "vendor:glfw"
|
||||
import "base:runtime"
|
||||
import draw "./draw"
|
||||
@@ -78,11 +79,17 @@ handle_entity_mode :: proc(
|
||||
}
|
||||
else if is_key_pressed(state, glfw.MOUSE_BUTTON_RIGHT)
|
||||
{
|
||||
|
||||
new_def := E {
|
||||
engine = default_engine_entity_def(),
|
||||
type = .NPC
|
||||
}
|
||||
|
||||
x_pos, y_pos := glfw.GetCursorPos(state.window)
|
||||
pos := draw.camera_convert_screen_to_world_32(&state.draw.cam, {f32(x_pos), f32(y_pos)})
|
||||
new_def.body_def.position = pos
|
||||
|
||||
|
||||
interface.selected_entity = i32(len(level.entity_defs))
|
||||
append(&level.entity_defs, new_def)
|
||||
ret = true
|
||||
@@ -181,17 +188,17 @@ handle_input :: proc(
|
||||
|
||||
|
||||
|
||||
ret := false
|
||||
#partial switch game.interface.edit_mode
|
||||
{
|
||||
case .ENTITY : handle_entity_mode(E, state, game_data)
|
||||
case .ENTITY : ret = handle_entity_mode(E, state, game_data)
|
||||
// case .VERTICES : interface_handle_vertices_mode(state, game_data)
|
||||
// case .OVERVIEW : interface_handle_overview_mode(state, game_data)
|
||||
// case .CHAIN : interface_handle_chain_mode(state, game_data)
|
||||
// case .JOINT : interface_handle_joint_mode(state, game_data)
|
||||
}
|
||||
|
||||
return false
|
||||
|
||||
return ret
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user