made it client-compatible, added icon, fixed bugs

This commit is contained in:
2024-11-23 17:40:12 +01:00
parent e007d24f61
commit 245e49a0fa
6 changed files with 90 additions and 6 deletions
@@ -0,0 +1,56 @@
package com.bytedice.bde_particles.client
import com.bytedice.bde_particles.commands.GiveEmitterTool
import com.bytedice.bde_particles.commands.KillAllEmitters
import com.bytedice.bde_particles.commands.ManageEmitters
import com.bytedice.bde_particles.init
import com.bytedice.bde_particles.onRightClick
import com.bytedice.bde_particles.tick
import net.fabricmc.api.ClientModInitializer
import net.fabricmc.api.EnvType
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents
import net.fabricmc.fabric.api.event.player.UseItemCallback
import net.fabricmc.loader.api.FabricLoader
import net.minecraft.entity.player.PlayerEntity
import net.minecraft.server.world.ServerWorld
import net.minecraft.util.ActionResult
import net.minecraft.util.Hand
import net.minecraft.util.TypedActionResult
import net.minecraft.world.World
class Bde_particlesClient : ClientModInitializer {
override fun onInitializeClient() {
if (FabricLoader.getInstance().environmentType != EnvType.CLIENT) {
return
}
println("BPS - Initializing on ${FabricLoader.getInstance().environmentType}")
ServerLifecycleEvents.SERVER_STARTED.register { _ ->
init()
}
ServerTickEvents.START_SERVER_TICK.register { server ->
tick(server)
}
CommandRegistrationCallback.EVENT.register { dispatcher, registryAccess, _ ->
GiveEmitterTool.register(dispatcher, registryAccess)
ManageEmitters .register(dispatcher)
KillAllEmitters.register(dispatcher)
}
UseItemCallback.EVENT.register(UseItemCallback { player: PlayerEntity, world: World, hand: Hand ->
if (world is ServerWorld) {
onRightClick(player, world, hand)
}
TypedActionResult(ActionResult.PASS, player.getStackInHand(hand))
})
ServerLifecycleEvents.SERVER_STARTED.register(ServerLifecycleEvents.ServerStarted { _ ->
println("BDE_ParticleSys - Progress bar filled :3")
})
}
}
@@ -0,0 +1,11 @@
{
"required": true,
"minVersion": "0.8",
"package": "com.bytedice.bde_particles.mixin.client",
"compatibilityLevel": "JAVA_21",
"client": [
],
"injectors": {
"defaultRequire": 1
}
}
@@ -5,11 +5,13 @@ import com.bytedice.bde_particles.commands.KillAllEmitters
import com.bytedice.bde_particles.commands.ManageEmitters import com.bytedice.bde_particles.commands.ManageEmitters
import com.bytedice.bde_particles.items.ParticleEmitterTool import com.bytedice.bde_particles.items.ParticleEmitterTool
import com.bytedice.bde_particles.particleIdRegister.* import com.bytedice.bde_particles.particleIdRegister.*
import net.fabricmc.api.EnvType
import net.fabricmc.api.ModInitializer import net.fabricmc.api.ModInitializer
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents
import net.fabricmc.fabric.api.event.player.UseItemCallback import net.fabricmc.fabric.api.event.player.UseItemCallback
import net.fabricmc.loader.api.FabricLoader
import net.minecraft.entity.EntityType import net.minecraft.entity.EntityType
import net.minecraft.entity.decoration.DisplayEntity.BlockDisplayEntity import net.minecraft.entity.decoration.DisplayEntity.BlockDisplayEntity
import net.minecraft.entity.player.PlayerEntity import net.minecraft.entity.player.PlayerEntity
@@ -25,9 +27,9 @@ import net.minecraft.world.World
import java.util.* import java.util.*
// TODO: make it work client-side too
// TODO: finish the particle ticking // TODO: finish the particle ticking
// TODO: make custom commands to create particles easier (only temporarily saved) // TODO: make custom commands to create particles easier (only temporarily saved)
// ONLY FORCE FIELDS LEFT LES GO!!!!!!!!
var ALL_PARTICLE_EMITTERS: Array<ParticleEmitter> = emptyArray() var ALL_PARTICLE_EMITTERS: Array<ParticleEmitter> = emptyArray()
@@ -36,6 +38,12 @@ val sessionUuid: UUID = UUID.randomUUID()
class Bde_particles : ModInitializer { class Bde_particles : ModInitializer {
override fun onInitialize() { override fun onInitialize() {
if (FabricLoader.getInstance().environmentType != EnvType.SERVER) {
return
}
println("BPS - Initializing on ${FabricLoader.getInstance().environmentType}")
ServerLifecycleEvents.SERVER_STARTED.register { _ -> ServerLifecycleEvents.SERVER_STARTED.register { _ ->
init() init()
} }
@@ -51,7 +59,10 @@ class Bde_particles : ModInitializer {
} }
UseItemCallback.EVENT.register(UseItemCallback { player: PlayerEntity, world: World, hand: Hand -> UseItemCallback.EVENT.register(UseItemCallback { player: PlayerEntity, world: World, hand: Hand ->
onRightClick(player, world as ServerWorld, hand) if (world is ServerWorld) {
onRightClick(player, world, hand)
}
TypedActionResult(ActionResult.PASS, player.getStackInHand(hand))
}) })
ServerLifecycleEvents.SERVER_STARTED.register(ServerLifecycleEvents.ServerStarted { _ -> ServerLifecycleEvents.SERVER_STARTED.register(ServerLifecycleEvents.ServerStarted { _ ->
@@ -5,7 +5,9 @@ import com.mojang.brigadier.Command
import com.mojang.brigadier.CommandDispatcher import com.mojang.brigadier.CommandDispatcher
import net.minecraft.server.command.CommandManager import net.minecraft.server.command.CommandManager
import net.minecraft.server.command.ServerCommandSource import net.minecraft.server.command.ServerCommandSource
import net.minecraft.text.Style
import net.minecraft.text.Text import net.minecraft.text.Text
import java.awt.Color
object KillAllEmitters { object KillAllEmitters {
fun register(dispatcher: CommandDispatcher<ServerCommandSource>) { fun register(dispatcher: CommandDispatcher<ServerCommandSource>) {
@@ -20,6 +22,7 @@ object KillAllEmitters {
} }
val feedback = Text.literal("BPS - Killed all living Emitters.") val feedback = Text.literal("BPS - Killed all living Emitters.")
.setStyle(Style.EMPTY.withColor(Color(0, 200, 0).rgb))
context.source.sendFeedback({ feedback }, false) context.source.sendFeedback({ feedback }, false)
Command.SINGLE_SUCCESS Command.SINGLE_SUCCESS
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

+7 -4
View File
@@ -3,13 +3,16 @@
"id": "bde_particles", "id": "bde_particles",
"version": "${version}", "version": "${version}",
"name": "BDE Particle System", "name": "BDE Particle System",
"description": "A server-side particle system ", "description": "A highly-customizable server-side particle system ",
"authors": [], "authors": ["Byte Dice"],
"contact": {}, "contact": {},
"license": "All-Rights-Reserved", "license": "CC BY-NC-SA 4.0",
"icon": "assets/bde_particles/icon.png", "icon": "assets/bde_particles/icon.png",
"environment": "server", "environment": "*",
"entrypoints": { "entrypoints": {
"client": [
"com.bytedice.bde_particles.client.Bde_particlesClient"
],
"main": [ "main": [
"com.bytedice.bde_particles.Bde_particles" "com.bytedice.bde_particles.Bde_particles"
] ]