Search in sources :

Example 1 with RailGunSettingsMessage

use of com.cjm721.overloaded.network.packets.RailGunSettingsMessage in project Overloaded by CJ-MC-Mods.

the class ItemRailGun method onMouseEvent.

@SubscribeEvent
public void onMouseEvent(InputEvent.MouseScrollEvent event) {
    ClientPlayerEntity player = Minecraft.getInstance().player;
    if (event.getScrollDelta() != 0 && player != null && player.isShiftKeyDown()) {
        ItemStack stack = player.getMainHandItem();
        if (player.isShiftKeyDown() && !stack.isEmpty() && stack.getItem() == this) {
            int powerDelta = Long.signum(Math.round(event.getScrollDelta())) * OverloadedConfig.INSTANCE.railGun.stepEnergy;
            if (InputMappings.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), ((ClientProxy) Overloaded.proxy).railGun100x.getKey().getValue())) {
                powerDelta *= 100;
            }
            Overloaded.proxy.networkWrapper.sendToServer(new RailGunSettingsMessage(powerDelta));
            event.setCanceled(true);
        }
    }
}
Also used : RailGunSettingsMessage(com.cjm721.overloaded.network.packets.RailGunSettingsMessage) ClientPlayerEntity(net.minecraft.client.entity.player.ClientPlayerEntity) ItemStack(net.minecraft.item.ItemStack) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 2 with RailGunSettingsMessage

use of com.cjm721.overloaded.network.packets.RailGunSettingsMessage in project Overloaded by CJ-MC-Mods.

the class CommonProxy method commonSetup.

public void commonSetup(FMLCommonSetupEvent event) {
    CapabilityHyperItem.register();
    CapabilityHyperEnergy.register();
    CapabilityHyperFluid.register();
    CapabilityGenericDataStorage.register();
    networkWrapper = newSimpleChannel(ResourceLocation.of("overloaded_network", '_'), () -> "1.0", v -> true, v -> true);
    int dis = 0;
    networkWrapper.registerMessage(dis++, LeftClickBlockMessage.class, LeftClickBlockMessage::toBytes, LeftClickBlockMessage::fromBytes, new PlayerMessageHandler<>(ItemMultiTool::leftClickOnBlockServer));
    networkWrapper.registerMessage(dis++, RightClickBlockMessage.class, RightClickBlockMessage::toBytes, RightClickBlockMessage::fromBytes, new PlayerMessageHandler<>(ModItems.multiTool::rightClickWithItem));
    networkWrapper.registerMessage(dis++, RayGunMessage.class, RayGunMessage::toBytes, RayGunMessage::fromBytes, new PlayerMessageHandler<>(ModItems.rayGun::handleMessage));
    networkWrapper.registerMessage(dis++, MultiArmorSettingsMessage.class, MultiArmorSettingsMessage::toBytes, MultiArmorSettingsMessage::fromBytes, new PlayerMessageHandler<>(ModItems.customHelmet::updateSettings));
    networkWrapper.registerMessage(dis++, RailGunFireMessage.class, RailGunFireMessage::toBytes, RailGunFireMessage::fromBytes, new PlayerMessageHandler<>(ModItems.railgun::handleFireMessage));
    networkWrapper.registerMessage(dis++, RailGunSettingsMessage.class, RailGunSettingsMessage::toBytes, RailGunSettingsMessage::fromBytes, new PlayerMessageHandler<>(ModItems.railgun::handleSettingsMessage));
    networkWrapper.registerMessage(dis++, KeyBindPressedMessage.class, KeyBindPressedMessage::toBytes, KeyBindPressedMessage::fromBytes, new KeyBindPressedHandler());
    networkWrapper.registerMessage(dis++, NoClipStatusMessage.class, NoClipStatusMessage::toBytes, NoClipStatusMessage::fromBytes, new NoClipUpdateHandler());
    networkWrapper.registerMessage(dis++, ContainerDataMessage.class, ContainerDataMessage::toBytes, ContainerDataMessage::fromBytes, new ContainerDataHandler());
    MinecraftForge.EVENT_BUS.register(new ArmorEventHandler());
}
Also used : Item(net.minecraft.item.Item) NoClipUpdateHandler(com.cjm721.overloaded.network.handler.NoClipUpdateHandler) KeyBindPressedHandler(com.cjm721.overloaded.network.handler.KeyBindPressedHandler) ContainerType(net.minecraft.inventory.container.ContainerType) FMLJavaModLoadingContext(net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext) ModBlocks(com.cjm721.overloaded.block.ModBlocks) FMLCommonSetupEvent(net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent) CapabilityGenericDataStorage(com.cjm721.overloaded.capabilities.CapabilityGenericDataStorage) ModContainers(com.cjm721.overloaded.network.container.ModContainers) Block(net.minecraft.block.Block) TileEntityType(net.minecraft.tileentity.TileEntityType) RegistryEvent(net.minecraftforge.event.RegistryEvent) CapabilityHyperFluid(com.cjm721.overloaded.capabilities.CapabilityHyperFluid) LinkedList(java.util.LinkedList) NetworkRegistry.newSimpleChannel(net.minecraftforge.fml.network.NetworkRegistry.newSimpleChannel) com.cjm721.overloaded.network.packets(com.cjm721.overloaded.network.packets) ModItems(com.cjm721.overloaded.item.ModItems) ModTiles(com.cjm721.overloaded.tile.ModTiles) CapabilityHyperItem(com.cjm721.overloaded.capabilities.CapabilityHyperItem) ModFluids(com.cjm721.overloaded.fluid.ModFluids) MinecraftForge(net.minecraftforge.common.MinecraftForge) List(java.util.List) CapabilityHyperEnergy(com.cjm721.overloaded.capabilities.CapabilityHyperEnergy) ContainerDataHandler(com.cjm721.overloaded.network.handler.ContainerDataHandler) SimpleChannel(net.minecraftforge.fml.network.simple.SimpleChannel) PlayerMessageHandler(com.cjm721.overloaded.network.handler.PlayerMessageHandler) ResourceLocation(net.minecraft.util.ResourceLocation) ItemMultiTool(com.cjm721.overloaded.item.functional.ItemMultiTool) ArmorEventHandler(com.cjm721.overloaded.item.functional.armor.ArmorEventHandler) Fluid(net.minecraft.fluid.Fluid) NoClipUpdateHandler(com.cjm721.overloaded.network.handler.NoClipUpdateHandler) KeyBindPressedHandler(com.cjm721.overloaded.network.handler.KeyBindPressedHandler) ArmorEventHandler(com.cjm721.overloaded.item.functional.armor.ArmorEventHandler) ModItems(com.cjm721.overloaded.item.ModItems) ContainerDataHandler(com.cjm721.overloaded.network.handler.ContainerDataHandler)

