Search in sources :

Example 1 with OverlaySelector

use of cc.hyperium.gui.main.components.OverlaySelector in project Hyperium by HyperiumClient.

the class ParticleGui method rebuild.

private void rebuild() {
    EnumParticleType[] values = EnumParticleType.values();
    int length = values.length;
    HyperiumPurchase self = PurchaseApi.getInstance().getSelf();
    if (self == null) {
        queueBuild = true;
        return;
    }
    JsonHolder purchaseSettings = self.getPurchaseSettings();
    if (!purchaseSettings.has("particle"))
        purchaseSettings.put("particle", new JsonHolder());
    JsonHolder particle = purchaseSettings.optJSONObject("particle");
    CarouselItem[] particles = new CarouselItem[length];
    for (int i = 0; i < length; i++) {
        EnumParticleType value = values[i];
        final boolean flag = self.hasPurchased("PARTICLE_" + value.name());
        particles[i] = new CarouselItem(value.getName(), flag, false, carouselItem -> {
            if (!flag) {
                if (credits < 300) {
                    GeneralChatHandler.instance().sendMessage(I18n.format("message.insufficientcredits"));
                    return;
                }
                int i4 = ++purchaseIds;
                GuiYesNo gui = new GuiYesNo(this, I18n.format("message.purchase", value.getName()), "", i4);
                Hyperium.INSTANCE.getHandlers().getGuiDisplayHandler().setDisplayNextTick(gui);
                ids.put(i4, () -> {
                    GeneralChatHandler.instance().sendMessage(I18n.format("message.attemptingpurchase", value.getName()));
                    NettyClient client = NettyClient.getClient();
                    if (client != null) {
                        client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("cosmetic_purchase", true).put("value", "PARTICLE_" + value.name())));
                    }
                });
            } else {
                GeneralChatHandler.instance().sendMessage(I18n.format("message.alreadypurchased", value.getName()));
            }
        }, carouselItem -> {
            if (!flag)
                return;
            overlay = new HyperiumOverlay("Particles");
            String s = particle.optBoolean("rgb") ? "RGB" : particle.optBoolean("chroma") ? "CHROMA" : "DEFAULT";
            overlay.getComponents().add(new OverlaySelector<>("Color Type", s, s1 -> {
                if (s1.equals("DEFAULT")) {
                    particle.put("chroma", false);
                    particle.put("rgb", false);
                } else if (s1.equals("CHROMA")) {
                    particle.put("chroma", true);
                    particle.put("rgb", false);
                } else if (s1.equalsIgnoreCase("RGB")) {
                    particle.put("rgb", true);
                    particle.put("chroma", false);
                }
                NettyClient client = NettyClient.getClient();
                if (client != null) {
                    client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("particle_update", true).put("color_type", s1)));
                }
            // Rebuild auto called on purchase update
            }, () -> new String[] { "DEFAULT", "RGB", "CHROMA" }));
            overlay.getComponents().add(new OverlaySlider(I18n.format("gui.cosmetics.red"), 0, 255, particle.optInt("red", 255), aFloat -> {
                particle.put("red", aFloat);
                EventBus.INSTANCE.post(new PurchaseLoadEvent(Objects.requireNonNull(UUIDUtil.getClientUUID()), self, true));
                NettyClient client = NettyClient.getClient();
                if (client != null) {
                    client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("particle_update", true).put("red", aFloat.intValue())));
                }
            }, true));
            overlay.getComponents().add(new OverlaySlider(I18n.format("gui.cosmetics.green"), 0, 255, particle.optInt("green", 255), aFloat -> {
                particle.put("green", aFloat);
                EventBus.INSTANCE.post(new PurchaseLoadEvent(Objects.requireNonNull(UUIDUtil.getClientUUID()), self, true));
                NettyClient client = NettyClient.getClient();
                if (client != null) {
                    client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("particle_update", true).put("green", aFloat.intValue())));
                }
            }, true));
            overlay.getComponents().add(new OverlaySlider(I18n.format("gui.cosmetics.blue"), 0, 255, particle.optInt("blue", 255), aFloat -> {
                particle.put("blue", aFloat);
                EventBus.INSTANCE.post(new PurchaseLoadEvent(Objects.requireNonNull(UUIDUtil.getClientUUID()), self, true));
                NettyClient client = NettyClient.getClient();
                if (client != null) {
                    client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("particle_update", true).put("blue", aFloat.intValue())));
                }
            }, true));
            overlay.getComponents().add(new OverlaySlider(I18n.format("gui.cosmetics.maxage"), 2, 100, particle.optInt("max_age", 10), aFloat -> {
                NettyClient client = NettyClient.getClient();
                if (client != null) {
                    client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("particle_update", true).put("max_age", aFloat.intValue())));
                }
            }, true));
        }, carouselItem -> {
            particle.put("type", value.name());
            NettyClient client = NettyClient.getClient();
            if (client != null) {
                client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("particle_update", true).put("active_type", value.name())));
            }
            Arrays.stream(particles).forEach(item -> item.setActive(false));
            carouselItem.setActive(true);
        });
    }
    int spot = 0;
    try {
        spot = EnumParticleType.valueOf(particle.optString("type")).ordinal();
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (particles[spot].isPurchased())
        particles[spot].setPurchased(true);
    particleType = PurchaseCarousel.create(spot, particles);
    ParticleAuraHandler particleAuraHandler = Hyperium.INSTANCE.getHandlers().getParticleAuraHandler();
    HashMap<String, AbstractAnimation> animations = particleAuraHandler.getAnimations();
    String[] keys = { "Double Twirl", "Tornado", "Double Helix", "Triple Twirl", "Quad Twirl", "Static Trail", "Explode", "Vortex of doom" };
    CarouselItem[] animationItems = new CarouselItem[animations.size()];
    int c = 0;
    int g = 0;
    for (String s : keys) {
        boolean flag = self.hasPurchased("ANIMATION_" + s.replace(" ", "_".toUpperCase()));
        boolean flag1 = particle.optString("particle_animation").equalsIgnoreCase(s);
        if (flag1)
            g = c;
        animationItems[c] = new CarouselItem(s, flag, flag1, carouselItem -> {
            if (!flag) {
                int i4 = ++purchaseIds;
                GuiYesNo gui = new GuiYesNo(this, I18n.format("message.purchase", s), "", i4);
                Hyperium.INSTANCE.getHandlers().getGuiDisplayHandler().setDisplayNextTick(gui);
                ids.put(i4, () -> {
                    GeneralChatHandler.instance().sendMessage(I18n.format("message.attemptingpurchase", s));
                    NettyClient client = NettyClient.getClient();
                    if (client != null) {
                        client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("cosmetic_purchase", true).put("value", "ANIMATION_" + s.replace(" ", "_").toUpperCase())));
                    }
                });
            } else {
                GeneralChatHandler.instance().sendMessage(I18n.format("message.alreadypurchased", s));
            }
        }, carouselItem -> {
        // No settings as of now
        }, carouselItem -> {
            particle.put("particle_animation", s);
            NettyClient client = NettyClient.getClient();
            if (client != null) {
                client.write(ServerCrossDataPacket.build(new JsonHolder().put("internal", true).put("particle_update", true).put("particle_animation", s)));
            }
            Arrays.stream(animationItems).forEach(animationItem -> animationItem.setActive(false));
            carouselItem.setActive(true);
        });
        c++;
    }
    particleAnimation = PurchaseCarousel.create(g, animationItems);
}
Also used : JsonHolder(cc.hyperium.utils.JsonHolder) OverlaySelector(cc.hyperium.gui.main.components.OverlaySelector) Arrays(java.util.Arrays) GuiYesNo(net.minecraft.client.gui.GuiYesNo) HashMap(java.util.HashMap) Keyboard(org.lwjgl.input.Keyboard) OverlaySlider(cc.hyperium.gui.main.components.OverlaySlider) I18n(net.minecraft.client.resources.I18n) AbstractAnimation(cc.hyperium.handlers.handlers.particle.AbstractAnimation) Minecraft(net.minecraft.client.Minecraft) Multithreading(cc.hyperium.mods.sk1ercommon.Multithreading) GuiYesNoCallback(net.minecraft.client.gui.GuiYesNoCallback) Hyperium(cc.hyperium.Hyperium) PurchaseCarousel(cc.hyperium.gui.carousel.PurchaseCarousel) ServerCrossDataPacket(cc.hyperium.netty.packet.packets.serverbound.ServerCrossDataPacket) JsonHolder(cc.hyperium.utils.JsonHolder) InvokeEvent(cc.hyperium.event.InvokeEvent) CarouselItem(cc.hyperium.gui.carousel.CarouselItem) GeneralChatHandler(cc.hyperium.handlers.handlers.chat.GeneralChatHandler) ResolutionUtil(cc.hyperium.mods.sk1ercommon.ResolutionUtil) GuiButton(net.minecraft.client.gui.GuiButton) ScaledResolution(net.minecraft.client.gui.ScaledResolution) EventBus(cc.hyperium.event.EventBus) GlStateManager(net.minecraft.client.renderer.GlStateManager) UUIDUtil(cc.hyperium.utils.UUIDUtil) PurchaseLoadEvent(cc.hyperium.event.network.PurchaseLoadEvent) IOException(java.io.IOException) NettyClient(cc.hyperium.netty.NettyClient) java.awt(java.awt) Objects(java.util.Objects) HyperiumOverlay(cc.hyperium.gui.main.HyperiumOverlay) EnumParticleType(cc.hyperium.handlers.handlers.particle.EnumParticleType) ParticleAuraHandler(cc.hyperium.handlers.handlers.particle.ParticleAuraHandler) PurchaseApi(cc.hyperium.purchases.PurchaseApi) HyperiumPurchase(cc.hyperium.purchases.HyperiumPurchase) PurchaseLoadEvent(cc.hyperium.event.network.PurchaseLoadEvent) GuiYesNo(net.minecraft.client.gui.GuiYesNo) HyperiumPurchase(cc.hyperium.purchases.HyperiumPurchase) AbstractAnimation(cc.hyperium.handlers.handlers.particle.AbstractAnimation) HyperiumOverlay(cc.hyperium.gui.main.HyperiumOverlay) EnumParticleType(cc.hyperium.handlers.handlers.particle.EnumParticleType) OverlaySelector(cc.hyperium.gui.main.components.OverlaySelector) IOException(java.io.IOException) NettyClient(cc.hyperium.netty.NettyClient) ParticleAuraHandler(cc.hyperium.handlers.handlers.particle.ParticleAuraHandler) CarouselItem(cc.hyperium.gui.carousel.CarouselItem) OverlaySlider(cc.hyperium.gui.main.components.OverlaySlider)

