Add ParticleSystem
This commit is contained in:
@@ -5,8 +5,8 @@ import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
|
|||||||
import com.tikaiz.commands.ExampleCommand;
|
import com.tikaiz.commands.ExampleCommand;
|
||||||
import com.tikaiz.components.EndermanTeleportComponent;
|
import com.tikaiz.components.EndermanTeleportComponent;
|
||||||
import com.tikaiz.singletons.LoggerSingleton;
|
import com.tikaiz.singletons.LoggerSingleton;
|
||||||
import com.tikaiz.systems.AddDefaultComponentTickSystem;
|
import com.tikaiz.systems.AddEndermanTeleportComponentTickSystem;
|
||||||
import com.tikaiz.systems.CustomComponentTickSystem;
|
import com.tikaiz.systems.EndermanComponentTickSystem;
|
||||||
import com.tikaiz.systems.DamageEventSystem;
|
import com.tikaiz.systems.DamageEventSystem;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
@@ -23,25 +23,8 @@ public class HytaleDemo extends JavaPlugin {
|
|||||||
this.getCommandRegistry().registerCommand(new ExampleCommand());
|
this.getCommandRegistry().registerCommand(new ExampleCommand());
|
||||||
var type = this.getEntityStoreRegistry()
|
var type = this.getEntityStoreRegistry()
|
||||||
.registerComponent(EndermanTeleportComponent.class, EndermanTeleportComponent::new);
|
.registerComponent(EndermanTeleportComponent.class, EndermanTeleportComponent::new);
|
||||||
this.getEntityStoreRegistry().registerSystem(new AddDefaultComponentTickSystem(type));
|
this.getEntityStoreRegistry().registerSystem(new AddEndermanTeleportComponentTickSystem(type));
|
||||||
this.getEntityStoreRegistry().registerSystem(new CustomComponentTickSystem(type));
|
this.getEntityStoreRegistry().registerSystem(new EndermanComponentTickSystem(type));
|
||||||
this.getEntityStoreRegistry().registerSystem(new DamageEventSystem(type));
|
this.getEntityStoreRegistry().registerSystem(new DamageEventSystem(type));
|
||||||
// var list = new ArrayList<EntityStore>();
|
|
||||||
// this.getEventRegistry().registerGlobal(AllWorldsLoadedEvent.class, (x)->{
|
|
||||||
// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("World has loaded!");
|
|
||||||
// });
|
|
||||||
// Universe.get().getDefaultWorld().getEntityStore().getStore().fetch(new SystemType<>(), Query.any(),list);
|
|
||||||
// EntityStore.REGISTRY.assertInStoreThread();
|
|
||||||
// this.getEventRegistry().registerGlobal(LoadedNPCEvent.class, (x)->{
|
|
||||||
// String id = x.getBuilderInfo().;
|
|
||||||
// Arrays.stream(x.getNPCs()).forEach(x->x.getFlockDefinition().);
|
|
||||||
// x.getAllNPCs().forEach((integer, builderInfo) -> {
|
|
||||||
// builderInfo.
|
|
||||||
// });
|
|
||||||
// NotificationUtil.sendNotificationToUniverse(x.getBuilderInfo().getKeyName());
|
|
||||||
// });
|
|
||||||
// this.getEventRegistry().register(Damage.class,(x)->{
|
|
||||||
// Damage.Source source = x.getSource();
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -57,28 +57,8 @@ public class ExampleCommand extends AbstractPlayerCommand {
|
|||||||
|
|
||||||
Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f());
|
Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f());
|
||||||
store.addComponent(ref,Teleport.getComponentType(),teleportForPlayer);
|
store.addComponent(ref,Teleport.getComponentType(),teleportForPlayer);
|
||||||
// var results = new ArrayList<Object>();
|
|
||||||
// store.fetch();
|
|
||||||
|
|
||||||
// transform.setPosition(newPos);
|
|
||||||
|
|
||||||
playerRef.sendMessage(Message.raw("Set Player Position to: " + newPos));
|
playerRef.sendMessage(Message.raw("Set Player Position to: " + newPos));
|
||||||
|
|
||||||
|
|
||||||
// String message = messageArg.get(commandContext); // get the argument text by the player
|
|
||||||
// playerRef.sendMessage(Message.raw("Player Name: " + playerRef.getUsername()));
|
|
||||||
// var mass = store.getComponent(ref, PhysicsValues.getComponentType()).getMass();
|
|
||||||
// playerRef.sendMessage(Message.raw("Player Mass: " + mass));
|
|
||||||
// var archetype = store.getArchetype(ref);
|
|
||||||
// playerRef.sendMessage(Message.raw("Archetype count: "+archetype.length()));
|
|
||||||
// for (int i = 0; i < archetype.length(); i++) {
|
|
||||||
// var type = archetype.get(i);
|
|
||||||
// if (type!=null){
|
|
||||||
// var typeClass = type.getTypeClass();
|
|
||||||
// playerRef.sendMessage(Message.raw("Type class: "+typeClass));
|
|
||||||
// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Type class: "+typeClass);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,21 +1,12 @@
|
|||||||
package com.tikaiz.helpers;
|
package com.tikaiz.helpers;
|
||||||
|
|
||||||
import com.hypixel.hytale.component.CommandBuffer;
|
|
||||||
import com.hypixel.hytale.component.Ref;
|
|
||||||
import com.hypixel.hytale.math.vector.Vector3d;
|
import com.hypixel.hytale.math.vector.Vector3d;
|
||||||
import com.hypixel.hytale.math.vector.Vector3f;
|
|
||||||
import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
|
|
||||||
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
|
|
||||||
import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
|
|
||||||
|
|
||||||
public abstract class TeleportHelper {
|
public abstract class TeleportHelper {
|
||||||
|
|
||||||
public static void randomTeleport(@NonNullDecl CommandBuffer<EntityStore> commandBuffer, Ref<EntityStore> ref, Vector3d position) {
|
public static Vector3d randomTeleport(Vector3d position) {
|
||||||
Vector3d addPos = new Vector3d((Math.random() * 20) - 10, 3, (Math.random() * 20) - 10);
|
Vector3d addPos = new Vector3d((Math.random() * 20) - 10, 3, (Math.random() * 20) - 10);
|
||||||
|
|
||||||
var newPos = position.add(addPos);
|
return position.add(addPos);
|
||||||
|
|
||||||
Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f());
|
|
||||||
commandBuffer.addComponent(ref, Teleport.getComponentType(), teleportForPlayer);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import org.checkerframework.checker.nullness.compatqual.NullableDecl;
|
|||||||
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class AddDefaultComponentTickSystem extends EntityTickingSystem<EntityStore> {
|
public class AddEndermanTeleportComponentTickSystem extends EntityTickingSystem<EntityStore> {
|
||||||
private final ComponentType<EntityStore, EndermanTeleportComponent> customComponentType;
|
private final ComponentType<EntityStore, EndermanTeleportComponent> customComponentType;
|
||||||
|
|
||||||
public AddDefaultComponentTickSystem(ComponentType<EntityStore, EndermanTeleportComponent> poisonComponentType) {
|
public AddEndermanTeleportComponentTickSystem(ComponentType<EntityStore, EndermanTeleportComponent> poisonComponentType) {
|
||||||
this.customComponentType = poisonComponentType;
|
this.customComponentType = poisonComponentType;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@@ -31,7 +31,6 @@ public class AddDefaultComponentTickSystem extends EntityTickingSystem<EntitySto
|
|||||||
}
|
}
|
||||||
DisplayNameComponent displayNameComponent = store.getComponent(ref, DisplayNameComponent.getComponentType());
|
DisplayNameComponent displayNameComponent = store.getComponent(ref, DisplayNameComponent.getComponentType());
|
||||||
if (displayNameComponent == null || displayNameComponent.getDisplayName() == null) {
|
if (displayNameComponent == null || displayNameComponent.getDisplayName() == null) {
|
||||||
// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Added Component to ref!");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var displayName = displayNameComponent.getDisplayName().getAnsiMessage();
|
var displayName = displayNameComponent.getDisplayName().getAnsiMessage();
|
||||||
@@ -3,9 +3,13 @@ package com.tikaiz.systems;
|
|||||||
import com.hypixel.hytale.component.*;
|
import com.hypixel.hytale.component.*;
|
||||||
import com.hypixel.hytale.component.query.Query;
|
import com.hypixel.hytale.component.query.Query;
|
||||||
import com.hypixel.hytale.component.system.EntityEventSystem;
|
import com.hypixel.hytale.component.system.EntityEventSystem;
|
||||||
|
import com.hypixel.hytale.math.vector.Vector3d;
|
||||||
|
import com.hypixel.hytale.math.vector.Vector3f;
|
||||||
import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent;
|
import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent;
|
||||||
import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
|
import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
|
||||||
import com.hypixel.hytale.server.core.modules.entity.damage.Damage;
|
import com.hypixel.hytale.server.core.modules.entity.damage.Damage;
|
||||||
|
import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
|
||||||
|
import com.hypixel.hytale.server.core.universe.world.ParticleUtil;
|
||||||
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
|
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
|
||||||
import com.hypixel.hytale.server.core.util.NotificationUtil;
|
import com.hypixel.hytale.server.core.util.NotificationUtil;
|
||||||
import com.tikaiz.components.EndermanTeleportComponent;
|
import com.tikaiz.components.EndermanTeleportComponent;
|
||||||
@@ -36,10 +40,15 @@ public class DamageEventSystem extends EntityEventSystem<EntityStore, Damage> {
|
|||||||
assert displayNameComponent.getDisplayName() != null;
|
assert displayNameComponent.getDisplayName() != null;
|
||||||
var name = displayNameComponent.getDisplayName().getAnsiMessage();
|
var name = displayNameComponent.getDisplayName().getAnsiMessage();
|
||||||
|
|
||||||
|
|
||||||
NotificationUtil.sendNotificationToUniverse(name);
|
NotificationUtil.sendNotificationToUniverse(name);
|
||||||
if (Math.random() < 0.3) {
|
if (Math.random() < 0.3) {
|
||||||
var transform = transformComponent.getTransform();
|
var transform = transformComponent.getTransform();
|
||||||
randomTeleport(commandBuffer, ref, transform.getPosition());
|
ParticleUtil.spawnParticleEffect("Effect_Death",transform.getPosition(),commandBuffer);
|
||||||
|
Vector3d newPos = randomTeleport(transform.getPosition());
|
||||||
|
ParticleUtil.spawnParticleEffect("Effect_Death",transform.getPosition(),commandBuffer);
|
||||||
|
Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f());
|
||||||
|
commandBuffer.addComponent(ref, Teleport.getComponentType(), teleportForPlayer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,11 @@ package com.tikaiz.systems;
|
|||||||
import com.hypixel.hytale.component.*;
|
import com.hypixel.hytale.component.*;
|
||||||
import com.hypixel.hytale.component.query.Query;
|
import com.hypixel.hytale.component.query.Query;
|
||||||
import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
|
import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
|
||||||
|
import com.hypixel.hytale.math.vector.Vector3d;
|
||||||
|
import com.hypixel.hytale.math.vector.Vector3f;
|
||||||
import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
|
import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
|
||||||
|
import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
|
||||||
|
import com.hypixel.hytale.server.core.universe.world.ParticleUtil;
|
||||||
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
|
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
|
||||||
import com.tikaiz.components.EndermanTeleportComponent;
|
import com.tikaiz.components.EndermanTeleportComponent;
|
||||||
import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
|
import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
|
||||||
@@ -11,10 +15,10 @@ import org.checkerframework.checker.nullness.compatqual.NullableDecl;
|
|||||||
|
|
||||||
import static com.tikaiz.helpers.TeleportHelper.randomTeleport;
|
import static com.tikaiz.helpers.TeleportHelper.randomTeleport;
|
||||||
|
|
||||||
public class CustomComponentTickSystem extends EntityTickingSystem<EntityStore> {
|
public class EndermanComponentTickSystem extends EntityTickingSystem<EntityStore> {
|
||||||
private final ComponentType<EntityStore, EndermanTeleportComponent> customComponentType;
|
private final ComponentType<EntityStore, EndermanTeleportComponent> customComponentType;
|
||||||
|
|
||||||
public CustomComponentTickSystem(ComponentType<EntityStore, EndermanTeleportComponent> poisonComponentType) {
|
public EndermanComponentTickSystem(ComponentType<EntityStore, EndermanTeleportComponent> poisonComponentType) {
|
||||||
this.customComponentType = poisonComponentType;
|
this.customComponentType = poisonComponentType;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,8 +38,12 @@ public class CustomComponentTickSystem extends EntityTickingSystem<EntityStore>
|
|||||||
endermanTeleportComponent.addElapsedTime(dt);
|
endermanTeleportComponent.addElapsedTime(dt);
|
||||||
if (endermanTeleportComponent.getElapsedTime() >= endermanTeleportComponent.getTickInterval()) {
|
if (endermanTeleportComponent.getElapsedTime() >= endermanTeleportComponent.getTickInterval()) {
|
||||||
endermanTeleportComponent.resetElapsedTime();
|
endermanTeleportComponent.resetElapsedTime();
|
||||||
|
ParticleUtil.spawnParticleEffect("Effect_Death",transformComponent.getPosition(),commandBuffer);
|
||||||
|
Vector3d newPos = randomTeleport(transformComponent.getPosition());
|
||||||
|
ParticleUtil.spawnParticleEffect("Effect_Death",transformComponent.getPosition(),commandBuffer);
|
||||||
|
|
||||||
randomTeleport(commandBuffer, ref, transformComponent.getPosition());
|
Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f());
|
||||||
|
commandBuffer.addComponent(ref, Teleport.getComponentType(), teleportForPlayer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
package com.tikaiz.systems;
|
|
||||||
|
|
||||||
//public class EntitySpawnEventSystem extends EntityEventSystem<EntityStore, LoadedNPCEvent> {
|
|
||||||
// protected EntitySpawnEventSystem() {
|
|
||||||
// super(LoadedNPCEvent.class);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//// @Override
|
|
||||||
//// public void handle(int i,
|
|
||||||
//// @NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk,
|
|
||||||
//// @NonNullDecl Store<EntityStore> store,
|
|
||||||
//// @NonNullDecl CommandBuffer<EntityStore> commandBuffer,
|
|
||||||
//// @NonNullDecl Damage damage) {
|
|
||||||
//// Ref<EntityStore> ref = archetypeChunk.getReferenceTo(i);
|
|
||||||
//// TransformComponent component = store.getComponent(ref, TransformComponent.getComponentType());
|
|
||||||
//// if (component == null) {
|
|
||||||
//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.SEVERE).log("Transform was Null");
|
|
||||||
//// return;
|
|
||||||
//// }
|
|
||||||
//// var displayNameComponent = store.getComponent(ref, DisplayNameComponent.getComponentType());
|
|
||||||
//// if (displayNameComponent == null) {
|
|
||||||
//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.SEVERE).log("Display name was Null");
|
|
||||||
//// return;
|
|
||||||
//// }
|
|
||||||
////
|
|
||||||
//// NotificationUtil.sendNotificationToUniverse(displayNameComponent.getDisplayName());
|
|
||||||
//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Display name: " + displayNameComponent.getDisplayName());
|
|
||||||
////
|
|
||||||
//// var uuidComponent = store.getComponent(ref, UUIDComponent.getComponentType());
|
|
||||||
//// if (uuidComponent == null) {
|
|
||||||
//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.SEVERE).log("UUID was Null");
|
|
||||||
//// return;
|
|
||||||
//// }
|
|
||||||
//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("UUID: " + uuidComponent.getUuid());
|
|
||||||
//// var transform = component.getTransform();
|
|
||||||
//// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log("Transform: "+transform);
|
|
||||||
////
|
|
||||||
//// Vector3d addPos = new Vector3d((Math.random()*20)-10, 3, (Math.random()*20)-10);
|
|
||||||
////
|
|
||||||
//// var newPos = transform.getPosition().add(addPos);
|
|
||||||
////
|
|
||||||
//// Teleport teleportForPlayer = Teleport.createForPlayer(newPos, new Vector3f());
|
|
||||||
//// new Thread(()->{
|
|
||||||
//// store.addComponent(ref,Teleport.getComponentType(),teleportForPlayer);
|
|
||||||
//// }).start();
|
|
||||||
//// }
|
|
||||||
//
|
|
||||||
// @NullableDecl
|
|
||||||
// @Override
|
|
||||||
// public Query<EntityStore> getQuery() {
|
|
||||||
// return Query.any();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void handle(int i,
|
|
||||||
// @NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk,
|
|
||||||
// @NonNullDecl Store<EntityStore> store,
|
|
||||||
// @NonNullDecl CommandBuffer<EntityStore> commandBuffer,
|
|
||||||
// @NonNullDecl LoadedNPCEvent loadedNPCEvent) {
|
|
||||||
// Ref<EntityStore> ref = archetypeChunk.getReferenceTo(i);
|
|
||||||
// var transformComponent = store.getComponent(ref, TransformComponent.getComponentType());
|
|
||||||
// NotificationUtil.sendNotificationToUniverse(transformComponent != null ? transformComponent.getTransform().toString() : "null");
|
|
||||||
// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log(transformComponent != null ? transformComponent.getTransform().toString() : "null");
|
|
||||||
// var displayNameComponent = store.getComponent(ref, DisplayNameComponent.getComponentType());
|
|
||||||
// NotificationUtil.sendNotificationToUniverse(displayNameComponent != null ? displayNameComponent.getDisplayName() != null ? displayNameComponent.getDisplayName().getAnsiMessage() : "null" : "null");
|
|
||||||
// LoggerSingleton.getInstance().getHytaleLogger().at(Level.INFO).log(displayNameComponent != null ? displayNameComponent.getDisplayName() != null ? displayNameComponent.getDisplayName().getAnsiMessage() : "null" : "null");
|
|
||||||
//
|
|
||||||
//// loadedNPCEvent.getBuilderInfo().getKeyName()
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
Reference in New Issue
Block a user