Package denoflionsx.denLib.Mod.Handlers

Source Code of denoflionsx.denLib.Mod.Handlers.DictionaryHandler

package denoflionsx.denLib.Mod.Handlers;

import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidRegistry.FluidRegisterEvent;
import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent;

import java.util.ArrayList;
import java.util.HashMap;

@Deprecated
public class DictionaryHandler {

    private static final HashMap<Short, ArrayList<IDictionaryListener>> listeners = new HashMap();
    private static final ArrayList<OreRegisterEvent> oreEvents = new ArrayList();
    private static final ArrayList<FluidRegistry.FluidRegisterEvent> fluidEvents = new ArrayList();

    public DictionaryHandler() {
        this.onFluidEvent(new FluidRegisterEvent("water", FluidRegistry.WATER.getID()));
        this.onFluidEvent(new FluidRegisterEvent("lava", FluidRegistry.LAVA.getID()));
    }

    public void registerListener(IDictionaryListener o, short channel) {
        if (listeners.get(channel) == null) {
            listeners.put(channel, new ArrayList());

        }
        listeners.get(channel).add(o);

        // Post backlog events to late listeners.
        if (channel == channels.FLUID) {
            if (!fluidEvents.isEmpty()) {

                for (FluidRegistry.FluidRegisterEvent e : fluidEvents) {
                    o.onEvent(e.fluidName, channel, FluidRegistry.getFluid(e.fluidName));
                }
            }
        } else if (channel == channels.ORE) {
            if (!oreEvents.isEmpty()) {

                for (OreRegisterEvent e : oreEvents) {
                    o.onEvent(e.Name, channel, e.Ore);
                }
            }
        }
    }

    public void postEvent(String tag, short channel, Object o) {
        try {
            ArrayList<IDictionaryListener> a = listeners.get(channel);
            for (IDictionaryListener b : a) {
                b.onEvent(tag, channel, o);
            }
        } catch (Throwable t) {
        }
    }

    @ForgeSubscribe
    public void onEvent(OreRegisterEvent e) {

        this.postEvent(e.Name, channels.ORE, e.Ore);
        oreEvents.add(e);
    }

    @ForgeSubscribe
    public void onFluidEvent(FluidRegistry.FluidRegisterEvent e) {

        this.postEvent(e.fluidName, channels.FLUID, FluidRegistry.getFluid(e.fluidName));
        fluidEvents.add(e);
    }

    public static class channels {

        public static final short ORE = 0;
        public static final short FLUID = 1;
    }
}
TOP

Related Classes of denoflionsx.denLib.Mod.Handlers.DictionaryHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.