99import net .minestom .server .entity .Player ;
1010import net .minestom .server .event .GlobalEventHandler ;
1111import net .minestom .server .event .player .PlayerLoginEvent ;
12+ import net .minestom .server .event .player .PlayerMoveEvent ;
1213import net .minestom .server .instance .InstanceContainer ;
1314import net .minestom .server .instance .InstanceManager ;
1415import net .minestom .server .instance .block .Block ;
1516import net .minestom .server .network .packet .server .play .ParticlePacket ;
1617import net .minestom .server .timer .ExecutionType ;
1718import net .minestom .server .timer .TaskSchedule ;
1819import runtime .Parser ;
19- import runtime .ParticleEmitter ;
2020
2121import java .io .*;
2222import java .lang .reflect .InvocationTargetException ;
23- import java .util .ArrayList ;
2423import java .util .Collection ;
25- import java .util .List ;
2624
2725public class Demo {
2826 static final Gson GSON = new GsonBuilder ().setPrettyPrinting ().disableHtmlEscaping ().create ();
@@ -35,14 +33,11 @@ public static void main(String[] args) throws FileNotFoundException, Unsupported
3533 InstanceContainer instanceContainer = instanceManager .createInstanceContainer ();
3634 instanceContainer .setGenerator (unit -> unit .modifier ().fillHeight (0 , 40 , Block .STONE ));
3735
38- List <ParticleEmitter > emitters = new ArrayList <>();
39- for (int x = 0 ; x < 1 ; ++x ) {
40- File file = new File ("./src/test/resources/particles/cool.particle.json" );
41- FileInputStream fis = new FileInputStream (file );
42- JsonReader reader = new JsonReader (new InputStreamReader (fis , "UTF-8" ));
43- JsonObject map = GSON .fromJson (reader , JsonObject .class );
44- emitters .add (Parser .parse (2000 , map ));
45- }
36+ File file = new File ("./src/test/resources/particles/cool.particle.json" );
37+ FileInputStream fis = new FileInputStream (file );
38+ JsonReader reader = new JsonReader (new InputStreamReader (fis , "UTF-8" ));
39+ JsonObject map = GSON .fromJson (reader , JsonObject .class );
40+ var emitter = Parser .parse (1000 , map );
4641
4742 // Add an event callback to specify the spawning instance (and the spawn position)
4843 GlobalEventHandler globalEventHandler = MinecraftServer .getGlobalEventHandler ();
@@ -52,25 +47,24 @@ public static void main(String[] args) throws FileNotFoundException, Unsupported
5247 player .setGameMode (GameMode .CREATIVE );
5348 event .setSpawningInstance (instanceContainer );
5449 player .setRespawnPoint (new Pos (0 , 42 , 0 ));
55- for (ParticleEmitter emitter : emitters ) {
56- emitter .setPosition (new Vec (0 , 60 , 0 ));
57- }
50+ emitter .setPosition (new Vec (0 , 60 , 0 ));
5851 });
5952
53+ // globalEventHandler.addListener(PlayerMoveEvent.class, event -> {
54+ // emitter.setRotation(-event.getPlayer().getPosition().yaw());
55+ // emitter.setPosition(event.getPlayer().getPosition().add(0, 1.1, 0));
56+ // });
57+
6058 MinecraftServer .getSchedulerManager ().scheduleTask (() -> {
6159 Collection <ParticlePacket > packets = null ;
62- for (ParticleEmitter emitter : emitters ) {
63- try {
64- for (int i = 0 ; i <= 1 ; ++i ) {
65- packets = emitter .tick ();
66- packets .forEach (packet -> {
67- instanceContainer .getPlayers ().forEach (p -> p .sendPackets (packet ));
68- });
69- }
70- } catch (InvocationTargetException | NoSuchMethodException | InstantiationException |
71- IllegalAccessException e ) {
72- throw new RuntimeException (e );
73- }
60+ try {
61+ packets = emitter .tick ();
62+ packets .forEach (packet -> {
63+ instanceContainer .getPlayers ().forEach (p -> p .sendPackets (packet ));
64+ });
65+ } catch (InvocationTargetException | NoSuchMethodException | InstantiationException |
66+ IllegalAccessException e ) {
67+ throw new RuntimeException (e );
7468 }
7569 }, TaskSchedule .immediate (), TaskSchedule .millis (1 ), ExecutionType .ASYNC );
7670
0 commit comments