Example 3 with RailGunSettingsMessage

use of com.cjm721.overloaded.network.packets.RailGunSettingsMessage in project Overloaded by CJ-MC-Mods.

the class ItemRailGun method handleSettingsMessage.

public void handleSettingsMessage(@Nonnull ServerPlayerEntity player, @Nonnull RailGunSettingsMessage message) {
    ItemStack itemStack = player.getItemInHand(Hand.MAIN_HAND);
    if (itemStack.getItem() != this) {
        return;
    }
    LazyOptional<IGenericDataStorage> opCap = itemStack.getCapability(GENERIC_DATA_STORAGE);
    if (!opCap.isPresent()) {
        Overloaded.logger.warn("RailGun has no GenericData Capability? NBT: " + itemStack.getTag());
        return;
    }
    IGenericDataStorage cap = opCap.orElseThrow(() -> new RuntimeException("Impossible Condition"));
    Map<String, Integer> integerMap = cap.getIntegerMap();
    int power = integerMap.getOrDefault(RAILGUN_POWER_KEY, 0) + message.powerDelta;
    power = Ints.constrainToRange(power, OverloadedConfig.INSTANCE.railGun.minEnergy, OverloadedConfig.INSTANCE.railGun.maxEnergy);
    integerMap.put(RAILGUN_POWER_KEY, power);
    cap.suggestSave();
    player.displayClientMessage(new StringTextComponent("Power usage set to: " + NumberFormat.getInstance().format(power)), true);
}
Also used : IGenericDataStorage(com.cjm721.overloaded.storage.IGenericDataStorage) StringTextComponent(net.minecraft.util.text.StringTextComponent) ItemStack(net.minecraft.item.ItemStack)

Aggregations

ItemStack (net.minecraft.item.ItemStack)2 ModBlocks (com.cjm721.overloaded.block.ModBlocks)1 CapabilityGenericDataStorage (com.cjm721.overloaded.capabilities.CapabilityGenericDataStorage)1 CapabilityHyperEnergy (com.cjm721.overloaded.capabilities.CapabilityHyperEnergy)1 CapabilityHyperFluid (com.cjm721.overloaded.capabilities.CapabilityHyperFluid)1 CapabilityHyperItem (com.cjm721.overloaded.capabilities.CapabilityHyperItem)1 ModFluids (com.cjm721.overloaded.fluid.ModFluids)1 ModItems (com.cjm721.overloaded.item.ModItems)1 ItemMultiTool (com.cjm721.overloaded.item.functional.ItemMultiTool)1 ArmorEventHandler (com.cjm721.overloaded.item.functional.armor.ArmorEventHandler)1 ModContainers (com.cjm721.overloaded.network.container.ModContainers)1 ContainerDataHandler (com.cjm721.overloaded.network.handler.ContainerDataHandler)1 KeyBindPressedHandler (com.cjm721.overloaded.network.handler.KeyBindPressedHandler)1 NoClipUpdateHandler (com.cjm721.overloaded.network.handler.NoClipUpdateHandler)1 PlayerMessageHandler (com.cjm721.overloaded.network.handler.PlayerMessageHandler)1 com.cjm721.overloaded.network.packets (com.cjm721.overloaded.network.packets)1 RailGunSettingsMessage (com.cjm721.overloaded.network.packets.RailGunSettingsMessage)1 IGenericDataStorage (com.cjm721.overloaded.storage.IGenericDataStorage)1 ModTiles (com.cjm721.overloaded.tile.ModTiles)1 LinkedList (java.util.LinkedList)1