ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Minecraft 1.12.2模组开发(二十六) 唱片制作

2021-07-03 22:30:34  阅读:312  来源: 互联网

标签:1.12 模组 Minecraft entity util import net minecraft SoundsHandler


今天我们在MC中制作一张唱片

首先我们要先知道MC中的声音事件:往期教程

1.将我们的音频文件(.ogg格式)导入到resources包的sounds文件夹中

cr2.png

2.在SoundsHandler.java中对声音文件进行注册:

public static SoundEvent RE8MUSIC;

在SoundsHandler.java的registerSounds()函数中注册音频文件

RE8MUSIC = registerSound("entity.gm79.yfds");	

3.在Items包中新建ItemMusicDiscRE8类

cr1.png

在ItemMusicDiscRE8.java中编写代码:

package com.Joy187.newmod.items;

import java.util.Map;

import javax.annotation.Nullable;

import com.Joy187.newmod.Main;
import com.Joy187.newmod.init.ModItems;
import com.Joy187.newmod.util.IHasModel;
import com.Joy187.newmod.util.handlers.SoundsHandler;
import com.google.common.collect.Maps;

import net.minecraft.block.BlockJukebox;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemRecord;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatList;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class ItemMusicDiscRE8 extends ItemRecord implements IHasModel{
    private final SoundEvent sound;
	public ItemMusicDiscRE8(String name, SoundEvent soundIn,CreativeTabs tab) {
		super(name, soundIn);
		this.maxStackSize=1;
		this.sound=soundIn;
		setUnlocalizedName(name);
		setRegistryName(name);
		setCreativeTab(tab);

		ModItems.ITEMS.add(this);
		// TODO 自动生成的构造函数存根
	}
	
	public ActionResult<ItemStack> onItemRightClick(World worldIn,EntityPlayer playerIn, EnumHand handIn) {
        ItemStack itemstack = playerIn.getHeldItem(handIn);
        //这个就是我们想要播放的音乐文件
		playerIn.playSound(SoundsHandler.RE8MUSIC, 1.0f, 1.0f);
//		worldIn.playSound(playerIn, playerIn.getPosition(), SoundsHandler.RE8MUSIC, SoundCategory.RECORDS, 1.0f, 1.0f);
		return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack);
	}
    
	@Override
	public void registerModels() {
		Main.proxy.registerItemRenderer(this, 0, "inventory");
	}

}

4.在ModItems中添加我们的物品Item:

	public static final ItemRecord MUSICDISC = new ItemMusicDiscRE8("musicre8", SoundsHandler.RE8MUSIC, Main.ITEM_TAB);

5.在resources包中的models的Item包中添加物品模型信息:

{
	"parent": "item/generated",
	"textures": {
		"layer0": "joymod:items/record_yfds"
	}
}

cr3.png

6.sounds.json中添加我们的声音信息,同时在en_us.lang文件中添加物品名称

  "entity.gm79.yfds":{
    "category":"entity",
    "subtitle" :"entity.gm79.yfds",
    "sounds":[{ "name": "joymod:entity/gm79/yfds", "stream":true }]
  },

cr4.png

7.保存文件 -> 运行游戏

cr5.png

找到我们的唱片,右键即可播放音乐了!

标签:1.12,模组,Minecraft,entity,util,import,net,minecraft,SoundsHandler
来源: https://blog.csdn.net/Jay_fearless/article/details/118446016

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有