66use pocketmine \item \Item ;
77use pocketmine \Player ;
88use ReflectionClass ;
9- use Sandertv \BlockSniper \brush \shapes \CubeShape ;
10- use Sandertv \BlockSniper \brush \shapes \CuboidShape ;
11- use Sandertv \BlockSniper \brush \shapes \CylinderStandingShape ;
12- use Sandertv \BlockSniper \brush \shapes \SphereShape ;
13- use Sandertv \BlockSniper \brush \types \BiomeType ;
14- use Sandertv \BlockSniper \brush \types \CleanEntitiesType ;
15- use Sandertv \BlockSniper \brush \types \CleanType ;
16- use Sandertv \BlockSniper \brush \types \DrainType ;
17- use Sandertv \BlockSniper \brush \types \ExpandType ;
18- use Sandertv \BlockSniper \brush \types \FillType ;
19- use Sandertv \BlockSniper \brush \types \FlattenType ;
20- use Sandertv \BlockSniper \brush \types \LayerType ;
21- use Sandertv \BlockSniper \brush \types \LeafBlowerType ;
22- use Sandertv \BlockSniper \brush \types \MeltType ;
23- use Sandertv \BlockSniper \brush \types \OverlayType ;
24- use Sandertv \BlockSniper \brush \types \ReplaceType ;
259use Sandertv \BlockSniper \Loader ;
2610
2711class Brush {
@@ -188,25 +172,9 @@ public static function setShape(Player $player, string $shape) {
188172 * @return BaseShape
189173 */
190174 public static function getShape (Player $ player ): BaseShape {
191- $ shapeName = self ::$ brush [$ player ->getId ()]["shape " ];
192- switch ($ shapeName ) {
193- case "cube " :
194- $ shape = new CubeShape (self ::$ owner , $ player , $ player ->getLevel (), self ::getSize ($ player ), $ player ->getTargetBlock (100 ));
195- break ;
196- case "sphere " :
197- $ shape = new SphereShape (self ::$ owner , $ player , $ player ->getLevel (), self ::getSize ($ player ), $ player ->getTargetBlock (100 ));
198- break ;
199- case "cuboid " :
200- $ shape = new CuboidShape (self ::$ owner , $ player , $ player ->getLevel (), self ::getSize ($ player ), self ::getHeight ($ player ), $ player ->getTargetBlock (100 ));
201- break ;
202- case "cylinder " :
203- $ shape = new CylinderStandingShape (self ::$ owner , $ player , $ player ->getLevel (), self ::getSize ($ player ), self ::getHeight ($ player ), $ player ->getTargetBlock (100 ));
204- break ;
205-
206- default :
207- $ shape = new SphereShape (self ::$ owner , $ player , $ player ->getLevel (), self ::getSize ($ player ), $ player ->getTargetBlock (100 ));
208- break ;
209- }
175+ $ shapeName = 'Sandertv\BlockSniper\brush\shapes \\' . (ucfirst (self ::$ brush [$ player ->getId ()]["shape " ]) . "Shape " );
176+ $ shape = new $ shapeName (self ::$ owner , $ player , $ player ->getLevel (), self ::getSize ($ player ), $ player ->getTargetBlock (100 ));
177+
210178 return $ shape ;
211179 }
212180
@@ -235,49 +203,9 @@ public static function getHeight(Player $player): int {
235203 * @return BaseType
236204 */
237205 public static function getType (Player $ player , array $ blocks = []): BaseType {
238- $ typeName = self ::$ brush [$ player ->getId ()]["type " ];
239- switch ($ typeName ) {
240- case "fill " :
241- $ type = new FillType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
242- break ;
243- case "clean " :
244- $ type = new CleanType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
245- break ;
246- case "drain " :
247- $ type = new DrainType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
248- break ;
249- case "flatten " :
250- $ type = new FlattenType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks , $ player ->getTargetBlock (100 ));
251- break ;
252- case "layer " :
253- $ type = new LayerType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks , $ player ->getTargetBlock (100 ));
254- break ;
255- case "leafblower " :
256- $ type = new LeafBlowerType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
257- break ;
258- case "overlay " :
259- $ type = new OverlayType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
260- break ;
261- case "replace " :
262- $ type = new ReplaceType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
263- break ;
264- case "expand " :
265- $ type = new ExpandType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
266- break ;
267- case "melt " :
268- $ type = new MeltType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
269- break ;
270- case "cleanentities " :
271- $ type = new CleanEntitiesType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
272- break ;
273- case "biome " :
274- $ type = new BiomeType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
275- break ;
276-
277- default :
278- $ type = new FillType (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
279- break ;
280- }
206+ $ typeName = 'Sandertv\BlockSniper\brush\types \\' . (ucfirst (self ::$ brush [$ player ->getId ()]["type " ]) . "Type " );
207+ $ type = new $ typeName (self ::$ owner , $ player , $ player ->getLevel (), $ blocks );
208+
281209 return $ type ;
282210 }
283211
@@ -289,7 +217,7 @@ public static function setBiome(Player $player, string $biome) {
289217 self ::$ brush [$ player ->getId ()]["biome " ] = $ biome ;
290218 }
291219
292- public static function getBiomeIdFromString (Player $ player ): int {
220+ public static function getBiomeId (Player $ player ): int {
293221 $ biomes = new ReflectionClass ('pocketmine\level\generator\biome\Biome ' );
294222 $ const = strtoupper (str_replace (" " , "_ " , self ::$ brush [$ player ->getId ()]["biome " ]));
295223 if ($ biomes ->hasConstant ($ const )) {
0 commit comments