hytale-server/com/hypixel/hytale/builtin/adventure/camera/CameraPlugin.java

60 lines
3.2 KiB
Java

package com.hypixel.hytale.builtin.adventure.camera;
import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
import com.hypixel.hytale.assetstore.map.IndexedAssetMap;
import com.hypixel.hytale.builtin.adventure.camera.asset.cameraeffect.CameraShakeEffect;
import com.hypixel.hytale.builtin.adventure.camera.asset.camerashake.CameraShake;
import com.hypixel.hytale.builtin.adventure.camera.asset.camerashake.CameraShakePacketGenerator;
import com.hypixel.hytale.builtin.adventure.camera.asset.viewbobbing.ViewBobbing;
import com.hypixel.hytale.builtin.adventure.camera.asset.viewbobbing.ViewBobbingPacketGenerator;
import com.hypixel.hytale.builtin.adventure.camera.command.CameraEffectCommand;
import com.hypixel.hytale.builtin.adventure.camera.interaction.CameraShakeInteraction;
import com.hypixel.hytale.builtin.adventure.camera.system.CameraEffectSystem;
import com.hypixel.hytale.protocol.MovementType;
import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
import com.hypixel.hytale.server.core.asset.type.camera.CameraEffect;
import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import com.hypixel.hytale.server.core.plugin.registry.AssetRegistry;
import javax.annotation.Nonnull;
public class CameraPlugin extends JavaPlugin {
private static final String CODEC_CAMERA_SHAKE = "CameraShake";
public CameraPlugin(@Nonnull JavaPluginInit init) {
super(init);
}
@Override
protected void setup() {
AssetRegistry assetRegistry = this.getAssetRegistry();
this.getCodecRegistry(CameraEffect.CODEC).register("CameraShake", CameraShakeEffect.class, CameraShakeEffect.CODEC);
this.getCodecRegistry(Interaction.CODEC).register("CameraShake", CameraShakeInteraction.class, CameraShakeInteraction.CODEC);
assetRegistry.register(
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
String.class, CameraShake.class, new IndexedAssetMap()
)
.loadsBefore(CameraEffect.class))
.setCodec(CameraShake.CODEC))
.setPath("Camera/CameraShake"))
.setKeyFunction(CameraShake::getId))
.setReplaceOnRemove(CameraShake::new))
.setPacketGenerator(new CameraShakePacketGenerator())
.build()
);
assetRegistry.register(
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
MovementType.class, ViewBobbing.class, new DefaultAssetMap()
)
.setCodec(ViewBobbing.CODEC))
.setPath("Camera/ViewBobbing"))
.setKeyFunction(ViewBobbing::getId))
.setPacketGenerator(new ViewBobbingPacketGenerator())
.build()
);
this.getCommandRegistry().registerCommand(new CameraEffectCommand());
this.getEntityStoreRegistry().registerSystem(new CameraEffectSystem());
}
}