Completed
Push — development ( abd435...15ca07 )
by Claudio
02:24
created

Nux::createPoolRoom()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 64
Code Lines 56

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 64
rs 9.3956
c 0
b 0
f 0
cc 1
eloc 56
nc 1
nop 1

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace App\Helpers;
4
5
use App\Models\Room;
6
use App\Models\User;
7
use Illuminate\Http\Request;
8
use Illuminate\Support\Facades\DB;
9
10
/**
11
 * Class Nux
12
 * @package App\Helpers
13
 */
14
final class Nux
15
{
16
    /**
17
     * Create and return a Nux instance
18
     *
19
     * @return Nux
20
     */
21
    public static function getInstance()
22
    {
23
        static $instance = null;
24
25
        if ($instance === null) {
26
            $instance = new static();
27
        }
28
29
        return $instance;
30
    }
31
32
    /**
33
     * Generate a NUX Room
34
     *
35
     * @param Request $request
36
     * @return bool
37
     */
38
    public function generateRoom(Request $request): bool
39
    {
40
        switch ($request->json()->get('roomIndex')):
41
            case 1:
42
                return $this->createBedRoom($request->user());
43
            case 2:
44
                return $this->createPoolRoom($request->user());
45
            case 3:
46
                return $this->createClubRoom($request->user());
47
            default:
48
                return false;
49
        endswitch;
50
    }
51
52
    /**
53
     * Create the NUX Bed Room
54
     *
55
     * @param User $user
56
     * @return bool
57
     */
58
    protected function createBedRoom(User $user): bool
59
    {
60
        $room = (new Room)->store("{$user->name}'s room'", "{$user->name} has entered the building", 'model_h', 25, 12, 610, 2403);
61
        $room->save();
62
63
        DB::table('users')->where('id', $user->uniqueId)->update(['home_room' => $room->id]);
64
65
        DB::table('items')->insert(
66
            ['room_id' => $room->id, 'item_id' => 15542, 'x' => 9, 'y' => 9, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
67
            ['room_id' => $room->id, 'item_id' => 15542, 'x' => 9, 'y' => 12, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
68
            ['room_id' => $room->id, 'item_id' => 15542, 'x' => 10, 'y' => 9, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
69
            ['room_id' => $room->id, 'item_id' => 15542, 'x' => 10, 'y' => 12, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
70
            ['room_id' => $room->id, 'item_id' => 16412, 'x' => 9, 'y' => 5, 'z' => '1.00000', 'rot' => 4, 'extra_data' => ''],
71
            ['room_id' => $room->id, 'item_id' => 16435, 'x' => 7, 'y' => 5, 'z' => '1.00000', 'rot' => 4, 'extra_data' => ''],
72
            ['room_id' => $room->id, 'item_id' => 16486, 'x' => 8, 'y' => 5, 'z' => '1.00000', 'rot' => 4, 'extra_data' => ''],
73
            ['room_id' => $room->id, 'item_id' => 17816, 'x' => 6, 'y' => 2, 'z' => '1.00000', 'rot' => 4, 'extra_data' => '4'],
74
            ['room_id' => $room->id, 'item_id' => 17816, 'x' => 9, 'y' => 2, 'z' => '1.00000', 'rot' => 4, 'extra_data' => '4'],
75
            ['room_id' => $room->id, 'item_id' => 17824, 'x' => 7, 'y' => 2, 'z' => '1.00000', 'rot' => 4, 'extra_data' => '1'],
76
            ['room_id' => $room->id, 'item_id' => 17894, 'x' => 9, 'y' => 10, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
77
            ['room_id' => $room->id, 'item_id' => 18074, 'x' => 8, 'y' => 4, 'z' => '1.00000', 'rot' => 4, 'extra_data' => '1'],
78
            ['room_id' => $room->id, 'item_id' => 18817, 'x' => 3, 'y' => 10, 'z' => '0.01000', 'rot' => 4, 'extra_data' => ''],
79
            ['room_id' => $room->id, 'item_id' => 18835, 'x' => 3, 'y' => 9, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
80
            ['room_id' => $room->id, 'item_id' => 18835, 'x' => 3, 'y' => 11, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
81
            ['room_id' => $room->id, 'item_id' => 18835, 'x' => 5, 'y' => 9, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
82
            ['room_id' => $room->id, 'item_id' => 18835, 'x' => 5, 'y' => 11, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '']
83
        );
84
85
        DB::table('items')->insert(
86
            ['room_id' => $room->id, 'item_id' => 22988, 'wall_pos' => ':w=4,2 l=0,35 l', 'extra_data' => ''],
87
            ['room_id' => $room->id, 'item_id' => 23163, 'wall_pos' => ':w=4,8 l=0,43 r', 'extra_data' => '1'],
88
            ['room_id' => $room->id, 'item_id' => 23261, 'wall_pos' => ':w=2,10 l=2,34 l', 'extra_data' => ''],
89
            ['room_id' => $room->id, 'item_id' => 23331, 'wall_pos' => ':w=2,10 l=2,29 l', 'extra_data' => '']
90
        );
91
92
        return true;
93
    }
94
95
    protected function createPoolRoom(User $user): bool
96
    {
97
        $room = (new Room)->store("{$user->name}'s room'", "{$user->name} has entered the building", 'model_h', 25, 12, 307, 3104, 1.10);
98
        $room->save();
99
100
        DB::table('users')->where('id', $user->uniqueId)->update(['home_room' => $room->id]);
101
102
        DB::table('items')->insert(
103
            ['room_id' => $room->id, 'item_id' => 16715, 'x' => 5, 'y' => 11, 'z' => 1.30000, 'rot' => 0, 'extra_data' => ''],
104
            ['room_id' => $room->id, 'item_id' => 16732, 'x' => 3, 'y' => 10, 'z' => 0.40000, 'rot' => 0, 'extra_data' => ''],
105
            ['room_id' => $room->id, 'item_id' => 17016, 'x' => 3, 'y' => 9, 'z' => 0.00000, 'rot' => 2, 'extra_data' => '1'],
106
            ['room_id' => $room->id, 'item_id' => 17016, 'x' => 3, 'y' => 11, 'z' => 0.00000, 'rot' => 0, 'extra_data' => ''],
107
            ['room_id' => $room->id, 'item_id' => 17016, 'x' => 4, 'y' => 9, 'z' => 0.00000, 'rot' => 4, 'extra_data' => ''],
108
            ['room_id' => $room->id, 'item_id' => 17090, 'x' => 3, 'y' => 9, 'z' => 0.00000, 'rot' => 2, 'extra_data' => '1'],
109
            ['room_id' => $room->id, 'item_id' => 17176, 'x' => 3, 'y' => 9, 'z' => 0.00000, 'rot' => 0, 'extra_data' => ''],
110
            ['room_id' => $room->id, 'item_id' => 17176, 'x' => 3, 'y' => 9, 'z' => 0.40000, 'rot' => 0, 'extra_data' => ''],
111
            ['room_id' => $room->id, 'item_id' => 17176, 'x' => 3, 'y' => 10, 'z' => 0.00000, 'rot' => 0, 'extra_data' => ''],
112
            ['room_id' => $room->id, 'item_id' => 17190, 'x' => 3, 'y' => 11, 'z' => 0.00000, 'rot' => 2, 'extra_data' => ''],
113
            ['room_id' => $room->id, 'item_id' => 17190, 'x' => 4, 'y' => 9, 'z' => 0.00000, 'rot' => 4, 'extra_data' => ''],
114
            ['room_id' => $room->id, 'item_id' => 17191, 'x' => 3, 'y' => 10, 'z' => 0.40000, 'rot' => 2, 'extra_data' => ''],
115
            ['room_id' => $room->id, 'item_id' => 17191, 'x' => 3, 'y' => 12, 'z' => 0.00000, 'rot' => 2, 'extra_data' => ''],
116
            ['room_id' => $room->id, 'item_id' => 17484, 'x' => 8, 'y' => 3, 'z' => 1.00000, 'rot' => 0, 'extra_data' => '0'],
117
            ['room_id' => $room->id, 'item_id' => 17499, 'x' => 7, 'y' => 3, 'z' => 1.00000, 'rot' => 2, 'extra_data' => ''],
118
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 7, 'y' => 2, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
119
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 7, 'y' => 4, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
120
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 7, 'y' => 5, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
121
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 8, 'y' => 2, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
122
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 8, 'y' => 5, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
123
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 9, 'y' => 2, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
124
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 9, 'y' => 5, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
125
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 10, 'y' => 2, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
126
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 10, 'y' => 3, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
127
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 10, 'y' => 4, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
128
            ['room_id' => $room->id, 'item_id' => 17520, 'x' => 10, 'y' => 5, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
129
            ['room_id' => $room->id, 'item_id' => 17987, 'x' => 5, 'y' => 11, 'z' => 0.00000, 'rot' => 0, 'extra_data' => ''],
130
            ['room_id' => $room->id, 'item_id' => 18051, 'x' => 5, 'y' => 2, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
131
            ['room_id' => $room->id, 'item_id' => 18051, 'x' => 5, 'y' => 4, 'z' => 1.00000, 'rot' => 0, 'extra_data' => ''],
132
            ['room_id' => $room->id, 'item_id' => 18051, 'x' => 8, 'y' => 9, 'z' => 0.00000, 'rot' => 0, 'extra_data' => ''],
133
            ['room_id' => $room->id, 'item_id' => 18051, 'x' => 8, 'y' => 11, 'z' => 0.00000, 'rot' => 0, 'extra_data' => ''],
134
            ['room_id' => $room->id, 'item_id' => 18051, 'x' => 9, 'y' => 9, 'z' => 0.00000, 'rot' => 0, 'extra_data' => ''],
135
            ['room_id' => $room->id, 'item_id' => 18051, 'x' => 9, 'y' => 11, 'z' => 0.00000, 'rot' => 0, 'extra_data' => ''],
136
            ['room_id' => $room->id, 'item_id' => 18061, 'x' => 8, 'y' => 8, 'z' => 0.00000, 'rot' => 2, 'extra_data' => ''],
137
            ['room_id' => $room->id, 'item_id' => 18061, 'x' => 8, 'y' => 9, 'z' => 0.00000, 'rot' => 6, 'extra_data' => '1'],
138
            ['room_id' => $room->id, 'item_id' => 18061, 'x' => 10, 'y' => 8, 'z' => 0.00000, 'rot' => 4, 'extra_data' => '1'],
139
            ['room_id' => $room->id, 'item_id' => 18070, 'x' => 8, 'y' => 2, 'z' => 1.50000, 'rot' => 0, 'extra_data' => '1'],
140
            ['room_id' => $room->id, 'item_id' => 18079, 'x' => 9, 'y' => 8, 'z' => 0.00000, 'rot' => 0, 'extra_data' => '1'],
141
            ['room_id' => $room->id, 'item_id' => 18363, 'x' => 3, 'y' => 9, 'z' => 0.80000, 'rot' => 0, 'extra_data' => '2']
142
        );
143
144
        DB::table('items')->insert(
145
            ['room_id' => $room->id, 'item_id' => 22996, 'wall_pos' => ':w=4,8 l=7,45 r', 'extra_data' => ''],
146
            ['room_id' => $room->id, 'item_id' => 22996, 'wall_pos' => ':w=4,8 l=9,45 l', 'extra_data' => ''],
147
            ['room_id' => $room->id, 'item_id' => 23063, 'wall_pos' => ':w=2,10 l=10,56 l', 'extra_data' => ''],
148
            ['room_id' => $room->id, 'item_id' => 23063, 'wall_pos' => ':w=2,11 l=6,58 l', 'extra_data' => ''],
149
            ['room_id' => $room->id, 'item_id' => 23078, 'wall_pos' => ':w=6,1 l=0,26 r', 'extra_data' => '1'],
150
            ['room_id' => $room->id, 'item_id' => 23078, 'wall_pos' => ':w=7,1 l=4,28 r', 'extra_data' => '3'],
151
            ['room_id' => $room->id, 'item_id' => 23078, 'wall_pos' => ':w=8,1 l=13,33 r', 'extra_data' => '1'],
152
            ['room_id' => $room->id, 'item_id' => 23078, 'wall_pos' => ':w=10,1 l=0,26 r', 'extra_data' => '3'],
153
            ['room_id' => $room->id, 'item_id' => 23229, 'wall_pos' => ':w=4,3 l=6,49 l', 'extra_data' => '1'],
154
            ['room_id' => $room->id, 'item_id' => 23229, 'wall_pos' => ':w=4,5 l=11,45 l', 'extra_data' => '1']
155
        );
156
157
        return true;
158
    }
159
160
    /**
161
     * Create the NUX Club Room
162
     *
163
     * @param User $user
164
     * @return bool
165
     */
166
    protected function createClubRoom(User $user): bool
167
    {
168
        $room = (new Room)->store("{$user->name}'s room'", "{$user->name} has entered the building", 'model_h', 25, 12, 610, 2403);
169
        $room->save();
170
171
        DB::table('users')->where('id', $user->uniqueId)->update(['home_room' => $room->id]);
172
173
        DB::table('items')->insert(
174
            ['room_id' => $room->id, 'item_id' => 16904, 'x' => 4, 'y' => 11, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '1'],
175
            ['room_id' => $room->id, 'item_id' => 16905, 'x' => 6, 'y' => 9, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '1'],
176
            ['room_id' => $room->id, 'item_id' => 16905, 'x' => 6, 'y' => 10, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '1'],
177
            ['room_id' => $room->id, 'item_id' => 16905, 'x' => 8, 'y' => 9, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '1'],
178
            ['room_id' => $room->id, 'item_id' => 16905, 'x' => 8, 'y' => 10, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '1'],
179
            ['room_id' => $room->id, 'item_id' => 16907, 'x' => 5, 'y' => 9, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
180
            ['room_id' => $room->id, 'item_id' => 16907, 'x' => 5, 'y' => 10, 'z' => '0.00000', 'rot' => 4, 'extra_data' => ''],
181
            ['room_id' => $room->id, 'item_id' => 16909, 'x' => 4, 'y' => 9, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '1'],
182
            ['room_id' => $room->id, 'item_id' => 16909, 'x' => 4, 'y' => 10, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '1'],
183
            ['room_id' => $room->id, 'item_id' => 16913, 'x' => 6, 'y' => 7, 'z' => '1.30000', 'rot' => 4, 'extra_data' => '3'],
184
            ['room_id' => $room->id, 'item_id' => 16913, 'x' => 9, 'y' => 7, 'z' => '1.30000', 'rot' => 4, 'extra_data' => '3'],
185
            ['room_id' => $room->id, 'item_id' => 17189, 'x' => 10, 'y' => 2, 'z' => '1.00000', 'rot' => 4, 'extra_data' => ''],
186
            ['room_id' => $room->id, 'item_id' => 17573, 'x' => 6, 'y' => 7, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '3'],
187
            ['room_id' => $room->id, 'item_id' => 17573, 'x' => 7, 'y' => 7, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '3'],
188
            ['room_id' => $room->id, 'item_id' => 17573, 'x' => 8, 'y' => 7, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '3'],
189
            ['room_id' => $room->id, 'item_id' => 17573, 'x' => 9, 'y' => 7, 'z' => '0.00000', 'rot' => 4, 'extra_data' => '3'],
190
            ['room_id' => $room->id, 'item_id' => 18048, 'x' => 7, 'y' => 2, 'z' => '1.00000', 'rot' => 4, 'extra_data' => ''],
191
            ['room_id' => $room->id, 'item_id' => 18082, 'x' => 6, 'y' => 3, 'z' => '1.00000', 'rot' => 4, 'extra_data' => ''],
192
            ['room_id' => $room->id, 'item_id' => 18082, 'x' => 9, 'y' => 3, 'z' => '1.00000', 'rot' => 4, 'extra_data' => '']
193
        );
194
195
        DB::table('items')->insert(
196
            ['room_id' => $room->id, 'item_id' => 23008, 'wall_pos' => ':w=4,8 l=0,27 r', 'extra_data' => '2'],
197
            ['room_id' => $room->id, 'item_id' => 23013, 'wall_pos' => ':w=2,10 l=2,44 l', 'extra_data' => ''],
198
            ['room_id' => $room->id, 'item_id' => 23014, 'wall_pos' => ':w=8,1 l=14,27 r', 'extra_data' => '1'],
199
            ['room_id' => $room->id, 'item_id' => 23236, 'wall_pos' => ':w=6,1 l=5,31 r', 'extra_data' => '1'],
200
            ['room_id' => $room->id, 'item_id' => 23239, 'wall_pos' => ':w=4,7 l=4,29 l', 'extra_data' => '']
201
        );
202
203
        return true;
204
    }
205
}