blob: b947012bb9dd2727e15ec67e7565f3bdadc3eca6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#include "client/pch.hh"
#include "client/experiments.hh"
#include "shared/world/dimension.hh"
#include "shared/world/item_registry.hh"
#include "shared/game_items.hh"
#include "shared/game_voxels.hh"
#include "client/gui/chat.hh"
#include "client/gui/hotbar.hh"
#include "client/gui/status_lines.hh"
#include "client/io/glfw.hh"
#include "client/world/player_target.hh"
#include "client/globals.hh"
#include "client/session.hh"
static void on_glfw_mouse_button(const io::GlfwMouseButtonEvent& event)
{
if(!globals::gui_screen && session::is_ingame()) {
if((event.action == GLFW_PRESS) && world::player_target::voxel) {
if(event.button == GLFW_MOUSE_BUTTON_LEFT) {
experiments::attack();
return;
}
if(event.button == GLFW_MOUSE_BUTTON_RIGHT) {
experiments::interact();
return;
}
}
}
}
void experiments::init(void)
{
globals::dispatcher.sink<io::GlfwMouseButtonEvent>().connect<&on_glfw_mouse_button>();
}
void experiments::init_late(void)
{
gui::hotbar::slots[0] = game_items::cobblestone;
gui::hotbar::slots[1] = game_items::stone;
gui::hotbar::slots[2] = game_items::dirt;
gui::hotbar::slots[3] = game_items::grass;
gui::hotbar::slots[4] = game_items::oak_leaves;
gui::hotbar::slots[5] = game_items::oak_planks;
gui::hotbar::slots[6] = game_items::oak_log;
gui::hotbar::slots[7] = game_items::glass;
gui::hotbar::slots[8] = game_items::slime;
}
void experiments::shutdown(void)
{
}
void experiments::update(void)
{
}
void experiments::update_late(void)
{
}
void experiments::attack(void)
{
globals::dimension->set_voxel(nullptr, world::player_target::coord);
}
void experiments::interact(void)
{
if(auto info = world::item_registry::find(gui::hotbar::slots[gui::hotbar::active_slot])) {
if(info->place_voxel) {
globals::dimension->set_voxel(info->place_voxel, world::player_target::coord + world::player_target::normal);
}
}
}
|