Skip to content

Instantly share code, notes, and snippets.

@Umpaz
Created June 8, 2020 01:26
Show Gist options
  • Save Umpaz/7a91a5a66b7ece1feb39ebbb09f566aa to your computer and use it in GitHub Desktop.
Save Umpaz/7a91a5a66b7ece1feb39ebbb09f566aa to your computer and use it in GitHub Desktop.
//
// Decompiled by Procyon v0.5.36
//
package com.bagel.buzzierbees.core;
import java.util.stream.Stream;
import java.util.Map;
import java.util.HashMap;
import net.minecraft.village.PointOfInterestType;
import java.util.stream.Collector;
import com.google.common.collect.ImmutableSet;
import net.minecraft.block.BlockState;
import java.util.Set;
import java.util.Collection;
import java.util.HashSet;
import net.minecraft.tileentity.TileEntityType;
import com.google.common.collect.ImmutableList;
import net.minecraft.block.Block;
import com.bagel.buzzierbees.core.registry.BBBlocks;
import net.minecraft.block.Blocks;
import com.bagel.buzzierbees.common.dispenser.BugBottleDispenseBehavior;
import net.minecraft.dispenser.IDispenseItemBehavior;
import net.minecraft.block.DispenserBlock;
import com.bagel.buzzierbees.common.dispenser.BeeBottleDispenseBehavior;
import com.bagel.buzzierbees.core.registry.BBItems;
import net.minecraft.util.IItemProvider;
import com.bagel.buzzierbees.core.registry.BBFeatures;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.event.ColorHandlerEvent;
import com.bagel.buzzierbees.core.util.BlockColorManager;
import com.bagel.buzzierbees.core.registry.BBEntities;
import com.bagel.buzzierbees.core.other.BBBlockData;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.api.distmarker.Dist;
import java.util.function.Consumer;
import com.bagel.buzzierbees.core.registry.BBVillagers;
import com.bagel.buzzierbees.core.registry.BBEffects;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import com.teamabnormals.abnormals_core.core.utils.RegistryHelper;
import net.minecraftforge.fml.common.Mod;
@Mod("buzzierbees")
@Mod.EventBusSubscriber(modid = "buzzierbees")
public class BuzzierBees
{
public static final String MODID = "buzzierbees";
public static final RegistryHelper REGISTRY_HELPER;
public BuzzierBees() {
final IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
BuzzierBees.REGISTRY_HELPER.getDeferredBlockRegister().register(modEventBus);
BuzzierBees.REGISTRY_HELPER.getDeferredItemRegister().register(modEventBus);
BuzzierBees.REGISTRY_HELPER.getDeferredEntityRegister().register(modEventBus);
BuzzierBees.REGISTRY_HELPER.getDeferredTileEntityRegister().register(modEventBus);
BBEffects.EFFECTS.register(modEventBus);
BBEffects.POTIONS.register(modEventBus);
BBVillagers.PROFESSIONS.register(modEventBus);
BBVillagers.POI_TYPES.register(modEventBus);
modEventBus.addListener((Consumer)this::setup);
modEventBus.addListener((Consumer)this::replaceBeehivePOI);
final IEventBus eventBus;
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> {
eventBus.addListener(EventPriority.LOWEST, (Consumer)this::setupClient);
eventBus.addListener(EventPriority.LOWEST, (Consumer)this::registerItemColors);
});
}
public void initSetupClient() {
FMLJavaModLoadingContext.get().getModEventBus().addListener((Consumer)this::setupClient);
}
private void setupClient(final FMLClientSetupEvent event) {
BBBlockData.setupRenderLayer();
BBEntities.registerRendering();
BlockColorManager.registerBlockColors();
}
@OnlyIn(Dist.CLIENT)
private void registerItemColors(final ColorHandlerEvent.Item event) {
BuzzierBees.REGISTRY_HELPER.processSpawnEggColors(event);
}
private void setup(final FMLCommonSetupEvent event) {
BBBlockData.registerCompostables();
BBBlockData.registerFlammables();
BBEffects.addBrewingRecipes();
BBFeatures.addFeatures();
BBEntities.addEntitySpawns();
BBVillagers.init();
DispenserBlock.func_199774_a((IItemProvider)BBItems.BOTTLE_OF_BEE.get(), (IDispenseItemBehavior)new BeeBottleDispenseBehavior());
DispenserBlock.func_199774_a((IItemProvider)BBItems.BOTTLE_OF_SILVERFISH.get(), (IDispenseItemBehavior)new BugBottleDispenseBehavior());
DispenserBlock.func_199774_a((IItemProvider)BBItems.BOTTLE_OF_ENDERMITE.get(), (IDispenseItemBehavior)new BugBottleDispenseBehavior());
}
private void replaceBeehivePOI(final FMLCommonSetupEvent event) {
final ImmutableList<Block> BEEHIVES = (ImmutableList<Block>)ImmutableList.of((Object)Blocks.field_226906_mb_, (Object)BBBlocks.ACACIA_BEEHIVE.get(), (Object)BBBlocks.BIRCH_BEEHIVE.get(), (Object)BBBlocks.SPRUCE_BEEHIVE.get(), (Object)BBBlocks.DARK_OAK_BEEHIVE.get(), (Object)BBBlocks.JUNGLE_BEEHIVE.get(), (Object)BBBlocks.CRIMSON_BEEHIVE.get(), (Object)BBBlocks.WARPED_BEEHIVE.get(), (Object)BBBlocks.ROSEWOOD_BEEHIVE.get(), (Object)BBBlocks.YUCCA_BEEHIVE.get(), (Object)BBBlocks.KOUSA_BEEHIVE.get(), (Object)BBBlocks.ASPEN_BEEHIVE.get(), (Object[])new Block[] { (Block)BBBlocks.WILLOW_BEEHIVE.get(), (Block)BBBlocks.WISTERIA_BEEHIVE.get(), (Block)BBBlocks.MAPLE_BEEHIVE.get(), (Block)BBBlocks.BAMBOO_BEEHIVE.get(), (Block)BBBlocks.POISE_BEEHIVE.get(), (Block)BBBlocks.DRIFTWOOD_BEEHIVE.get(), (Block)BBBlocks.RIVER_BEEHIVE.get(), (Block)BBBlocks.SNAKE_BLOCK_BEEHIVE.get(), (Block)BBBlocks.BOP_FIR_BEEHIVE.get(), (Block)BBBlocks.BOP_DEAD_BEEHIVE.get(), (Block)BBBlocks.BOP_PALM_BEEHIVE.get(), (Block)BBBlocks.BOP_MAGIC_BEEHIVE.get(), (Block)BBBlocks.BOP_CHERRY_BEEHIVE.get(), (Block)BBBlocks.BOP_UMBRAN_BEEHIVE.get(), (Block)BBBlocks.BOP_WILLOW_BEEHIVE.get(), (Block)BBBlocks.BOP_REDWOOD_BEEHIVE.get(), (Block)BBBlocks.BOP_HELLBARK_BEEHIVE.get(), (Block)BBBlocks.BOP_MAHOGANY_BEEHIVE.get(), (Block)BBBlocks.BOP_JACARANDA_BEEHIVE.get() });
final Set<Block> validBlocks = new HashSet<Block>(TileEntityType.field_226985_G_.field_223046_I);
validBlocks.addAll((Collection<? extends Block>)BEEHIVES);
TileEntityType.field_226985_G_.field_223046_I = validBlocks;
final Set<BlockState> poiStates = BEEHIVES.stream().flatMap(map -> map.func_176194_O().func_177619_a().stream()).collect((Collector<? super Object, Object, Set<BlockState>>)ImmutableSet.toImmutableSet());
PointOfInterestType.field_226356_s_.field_221075_w = poiStates;
final Map<BlockState, PointOfInterestType> pointOfInterestTypeMap = new HashMap<BlockState, PointOfInterestType>();
final PointOfInterestType pointOfInterestType;
BEEHIVES.stream().forEach(block -> block.func_176194_O().func_177619_a().forEach(state -> pointOfInterestType = pointOfInterestTypeMap.put(state, PointOfInterestType.field_226356_s_)));
PointOfInterestType.field_221073_u.putAll(pointOfInterestTypeMap);
}
static {
REGISTRY_HELPER = new RegistryHelper("buzzierbees");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment