Early working ritual using a snow block & crash fixes
This commit is contained in:
1 parent
5feb2b851f
commit
8521d309e0
3 files changed
+25
-5
No files matched your search
@@ -1,13 +1,23 @@
|
|||||||
package dev.hytalemodding;
|
package dev.hytalemodding;
|
||||||
|
|
||||||
|
import com.hypixel.hytale.math.vector.Rotation3f;
|
||||||
import com.hypixel.hytale.server.core.universe.world.World;
|
import com.hypixel.hytale.server.core.universe.world.World;
|
||||||
|
import com.hypixel.hytale.server.npc.NPCPlugin;
|
||||||
|
import org.joml.Vector3d;
|
||||||
import org.joml.Vector3i;
|
import org.joml.Vector3i;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class RitualSpawner {
|
public class RitualSpawner {
|
||||||
public void blockChangeEvent(String itemId, Vector3i targetPosition, World world) {
|
public void blockChangeEvent(String itemId, Vector3i targetPosition, World world) {
|
||||||
String blockId = world.getBlockType(targetPosition).getId();
|
String blockId = Objects.requireNonNull(world.getBlockType(targetPosition)).getId();
|
||||||
RitualPlugin.LOGGER.atInfo().log(
|
RitualPlugin.LOGGER.atInfo().log(
|
||||||
"a block got placed or removed at the position: %d - %d - %d with the block id: %s and with the item id in hand: %s",
|
"a block got placed or removed at the position: %d - %d - %d with the block id: %s and with the item id in hand: %s",
|
||||||
targetPosition.x, targetPosition.y, targetPosition.z, blockId, itemId);
|
targetPosition.x, targetPosition.y, targetPosition.z, blockId, itemId);
|
||||||
|
if (itemId.compareTo("Soil_Snow") == 0 && blockId.compareTo("Empty") == 0) {
|
||||||
|
RitualPlugin.LOGGER.atInfo().log("Ritual complete");
|
||||||
|
world.execute(() -> {
|
||||||
|
NPCPlugin.get().spawnNPC(world.getEntityStore().getStore(), "Yeti", null, new Vector3d(targetPosition), new Rotation3f(0, 0, 0));
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,7 @@ import com.hypixel.hytale.component.Store;
|
|||||||
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.server.core.event.events.ecs.BreakBlockEvent;
|
import com.hypixel.hytale.server.core.event.events.ecs.BreakBlockEvent;
|
||||||
|
import com.hypixel.hytale.server.core.inventory.ItemStack;
|
||||||
import com.hypixel.hytale.server.core.universe.world.World;
|
import com.hypixel.hytale.server.core.universe.world.World;
|
||||||
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
|
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
|
||||||
import dev.hytalemodding.RitualSpawner;
|
import dev.hytalemodding.RitualSpawner;
|
||||||
@@ -27,10 +28,14 @@ public class RitualBreakBlockEvent extends EntityEventSystem<EntityStore, BreakB
|
|||||||
@NonNullDecl Store<EntityStore> store,
|
@NonNullDecl Store<EntityStore> store,
|
||||||
@NonNullDecl CommandBuffer<EntityStore> commandBuffer,
|
@NonNullDecl CommandBuffer<EntityStore> commandBuffer,
|
||||||
@NonNullDecl BreakBlockEvent breakBlockEvent) {
|
@NonNullDecl BreakBlockEvent breakBlockEvent) {
|
||||||
String itemHolding = breakBlockEvent.getItemInHand().getItemId();
|
ItemStack itemHolding = breakBlockEvent.getItemInHand();
|
||||||
|
String itemId = "Empty";
|
||||||
|
if(itemHolding != null) {
|
||||||
|
itemId = itemHolding.getItemId();
|
||||||
|
}
|
||||||
Vector3i blockPosition = breakBlockEvent.getTargetBlock();
|
Vector3i blockPosition = breakBlockEvent.getTargetBlock();
|
||||||
World world = store.getExternalData().getWorld();
|
World world = store.getExternalData().getWorld();
|
||||||
ritualSpawner.blockChangeEvent(itemHolding, blockPosition, world);
|
ritualSpawner.blockChangeEvent(itemId, blockPosition, world);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NullableDecl
|
@NullableDecl
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.hypixel.hytale.component.CommandBuffer;
|
|||||||
import com.hypixel.hytale.component.Store;
|
import com.hypixel.hytale.component.Store;
|
||||||
import com.hypixel.hytale.component.query.Query;
|
import com.hypixel.hytale.component.query.Query;
|
||||||
import com.hypixel.hytale.server.core.event.events.ecs.PlaceBlockEvent;
|
import com.hypixel.hytale.server.core.event.events.ecs.PlaceBlockEvent;
|
||||||
|
import com.hypixel.hytale.server.core.inventory.ItemStack;
|
||||||
import com.hypixel.hytale.server.core.universe.world.World;
|
import com.hypixel.hytale.server.core.universe.world.World;
|
||||||
import dev.hytalemodding.RitualSpawner;
|
import dev.hytalemodding.RitualSpawner;
|
||||||
import com.hypixel.hytale.component.system.EntityEventSystem;
|
import com.hypixel.hytale.component.system.EntityEventSystem;
|
||||||
@@ -27,10 +28,14 @@ public class RitualPlaceBlockEvent extends EntityEventSystem<EntityStore, PlaceB
|
|||||||
@NonNullDecl Store<EntityStore> store,
|
@NonNullDecl Store<EntityStore> store,
|
||||||
@NonNullDecl CommandBuffer<EntityStore> commandBuffer,
|
@NonNullDecl CommandBuffer<EntityStore> commandBuffer,
|
||||||
@NonNullDecl PlaceBlockEvent placeBlockEvent) {
|
@NonNullDecl PlaceBlockEvent placeBlockEvent) {
|
||||||
String blockId = placeBlockEvent.getItemInHand().getItemId();
|
ItemStack itemHolding = placeBlockEvent.getItemInHand();
|
||||||
|
String itemId = "Empty";
|
||||||
|
if(itemHolding != null) {
|
||||||
|
itemId = itemHolding.getItemId();
|
||||||
|
}
|
||||||
Vector3i targetPosition = placeBlockEvent.getTargetBlock();
|
Vector3i targetPosition = placeBlockEvent.getTargetBlock();
|
||||||
World world = store.getExternalData().getWorld();
|
World world = store.getExternalData().getWorld();
|
||||||
ritualSpawner.blockChangeEvent(blockId, targetPosition, world);
|
ritualSpawner.blockChangeEvent(itemId, targetPosition, world);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NullableDecl
|
@NullableDecl
|
||||||
|
|||||||
Reference in new issue
Block a user