由于看本贴的都是有一定基础的,因此我直接跳过简单的部分
讲些核心的东西
首先我们打开cubex2-custom-stuff-2-documentation(如果不会使用的欢迎看我的BBS教程)
(虽然BBS教程这方面写了跟没写一样)
打开找到block/hasTileEntity.html
里面如图片所示。
如果方块添加了这个代码,那样它就会拥有一个容器属性
也就是可以被管道连接——通俗来说
现在我已经写好了一个例子如下
/*Grower*/
name = "Grower";
material = "rock";
stepSound = "stone";
creativeTab = "AngelProjectF";
hardness[0] = 5;
resistance[0] = 5;
toolClass[0] = "pickaxe";
drop[0] = "Mixer:Grower";
harvestLevel[0] = 1;
textureFileXP[0] = "Growerside.png";
textureFileXN[0] = "Growerside.png";
textureFileYP[0] = "Growertop.png";
textureFileYN[0] = "Growerside.png";
textureFileZP[0] = "Growerside.png";
textureFileZN[0] = "Growerside.png";
addToCreative[0] = true;
information[0] = "用于灰烬的生产,可以在周围的输出箱内输出木屑"
hasTileEntity[0] = true;//我是个容器
tileEntity[0] = "GrowerR";//我是哪个容器
onActivated[0] = "player.openGui('GrowerGUI', position);result = true;";//当对这个方块右键时候的事件,打开GUI界面
当然光有容器是没有什么用的,它就好像许多没有GUI只有内容的机器一样
我们需要给他一个GUI界面
如图声明一个GUI
打开guis.html你会看到许多关于GUI的属性定义
具体属性的作用我想大家都懂,这里我就不赘述
这里强调一下,容器属性和GUI两者是不可或缺的,如果少了一个,那样他就是一个废GUI或者是废容器了
你能想象到一个没有内容的熔炉么????
除非你是为了做一个右键打开的游戏介绍(我做过,不用试了,可以的)
这里我放上我的画师(材质画师)为我提供的GUI界面,以及我GUI界面的代码
name = "GrowerGUI";
guiFile = "GrowerGUI.png";
inputY = 35;
fuelY = 56;
fuelX = 83;
burnDestX =83;
burnDestY =17;
还记得我们上文定义了一个GrowerR作为容器类别么
我们需要添加这个容器的属性
打开tileEntities.html
因为我们需要做的是一个近熔炉,所以我们可以设置关于熔炉(Furnace)相关的属性
以下是我的例子
/*Grower */
name = "GrowerR";
ticksToSmelt = 320;
usedRecipeLists = "GrowerRecipe";
usedFuelLists = "GrowerFuel";//调用该熔炉燃料和配方
onItemSmelted = "mod.loadScript('Growers.js');";//燃烧完成触发事件,这个是我设想的核心
事件我们一会再谈,最后我们讲一下导入
//grower
mod.addBlock("Grower.js", "normal");
mod.addTileEntity("GrowerR.js", "furnace");
mod.addGui("GrowerGUI.js", "furnace");
mod.addSmeltingRecipeFor("GrowerRecipe","Forestry:ash", "minecraft:log");
mod.addSmeltingRecipeFor("GrowerRecipe","Forestry:ash", "minecraft:log:1");
mod.addSmeltingRecipeFor("GrowerRecipe","Forestry:ash", "minecraft:log:2");
mod.addSmeltingRecipeFor("GrowerRecipe","Forestry:ash", "minecraft:log:3");
mod.addFuelFor("GrowerFuel","minecraft:dirt",600);
mod.addFuelFor("GrowerFuel","Forestry:soil",4800);
应该不用解释了
如果想研究的dalao随便研究。如果能在弄懂的时候记得我的名字就更好了
对了,欢迎捧场我的图文直播和教程
楼下讲一下事件的研究方法