Aggregations

Hyperium (cc.hyperium.Hyperium)1 EventBus (cc.hyperium.event.EventBus)1 InvokeEvent (cc.hyperium.event.InvokeEvent)1 PurchaseLoadEvent (cc.hyperium.event.network.PurchaseLoadEvent)1 CarouselItem (cc.hyperium.gui.carousel.CarouselItem)1 PurchaseCarousel (cc.hyperium.gui.carousel.PurchaseCarousel)1 HyperiumOverlay (cc.hyperium.gui.main.HyperiumOverlay)1 OverlaySelector (cc.hyperium.gui.main.components.OverlaySelector)1 OverlaySlider (cc.hyperium.gui.main.components.OverlaySlider)1 GeneralChatHandler (cc.hyperium.handlers.handlers.chat.GeneralChatHandler)1 AbstractAnimation (cc.hyperium.handlers.handlers.particle.AbstractAnimation)1 EnumParticleType (cc.hyperium.handlers.handlers.particle.EnumParticleType)1 ParticleAuraHandler (cc.hyperium.handlers.handlers.particle.ParticleAuraHandler)1 Multithreading (cc.hyperium.mods.sk1ercommon.Multithreading)1 ResolutionUtil (cc.hyperium.mods.sk1ercommon.ResolutionUtil)1 NettyClient (cc.hyperium.netty.NettyClient)1 ServerCrossDataPacket (cc.hyperium.netty.packet.packets.serverbound.ServerCrossDataPacket)1 HyperiumPurchase (cc.hyperium.purchases.HyperiumPurchase)1 PurchaseApi (cc.hyperium.purchases.PurchaseApi)1 JsonHolder (cc.hyperium.utils.JsonHolder)1