pre 1.9 protocol
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"variants": {
|
||||
"age=0": { "model": "beetroots_stage0" },
|
||||
"age=1": { "model": "beetroots_stage0" },
|
||||
"age=2": { "model": "beetroots_stage1" },
|
||||
"age=3": { "model": "beetroots_stage1" },
|
||||
"age=4": { "model": "beetroots_stage2" },
|
||||
"age=5": { "model": "beetroots_stage2" },
|
||||
"age=6": { "model": "beetroots_stage2" },
|
||||
"age=7": { "model": "beetroots_stage3" }
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"normal": { "model": "purpur_block" }
|
||||
"variant=default": { "model": "purpur_block" }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/crop",
|
||||
"textures": {
|
||||
"crop": "blocks/beetroots_stage_0"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/crop",
|
||||
"textures": {
|
||||
"crop": "blocks/beetroots_stage_1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/crop",
|
||||
"textures": {
|
||||
"crop": "blocks/beetroots_stage_2"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/crop",
|
||||
"textures": {
|
||||
"crop": "blocks/beetroots_stage_3"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
[LocalizedFileNames]
|
||||
beetroots_stage1.json=@beetroots_stage1.json,0
|
||||
beetroots_stage2.json=@beetroots_stage2.json,0
|
||||
beetroots_stage3.json=@beetroots_stage3.json,0
|
||||
beetroots_stage0.json=@beetroots_stage0.json,0
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"parent": "builtin/generated",
|
||||
"textures": {
|
||||
"layer0": "items/beetroot"
|
||||
},
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [ -90, 0, 0 ],
|
||||
"translation": [ 0, 1, -3 ],
|
||||
"scale": [ 0.55, 0.55, 0.55 ]
|
||||
},
|
||||
"firstperson": {
|
||||
"rotation": [ 0, -135, 25 ],
|
||||
"translation": [ 0, 4, 2 ],
|
||||
"scale": [ 1.7, 1.7, 1.7 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"parent": "builtin/generated",
|
||||
"textures": {
|
||||
"layer0": "items/beetroot_seeds"
|
||||
},
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [ -90, 0, 0 ],
|
||||
"translation": [ 0, 1, -3 ],
|
||||
"scale": [ 0.55, 0.55, 0.55 ]
|
||||
},
|
||||
"firstperson": {
|
||||
"rotation": [ 0, -135, 25 ],
|
||||
"translation": [ 0, 4, 2 ],
|
||||
"scale": [ 1.7, 1.7, 1.7 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"parent": "builtin/generated",
|
||||
"textures": {
|
||||
"layer0": "items/beetroot_soup"
|
||||
},
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [ -90, 0, 0 ],
|
||||
"translation": [ 0, 1, -2.5 ],
|
||||
"scale": [ 0.55, 0.55, 0.55 ]
|
||||
},
|
||||
"firstperson": {
|
||||
"rotation": [ 0, -135, 25 ],
|
||||
"translation": [ 0, 4, 2 ],
|
||||
"scale": [ 1.7, 1.7, 1.7 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"parent": "builtin/generated",
|
||||
"textures": {
|
||||
"layer0": "items/chorus_fruit"
|
||||
},
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [ -90, 0, 0 ],
|
||||
"translation": [ 0, 1, -3 ],
|
||||
"scale": [ 0.55, 0.55, 0.55 ]
|
||||
},
|
||||
"firstperson": {
|
||||
"rotation": [ 0, -135, 25 ],
|
||||
"translation": [ 0, 4, 2 ],
|
||||
"scale": [ 1.7, 1.7, 1.7 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"parent": "builtin/generated",
|
||||
"textures": {
|
||||
"layer0": "items/chorus_fruit_popped"
|
||||
},
|
||||
"display": {
|
||||
"thirdperson": {
|
||||
"rotation": [ -90, 0, 0 ],
|
||||
"translation": [ 0, 1, -3 ],
|
||||
"scale": [ 0.55, 0.55, 0.55 ]
|
||||
},
|
||||
"firstperson": {
|
||||
"rotation": [ 0, -135, 25 ],
|
||||
"translation": [ 0, 4, 2 ],
|
||||
"scale": [ 1.7, 1.7, 1.7 ]
|
||||
}
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 118 B |
After Width: | Height: | Size: 135 B |
After Width: | Height: | Size: 198 B |
After Width: | Height: | Size: 219 B |
|
@ -3,3 +3,7 @@ purpur_pillar.png=@purpur_pillar.png,0
|
|||
purpur_pillar_top.png=@purpur_pillar_top.png,0
|
||||
purpur_block.png=@purpur_block.png,0
|
||||
end_stone_bricks.png=@end_stone_bricks.png,0
|
||||
beetroots_stage1.png=@beetroots_stage1.png,0
|
||||
beetroots_stage2.png=@beetroots_stage2.png,0
|
||||
beetroots_stage3.png=@beetroots_stage3.png,0
|
||||
beetroots_stage0.png=@beetroots_stage0.png,0
|
||||
|
|
After Width: | Height: | Size: 173 B |
After Width: | Height: | Size: 149 B |
After Width: | Height: | Size: 171 B |
After Width: | Height: | Size: 221 B |
After Width: | Height: | Size: 217 B |
|
@ -0,0 +1,2 @@
|
|||
[LocalizedFileNames]
|
||||
beetroot_soup.png=@beetroot_soup.png,0
|
99209
javascript/classes.js
|
@ -1,5 +1,8 @@
|
|||
package net.hoosiertransfer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockSlab;
|
||||
|
||||
|
@ -7,17 +10,31 @@ public class EaglerCustomBlock {
|
|||
private final Block block;
|
||||
private final BlockSlab slabDouble;
|
||||
private final boolean isSlab;
|
||||
private final List<String> variants;
|
||||
private final boolean hasItem;
|
||||
|
||||
public EaglerCustomBlock(Block block) {
|
||||
this.block = block;
|
||||
this.isSlab = false;
|
||||
this.slabDouble = null;
|
||||
this.variants = new ArrayList<>();
|
||||
this.hasItem = true;
|
||||
}
|
||||
|
||||
public EaglerCustomBlock(BlockSlab slabHalf, BlockSlab slabDouble) {
|
||||
public EaglerCustomBlock(BlockSlab slabHalf, BlockSlab slabDouble, List<String> variants) {
|
||||
this.block = (Block) slabHalf;
|
||||
this.slabDouble = slabDouble;
|
||||
this.isSlab = true;
|
||||
this.variants = variants;
|
||||
this.hasItem = true;
|
||||
}
|
||||
|
||||
public EaglerCustomBlock(Block block, boolean hasItem) {
|
||||
this.block = block;
|
||||
this.isSlab = false;
|
||||
this.slabDouble = null;
|
||||
this.variants = new ArrayList<>();
|
||||
this.hasItem = hasItem;
|
||||
}
|
||||
|
||||
public Block getBlock() {
|
||||
|
@ -31,4 +48,12 @@ public class EaglerCustomBlock {
|
|||
public boolean isSlab() {
|
||||
return isSlab;
|
||||
}
|
||||
|
||||
public List<String> getVariants() {
|
||||
return variants;
|
||||
}
|
||||
|
||||
public boolean hasItem() {
|
||||
return hasItem;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,8 +17,12 @@ public class EaglerItems {
|
|||
blockMap.put(id, new EaglerCustomBlock(block));
|
||||
}
|
||||
|
||||
public static void registerEaglerSlab(String id, BlockSlab block, BlockSlab slabDouble) {
|
||||
blockMap.put(id, new EaglerCustomBlock(block, slabDouble));
|
||||
public static void registerEaglerBlock(String id, Block block, boolean hasItem) {
|
||||
blockMap.put(id, new EaglerCustomBlock(block, hasItem));
|
||||
}
|
||||
|
||||
public static void registerEaglerSlab(String id, BlockSlab block, BlockSlab slabDouble, List<String> variants) {
|
||||
blockMap.put(id, new EaglerCustomBlock(block, slabDouble, variants));
|
||||
}
|
||||
|
||||
public static void registerEaglerItem(String id, Item item) {
|
||||
|
@ -26,12 +30,27 @@ public class EaglerItems {
|
|||
}
|
||||
|
||||
public static EaglerCustomBlock getEaglerCustomBlock(String id) {
|
||||
return blockMap.get(id);
|
||||
EaglerCustomBlock customBlock = blockMap.get(id);
|
||||
if (customBlock == null) {
|
||||
throw new IllegalArgumentException("No such block: " + id);
|
||||
}
|
||||
return customBlock;
|
||||
}
|
||||
|
||||
public static Block getEaglerBlock(String id) {
|
||||
EaglerCustomBlock customBlock = blockMap.get(id);
|
||||
return customBlock != null ? customBlock.getBlock() : null;
|
||||
if (customBlock == null) {
|
||||
throw new IllegalArgumentException("No such block: " + id);
|
||||
}
|
||||
return customBlock.getBlock();
|
||||
}
|
||||
|
||||
public static Item getEaglerItem(String id) {
|
||||
Item item = itemMap.get(id);
|
||||
if (item == null) {
|
||||
throw new IllegalArgumentException("No such item: " + id);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
||||
public static List<EaglerCustomBlock> getEaglerCustomBlocks() {
|
||||
|
|
|
@ -9,8 +9,8 @@ public class EaglercraftVersion {
|
|||
|
||||
/// Customize these to fit your fork:
|
||||
|
||||
public static final String projectForkName = "EaglerfastX";
|
||||
public static final String projectForkVersion = "1.2.0";
|
||||
public static final String projectForkName = "Eaglercraft Lambda";
|
||||
public static final String projectForkVersion = "2.0.0";
|
||||
public static final String projectForkVendor = "hoosiertransfer";
|
||||
|
||||
public static final String projectForkURL = "https://gitlab.com/lax1dude/eaglercraftx-1.8";
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
|
@ -1648,17 +1649,16 @@ public class Block implements ILitBlock {
|
|||
.setStepSound(soundTypeStone).setUnlocalizedName("purpurPillar"));
|
||||
registerEaglerBlock(203, "purpur_stairs", (new BlockStairs(purpurBlock.getDefaultState()))
|
||||
.setUnlocalizedName("stairsPurpur"));
|
||||
// registerEaglerBlock(204, "purpur_double_slab", (new
|
||||
// BlockPurpurSlab.Double()).setHardness(2.0F)
|
||||
// .setResistance(10.0F).setStepSound(soundTypeStone).setUnlocalizedName("purpurSlab"));\
|
||||
// registerEaglerBlock(205, "purpur_slab", (new
|
||||
// BlockPurpurSlab.Half()).setHardness(2.0F).setResistance(10.0F)
|
||||
// .setStepSound(soundTypeStone).setUnlocalizedName("purpurSlab"));
|
||||
registerEaglerSlab(204, "purpur_double_slab", new BlockPurpurSlab.Double(),
|
||||
registerEaglerSlab(204, "purpur_double_slab",
|
||||
(BlockSlab) (new BlockPurpurSlab.Double()).setHardness(2.0F).setResistance(10.0F)
|
||||
.setStepSound(soundTypeStone).setUnlocalizedName("purpurSlab"),
|
||||
205, "purpur_slab",
|
||||
new BlockPurpurSlab.Half());
|
||||
(BlockSlab) (new BlockPurpurSlab.Half()).setHardness(2.0F).setResistance(10.0F)
|
||||
.setStepSound(soundTypeStone).setUnlocalizedName("purpurSlab"),
|
||||
"purpur_slab");
|
||||
registerEaglerBlock(206, "end_bricks", (new Block(Material.rock)).setStepSound(soundTypeStone).setHardness(0.8F)
|
||||
.setCreativeTab(CreativeTabs.tabBlock).setUnlocalizedName("endBricks"));
|
||||
registerEaglerBlock(207, "beetroots", (new BlockBeetroot()).setUnlocalizedName("beetroots"), false);
|
||||
|
||||
blockRegistry.validateKey();
|
||||
|
||||
|
@ -1744,9 +1744,14 @@ public class Block implements ILitBlock {
|
|||
registerBlock(id, textualID, block_);
|
||||
}
|
||||
|
||||
private static void registerEaglerBlock(int id, String textualID, Block block_, boolean hasItem) {
|
||||
EaglerItems.registerEaglerBlock(textualID, block_, hasItem);
|
||||
registerBlock(id, textualID, block_);
|
||||
}
|
||||
|
||||
private static void registerEaglerSlab(int id1, String textualID1, BlockSlab slabDouble, int id2, String textualID2,
|
||||
BlockSlab slabHalf) {
|
||||
EaglerItems.registerEaglerSlab(textualID1, slabHalf, slabDouble);
|
||||
BlockSlab slabHalf, String... variants) {
|
||||
EaglerItems.registerEaglerSlab(textualID2, slabHalf, slabDouble, Arrays.asList(variants));
|
||||
registerBlock(id1, textualID1, slabDouble);
|
||||
registerBlock(id2, textualID2, slabHalf);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class BlockBeetroot extends BlockCrops {
|
||||
protected Item getSeed() {
|
||||
return EaglerItems.getEaglerItem("beetroot_seeds");
|
||||
}
|
||||
|
||||
protected Item getCrop() {
|
||||
return EaglerItems.getEaglerItem("beetroot");
|
||||
}
|
||||
}
|
|
@ -50,19 +50,16 @@ import net.minecraft.world.World;
|
|||
*
|
||||
*/
|
||||
public abstract class BlockPurpurSlab extends BlockSlab {
|
||||
public static final PropertyBool SEAMLESS = PropertyBool.create("seamless");
|
||||
public static PropertyEnum<BlockPurpurSlab.EnumType> VARIANT;
|
||||
|
||||
public BlockPurpurSlab() {
|
||||
super(Material.rock);
|
||||
IBlockState iblockstate = this.blockState.getBaseState();
|
||||
if (this.isDouble()) {
|
||||
iblockstate = iblockstate.withProperty(SEAMLESS, Boolean.valueOf(false));
|
||||
} else {
|
||||
if (!this.isDouble()) {
|
||||
iblockstate = iblockstate.withProperty(HALF, BlockSlab.EnumBlockHalf.BOTTOM);
|
||||
}
|
||||
|
||||
this.setDefaultState(iblockstate.withProperty(VARIANT, BlockPurpurSlab.EnumType.STONE));
|
||||
this.setDefaultState(iblockstate.withProperty(VARIANT, BlockPurpurSlab.EnumType.DEFAULT));
|
||||
this.setCreativeTab(CreativeTabs.tabBlock);
|
||||
}
|
||||
|
||||
|
@ -108,9 +105,7 @@ public abstract class BlockPurpurSlab extends BlockSlab {
|
|||
BlockPurpurSlab.EnumType[] types = BlockPurpurSlab.EnumType.META_LOOKUP;
|
||||
for (int i = 0; i < types.length; ++i) {
|
||||
BlockPurpurSlab.EnumType BlockPurpurSlab$enumtype = types[i];
|
||||
if (BlockPurpurSlab$enumtype != BlockPurpurSlab.EnumType.WOOD) {
|
||||
list.add(new ItemStack(item, 1, BlockPurpurSlab$enumtype.getMetadata()));
|
||||
}
|
||||
list.add(new ItemStack(item, 1, BlockPurpurSlab$enumtype.getMetadata()));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -123,9 +118,7 @@ public abstract class BlockPurpurSlab extends BlockSlab {
|
|||
public IBlockState getStateFromMeta(int i) {
|
||||
IBlockState iblockstate = this.getDefaultState().withProperty(VARIANT,
|
||||
BlockPurpurSlab.EnumType.byMetadata(i & 7));
|
||||
if (this.isDouble()) {
|
||||
iblockstate = iblockstate.withProperty(SEAMLESS, Boolean.valueOf((i & 8) != 0));
|
||||
} else {
|
||||
if (!this.isDouble()) {
|
||||
iblockstate = iblockstate.withProperty(HALF,
|
||||
(i & 8) == 0 ? BlockSlab.EnumBlockHalf.BOTTOM : BlockSlab.EnumBlockHalf.TOP);
|
||||
}
|
||||
|
@ -140,11 +133,7 @@ public abstract class BlockPurpurSlab extends BlockSlab {
|
|||
public int getMetaFromState(IBlockState iblockstate) {
|
||||
int i = 0;
|
||||
i = i | ((BlockPurpurSlab.EnumType) iblockstate.getValue(VARIANT)).getMetadata();
|
||||
if (this.isDouble()) {
|
||||
if (((Boolean) iblockstate.getValue(SEAMLESS)).booleanValue()) {
|
||||
i |= 8;
|
||||
}
|
||||
} else if (iblockstate.getValue(HALF) == BlockSlab.EnumBlockHalf.TOP) {
|
||||
if (!this.isDouble() && iblockstate.getValue(HALF) == BlockSlab.EnumBlockHalf.TOP) {
|
||||
i |= 8;
|
||||
}
|
||||
|
||||
|
@ -152,7 +141,7 @@ public abstract class BlockPurpurSlab extends BlockSlab {
|
|||
}
|
||||
|
||||
protected BlockState createBlockState() {
|
||||
return this.isDouble() ? new BlockState(this, new IProperty[] { SEAMLESS, VARIANT })
|
||||
return this.isDouble() ? new BlockState(this, new IProperty[] { VARIANT })
|
||||
: new BlockState(this, new IProperty[] { HALF, VARIANT });
|
||||
}
|
||||
|
||||
|
@ -188,13 +177,9 @@ public abstract class BlockPurpurSlab extends BlockSlab {
|
|||
}
|
||||
|
||||
public static enum EnumType implements IStringSerializable {
|
||||
STONE(0, MapColor.stoneColor, "stone"), SAND(1, MapColor.sandColor, "sandstone", "sand"),
|
||||
WOOD(2, MapColor.woodColor, "wood_old", "wood"), COBBLESTONE(3, MapColor.stoneColor, "cobblestone", "cobble"),
|
||||
BRICK(4, MapColor.redColor, "brick"), SMOOTHBRICK(5, MapColor.stoneColor, "stone_brick", "smoothStoneBrick"),
|
||||
NETHERBRICK(6, MapColor.netherrackColor, "nether_brick", "netherBrick"),
|
||||
QUARTZ(7, MapColor.quartzColor, "quartz");
|
||||
DEFAULT(0, MapColor.purpleColor, "default");
|
||||
|
||||
public static final BlockPurpurSlab.EnumType[] META_LOOKUP = new BlockPurpurSlab.EnumType[8];
|
||||
public static final BlockPurpurSlab.EnumType[] META_LOOKUP = new BlockPurpurSlab.EnumType[values().length];
|
||||
private final int meta;
|
||||
private final MapColor field_181075_k;
|
||||
private final String name;
|
||||
|
|
|
@ -21,6 +21,7 @@ import net.minecraft.block.BlockFlower;
|
|||
import net.minecraft.block.BlockHugeMushroom;
|
||||
import net.minecraft.block.BlockPlanks;
|
||||
import net.minecraft.block.BlockPrismarine;
|
||||
import net.minecraft.block.BlockPurpurSlab;
|
||||
import net.minecraft.block.BlockQuartz;
|
||||
import net.minecraft.block.BlockRedSandstone;
|
||||
import net.minecraft.block.BlockSand;
|
||||
|
@ -1105,7 +1106,13 @@ public class RenderItem implements IResourceManagerReloadListener {
|
|||
"red_mushroom_block");
|
||||
this.registerBlock(Blocks.dragon_egg, "dragon_egg");
|
||||
|
||||
this.registerBlock(EaglerItems.getEaglerBlock("purpur_slab"), BlockPurpurSlab.EnumType.DEFAULT.getMetadata(),
|
||||
"purpur_slab");
|
||||
// TODO: Make custom slabs not have to be registered manually
|
||||
for (Map.Entry<String, EaglerCustomBlock> entry : EaglerItems.getEaglerCustomBlockEntries()) {
|
||||
if (entry.getValue().isSlab() || !entry.getValue().hasItem()) {
|
||||
continue;
|
||||
}
|
||||
this.registerBlock(entry.getValue().getBlock(), entry.getKey());
|
||||
}
|
||||
|
||||
|
|
|
@ -48,22 +48,36 @@ import net.minecraft.util.IRegistry;
|
|||
import net.minecraft.util.RegistrySimple;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
/**+
|
||||
import net.minecraft.block.BlockSlab;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
import net.hoosiertransfer.EaglerCustomBlock;
|
||||
|
||||
/**
|
||||
* +
|
||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||
*
|
||||
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
|
||||
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
|
||||
*
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights
|
||||
* Reserved.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
|
@ -390,6 +404,13 @@ public class ModelBakery {
|
|||
this.variantNames.put(Item.getItemFromBlock(Blocks.oak_fence),
|
||||
Lists.newArrayList(new String[] { "oak_fence" }));
|
||||
this.variantNames.put(Items.oak_door, Lists.newArrayList(new String[] { "oak_door" }));
|
||||
|
||||
for (EaglerCustomBlock block : EaglerItems.getEaglerCustomBlocks()) {
|
||||
if (block.isSlab()) {
|
||||
this.variantNames.put(Item.getItemFromBlock(block.getBlock()),
|
||||
Lists.newArrayList(block.getVariants().toArray(new String[0])));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> getVariantNames(Item parItem) {
|
||||
|
|
|
@ -1993,4 +1993,66 @@ public abstract class EntityLivingBase extends Entity {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean attemptTeleport(double x, double y, double z) {
|
||||
double d0 = this.posX;
|
||||
double d1 = this.posY;
|
||||
double d2 = this.posZ;
|
||||
this.posX = x;
|
||||
this.posY = y;
|
||||
this.posZ = z;
|
||||
boolean flag = false;
|
||||
BlockPos blockpos = new BlockPos(this);
|
||||
World world = this.worldObj;
|
||||
EaglercraftRandom random = this.rand;
|
||||
|
||||
if (world.isBlockLoaded(blockpos)) {
|
||||
boolean flag1 = false;
|
||||
|
||||
while (!flag1 && blockpos.getY() > 0) {
|
||||
BlockPos blockpos1 = blockpos.down();
|
||||
IBlockState iblockstate = world.getBlockState(blockpos1);
|
||||
|
||||
if (iblockstate.getBlock().getMaterial().blocksMovement()) {
|
||||
flag1 = true;
|
||||
} else {
|
||||
--this.posY;
|
||||
blockpos = blockpos1;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag1) {
|
||||
this.setPositionAndUpdate(this.posX, this.posY, this.posZ);
|
||||
|
||||
if (world.getCollidingBoundingBoxes(this, this.getEntityBoundingBox()).isEmpty()
|
||||
&& !world.containsAnyLiquid(this.getEntityBoundingBox())) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!flag) {
|
||||
this.setPositionAndUpdate(d0, d1, d2);
|
||||
return false;
|
||||
} else {
|
||||
int i = 128;
|
||||
|
||||
for (int j = 0; j < i; ++j) {
|
||||
double d6 = (double) j / ((double) i - 1.0D);
|
||||
float f = (random.nextFloat() - 0.5F) * 0.2F;
|
||||
float f1 = (random.nextFloat() - 0.5F) * 0.2F;
|
||||
float f2 = (random.nextFloat() - 0.5F) * 0.2F;
|
||||
double d3 = d0 + (this.posX - d0) * d6 + (random.nextDouble() - 0.5D) * (double) this.width * 2.0D;
|
||||
double d4 = d1 + (this.posY - d1) * d6 + random.nextDouble() * (double) this.height;
|
||||
double d5 = d2 + (this.posZ - d2) * d6 + (random.nextDouble() - 0.5D) * (double) this.width * 2.0D;
|
||||
world.spawnParticle(EnumParticleTypes.PORTAL, d3, d4, d5, (double) f, (double) f1, (double) f2,
|
||||
new int[0]);
|
||||
}
|
||||
|
||||
if (this instanceof EntityCreature) {
|
||||
((EntityCreature) this).getNavigator().clearPathEntity();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.entity.ai;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockCrops;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
|
@ -11,22 +12,31 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||
*
|
||||
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
|
||||
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
|
||||
*
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights
|
||||
* Reserved.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
|
@ -42,7 +52,8 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
|
|||
this.theVillager = theVillagerIn;
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns whether the EntityAIBase should begin execution.
|
||||
*/
|
||||
public boolean shouldExecute() {
|
||||
|
@ -59,7 +70,8 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
|
|||
return super.shouldExecute();
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns whether an in-progress EntityAIBase should continue
|
||||
* executing
|
||||
*/
|
||||
|
@ -67,21 +79,24 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
|
|||
return this.field_179501_f >= 0 && super.continueExecuting();
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Execute a one shot task or start executing a continuous task
|
||||
*/
|
||||
public void startExecuting() {
|
||||
super.startExecuting();
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Resets the task
|
||||
*/
|
||||
public void resetTask() {
|
||||
super.resetTask();
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Updates the task
|
||||
*/
|
||||
public void updateTask() {
|
||||
|
@ -113,6 +128,9 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
|
|||
} else if (itemstack.getItem() == Items.carrot) {
|
||||
world.setBlockState(blockpos, Blocks.carrots.getDefaultState(), 3);
|
||||
flag = true;
|
||||
} else if (itemstack.getItem() == EaglerItems.getEaglerItem("beetroot_seeds")) {
|
||||
world.setBlockState(blockpos, EaglerItems.getEaglerBlock("beetroots").getDefaultState(), 3);
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -132,7 +150,8 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
|
|||
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Return true to set given position as destination
|
||||
*/
|
||||
protected boolean shouldMoveTo(World worldIn, BlockPos pos) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.entity.ai;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.passive.EntityVillager;
|
||||
import net.minecraft.init.Items;
|
||||
|
@ -8,22 +9,31 @@ import net.minecraft.item.Item;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.MathHelper;
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||
*
|
||||
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
|
||||
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
|
||||
*
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights
|
||||
* Reserved.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
|
@ -37,7 +47,8 @@ public class EntityAIVillagerInteract extends EntityAIWatchClosest2 {
|
|||
this.villager = villagerIn;
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Execute a one shot task or start executing a continuous task
|
||||
*/
|
||||
public void startExecuting() {
|
||||
|
@ -51,7 +62,8 @@ public class EntityAIVillagerInteract extends EntityAIWatchClosest2 {
|
|||
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Updates the task
|
||||
*/
|
||||
public void updateTask() {
|
||||
|
@ -66,7 +78,8 @@ public class EntityAIVillagerInteract extends EntityAIWatchClosest2 {
|
|||
ItemStack itemstack1 = null;
|
||||
if (itemstack != null) {
|
||||
Item item = itemstack.getItem();
|
||||
if ((item == Items.bread || item == Items.potato || item == Items.carrot)
|
||||
if ((item == Items.bread || item == Items.potato || item == Items.carrot
|
||||
|| item == EaglerItems.getEaglerItem("beetroot"))
|
||||
&& itemstack.stackSize > 3) {
|
||||
int l = itemstack.stackSize / 2;
|
||||
itemstack.stackSize -= l;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.entity.passive;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityAgeable;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
|
@ -21,22 +22,31 @@ import net.minecraft.util.BlockPos;
|
|||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||
*
|
||||
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
|
||||
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
|
||||
*
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights
|
||||
* Reserved.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
|
@ -74,7 +84,8 @@ public class EntityChicken extends EntityAnimal {
|
|||
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Called frequently so the entity can update its state every
|
||||
* tick as required. For example, zombies and skeletons use this
|
||||
* to react to sunlight and start to burn.
|
||||
|
@ -106,21 +117,24 @@ public class EntityChicken extends EntityAnimal {
|
|||
public void fall(float var1, float var2) {
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns the sound this mob makes while it's alive.
|
||||
*/
|
||||
protected String getLivingSound() {
|
||||
return "mob.chicken.say";
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns the sound this mob makes when it is hurt.
|
||||
*/
|
||||
protected String getHurtSound() {
|
||||
return "mob.chicken.hurt";
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns the sound this mob makes on death.
|
||||
*/
|
||||
protected String getDeathSound() {
|
||||
|
@ -135,7 +149,8 @@ public class EntityChicken extends EntityAnimal {
|
|||
return Items.feather;
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Drop 0-2 items of this living's type
|
||||
*/
|
||||
protected void dropFewItems(boolean var1, int i) {
|
||||
|
@ -157,16 +172,21 @@ public class EntityChicken extends EntityAnimal {
|
|||
return new EntityChicken(this.worldObj);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Checks if the parameter is an item which this animal can be
|
||||
* fed to breed it (wheat, carrots or seeds depending on the
|
||||
* animal type)
|
||||
*/
|
||||
public boolean isBreedingItem(ItemStack itemstack) {
|
||||
return itemstack != null && itemstack.getItem() == Items.wheat_seeds;
|
||||
return itemstack != null && itemstack.getItem() == Items.wheat_seeds
|
||||
|| itemstack.getItem() == Items.pumpkin_seeds
|
||||
|| itemstack.getItem() == Items.melon_seeds
|
||||
|| itemstack.getItem() == EaglerItems.getEaglerItem("beetroot_seeds");
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* (abstract) Protected helper method to read subclass entity
|
||||
* data from NBT.
|
||||
*/
|
||||
|
@ -179,14 +199,16 @@ public class EntityChicken extends EntityAnimal {
|
|||
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Get the experience points the entity currently has.
|
||||
*/
|
||||
protected int getExperiencePoints(EntityPlayer entityplayer) {
|
||||
return this.isChickenJockey() ? 10 : super.getExperiencePoints(entityplayer);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* (abstract) Protected helper method to write subclass entity
|
||||
* data to NBT.
|
||||
*/
|
||||
|
@ -196,7 +218,8 @@ public class EntityChicken extends EntityAnimal {
|
|||
nbttagcompound.setInteger("EggLayTime", this.timeUntilNextEgg);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Determines if an entity can be despawned, used on idle far
|
||||
* away entities
|
||||
*/
|
||||
|
@ -219,7 +242,8 @@ public class EntityChicken extends EntityAnimal {
|
|||
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Determines if this chicken is a jokey with a zombie riding
|
||||
* it.
|
||||
*/
|
||||
|
@ -227,7 +251,8 @@ public class EntityChicken extends EntityAnimal {
|
|||
return this.chickenJockey;
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Sets whether this chicken is a jockey or not.
|
||||
*/
|
||||
public void setChickenJockey(boolean jockey) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.entity.passive;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityAgeable;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
|
@ -24,22 +25,31 @@ import net.minecraft.stats.AchievementList;
|
|||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||
*
|
||||
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
|
||||
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
|
||||
*
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights
|
||||
* Reserved.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
|
@ -69,7 +79,8 @@ public class EntityPig extends EntityAnimal {
|
|||
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* returns true if all the conditions for steering the entity
|
||||
* are met. For pigs, this is true if it is being ridden by a
|
||||
* player and the player is holding a carrot-on-a-stick
|
||||
|
@ -84,7 +95,8 @@ public class EntityPig extends EntityAnimal {
|
|||
this.dataWatcher.addObject(16, Byte.valueOf((byte) 0));
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* (abstract) Protected helper method to write subclass entity
|
||||
* data to NBT.
|
||||
*/
|
||||
|
@ -93,7 +105,8 @@ public class EntityPig extends EntityAnimal {
|
|||
nbttagcompound.setBoolean("Saddle", this.getSaddled());
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* (abstract) Protected helper method to read subclass entity
|
||||
* data from NBT.
|
||||
*/
|
||||
|
@ -102,21 +115,24 @@ public class EntityPig extends EntityAnimal {
|
|||
this.setSaddled(nbttagcompound.getBoolean("Saddle"));
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns the sound this mob makes while it's alive.
|
||||
*/
|
||||
protected String getLivingSound() {
|
||||
return "mob.pig.say";
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns the sound this mob makes when it is hurt.
|
||||
*/
|
||||
protected String getHurtSound() {
|
||||
return "mob.pig.say";
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns the sound this mob makes on death.
|
||||
*/
|
||||
protected String getDeathSound() {
|
||||
|
@ -127,7 +143,8 @@ public class EntityPig extends EntityAnimal {
|
|||
this.playSound("mob.pig.step", 0.15F, 1.0F);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Called when a player interacts with a mob. e.g. gets milk
|
||||
* from a cow, gets into the saddle on a pig.
|
||||
*/
|
||||
|
@ -147,7 +164,8 @@ public class EntityPig extends EntityAnimal {
|
|||
return this.isBurning() ? Items.cooked_porkchop : Items.porkchop;
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Drop 0-2 items of this living's type
|
||||
*/
|
||||
protected void dropFewItems(boolean var1, int i) {
|
||||
|
@ -167,14 +185,16 @@ public class EntityPig extends EntityAnimal {
|
|||
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns true if the pig is saddled.
|
||||
*/
|
||||
public boolean getSaddled() {
|
||||
return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0;
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Set or remove the saddle of the pig.
|
||||
*/
|
||||
public void setSaddled(boolean saddled) {
|
||||
|
@ -186,7 +206,8 @@ public class EntityPig extends EntityAnimal {
|
|||
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Called when a lightning bolt hits the entity.
|
||||
*/
|
||||
public void onStruckByLightning(EntityLightningBolt var1) {
|
||||
|
@ -217,16 +238,19 @@ public class EntityPig extends EntityAnimal {
|
|||
return new EntityPig(this.worldObj);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Checks if the parameter is an item which this animal can be
|
||||
* fed to breed it (wheat, carrots or seeds depending on the
|
||||
* animal type)
|
||||
*/
|
||||
public boolean isBreedingItem(ItemStack itemstack) {
|
||||
return itemstack != null && itemstack.getItem() == Items.carrot;
|
||||
return itemstack != null && itemstack.getItem() == Items.carrot || itemstack.getItem() == Items.potato
|
||||
|| itemstack.getItem() == EaglerItems.getEaglerItem("beetroot_seeds");
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Return the AI task for player control.
|
||||
*/
|
||||
public EntityAIControlledByPlayer getAIControlledByPlayer() {
|
||||
|
|
|
@ -1086,28 +1086,29 @@ public class Item {
|
|||
registerItem(2257, (String) "record_cat", (new ItemRecord("cat")).setUnlocalizedName("record"));
|
||||
registerItem(2258, (String) "record_blocks", (new ItemRecord("blocks")).setUnlocalizedName("record"));
|
||||
registerItem(2259, (String) "record_chirp", (new ItemRecord("chirp")).setUnlocalizedName("record"));
|
||||
|
||||
for (EaglerCustomBlock block : EaglerItems.getEaglerCustomBlocks()) {
|
||||
if (!block.hasItem())
|
||||
continue;
|
||||
if (block.isSlab()) {
|
||||
registerItemBlock(block.getBlock(),
|
||||
(new ItemSlab(block.getBlock(), (BlockSlab) block.getBlock(), block.getSlabDouble()))
|
||||
.setUnlocalizedName(block.getBlock().getUnlocalizedName()));
|
||||
.setUnlocalizedName(block.getBlock().unlocalizedName));
|
||||
} else {
|
||||
registerItemBlock(block.getBlock());
|
||||
}
|
||||
}
|
||||
// List<String> blockIds = EaglerItems.getEaglerBlockIds();
|
||||
// for (int i = 0; i < blockIds.size(); i++) {
|
||||
// String blockId = blockIds.get(i);
|
||||
// EaglerCustomBlock block = EaglerItems.getEaglerCustomBlock(blockId);
|
||||
// Block block1 = block.block;
|
||||
// if (block.isSlab) {
|
||||
// registerItemBlock(block.block,
|
||||
// (new ItemSlab(block.block, (BlockSlab) block.block, block.slabDouble))
|
||||
// .setUnlocalizedName(block1.getUnlocalizedName()));
|
||||
// } else {
|
||||
// registerItemBlock(block.block);
|
||||
// }
|
||||
// }
|
||||
|
||||
registerEaglerItem(432, "chorus_fruit",
|
||||
(new ItemChorusFruit(4, 0.3F)).setAlwaysEdible().setUnlocalizedName("chorusFruit")
|
||||
.setCreativeTab(CreativeTabs.tabMaterials));
|
||||
registerEaglerItem(433, "chorus_fruit_popped",
|
||||
(new Item()).setUnlocalizedName("chorusFruitPopped").setCreativeTab(CreativeTabs.tabMaterials));
|
||||
registerEaglerItem(434, "beetroot", (new ItemFood(1, 0.6F, false)).setUnlocalizedName("beetroot"));
|
||||
registerEaglerItem(435, "beetroot_seeds",
|
||||
(new ItemSeeds(EaglerItems.getEaglerBlock("beetroots"), Blocks.farmland))
|
||||
.setUnlocalizedName("beetroot_seeds"));
|
||||
registerEaglerItem(436, "beetroot_soup", (new ItemSoup(6)).setUnlocalizedName("beetroot_soup"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
package net.minecraft.item;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemChorusFruit extends ItemFood {
|
||||
public ItemChorusFruit(int amount, float saturation) {
|
||||
super(amount, saturation, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
/**
|
||||
* Called when the player finishes using this Item (E.g. finishes eating.). Not
|
||||
* called when the player stops using
|
||||
* the Item before the action is complete.
|
||||
*/
|
||||
public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer entityLiving) {
|
||||
// TODO: Sound and cooldown
|
||||
ItemStack itemstack = super.onItemUseFinish(stack, worldIn, entityLiving);
|
||||
|
||||
if (!worldIn.isRemote) {
|
||||
double d0 = entityLiving.posX;
|
||||
double d1 = entityLiving.posY;
|
||||
double d2 = entityLiving.posZ;
|
||||
|
||||
for (int i = 0; i < 16; ++i) {
|
||||
double d3 = entityLiving.posX + (entityLiving.getRNG().nextDouble() - 0.5D) * 16.0D;
|
||||
double d4 = MathHelper.clamp_double(
|
||||
entityLiving.posY + (double) (entityLiving.getRNG().nextInt(16) - 8), 0.0D,
|
||||
(double) (worldIn.getActualHeight() - 1));
|
||||
double d5 = entityLiving.posZ + (entityLiving.getRNG().nextDouble() - 0.5D) * 16.0D;
|
||||
|
||||
entityLiving.setPosition(d3, d4, d5);
|
||||
|
||||
if (entityLiving.attemptTeleport(d3, d4, d5)) {
|
||||
// worldIn.playSound((EntityPlayer) null, d0, d1, d2,
|
||||
// SoundEvents.ITEM_CHORUS_FRUIT_TELEPORT,
|
||||
// SoundCategory.PLAYERS, 1.0F, 1.0F);
|
||||
// entityLiving.playSound(SoundEvents.ITEM_CHORUS_FRUIT_TELEPORT, 1.0F, 1.0F);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// if (entityLiving instanceof EntityPlayer) {
|
||||
// ((EntityPlayer) entityLiving).getCooldownTracker().setCooldown(this, 20);
|
||||
// }
|
||||
}
|
||||
|
||||
return itemstack;
|
||||
}
|
||||
}
|
|
@ -5,6 +5,7 @@ import java.util.Map.Entry;
|
|||
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockStoneBrick;
|
||||
import net.minecraft.init.Blocks;
|
||||
|
@ -14,22 +15,31 @@ import net.minecraft.item.Item;
|
|||
import net.minecraft.item.ItemFishFood;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||
*
|
||||
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
|
||||
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
|
||||
*
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights
|
||||
* Reserved.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
|
@ -39,7 +49,8 @@ public class FurnaceRecipes {
|
|||
private Map<ItemStack, ItemStack> smeltingList = Maps.newHashMap();
|
||||
private Map<ItemStack, Float> experienceList = Maps.newHashMap();
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns an instance of FurnaceRecipes.
|
||||
*/
|
||||
public static FurnaceRecipes instance() {
|
||||
|
@ -72,6 +83,8 @@ public class FurnaceRecipes {
|
|||
this.addSmelting(Items.potato, new ItemStack(Items.baked_potato), 0.35F);
|
||||
this.addSmeltingRecipeForBlock(Blocks.netherrack, new ItemStack(Items.netherbrick), 0.1F);
|
||||
this.addSmeltingRecipe(new ItemStack(Blocks.sponge, 1, 1), new ItemStack(Blocks.sponge, 1, 0), 0.15F);
|
||||
this.addSmelting(EaglerItems.getEaglerItem("chorus_fruit"),
|
||||
new ItemStack(EaglerItems.getEaglerItem("chorus_fruit_popped")), 0.1F);
|
||||
|
||||
ItemFishFood.FishType[] types = ItemFishFood.FishType.values();
|
||||
for (int i = 0; i < types.length; ++i) {
|
||||
|
@ -89,7 +102,8 @@ public class FurnaceRecipes {
|
|||
this.addSmeltingRecipeForBlock(Blocks.quartz_ore, new ItemStack(Items.quartz), 0.2F);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Adds a smelting recipe, where the input item is an instance
|
||||
* of Block.
|
||||
*/
|
||||
|
@ -97,14 +111,16 @@ public class FurnaceRecipes {
|
|||
this.addSmelting(Item.getItemFromBlock(input), stack, experience);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Adds a smelting recipe using an Item as the input item.
|
||||
*/
|
||||
public void addSmelting(Item input, ItemStack stack, float experience) {
|
||||
this.addSmeltingRecipe(new ItemStack(input, 1, 32767), stack, experience);
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Adds a smelting recipe using an ItemStack as the input for
|
||||
* the recipe.
|
||||
*/
|
||||
|
@ -113,7 +129,8 @@ public class FurnaceRecipes {
|
|||
this.experienceList.put(stack, Float.valueOf(experience));
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Returns the smelting result of an item.
|
||||
*/
|
||||
public ItemStack getSmeltingResult(ItemStack stack) {
|
||||
|
@ -126,7 +143,8 @@ public class FurnaceRecipes {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Compares two itemstacks to ensure that they are the same.
|
||||
* This checks both the item and the metadata of the item.
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.minecraft.item.crafting;
|
||||
|
||||
import net.hoosiertransfer.EaglerItems;
|
||||
import net.minecraft.block.BlockDirt;
|
||||
import net.minecraft.block.BlockPrismarine;
|
||||
import net.minecraft.block.BlockQuartz;
|
||||
|
@ -15,28 +16,38 @@ import net.minecraft.init.Items;
|
|||
import net.minecraft.item.EnumDyeColor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||
*
|
||||
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
|
||||
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
|
||||
*
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights
|
||||
* Reserved.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
public class RecipesCrafting {
|
||||
/**+
|
||||
/**
|
||||
* +
|
||||
* Adds the crafting recipes to the CraftingManager.
|
||||
*/
|
||||
public void addRecipes(CraftingManager parCraftingManager) {
|
||||
|
@ -126,5 +137,24 @@ public class RecipesCrafting {
|
|||
Character.valueOf('I'), new ItemStack(Items.dye, 1, EnumDyeColor.BLACK.getDyeDamage()) });
|
||||
parCraftingManager.addRecipe(new ItemStack(Blocks.sea_lantern, 1, 0), new Object[] { "SCS", "CCC", "SCS",
|
||||
Character.valueOf('S'), Items.prismarine_shard, Character.valueOf('C'), Items.prismarine_crystals });
|
||||
|
||||
// Eaglercraft lambda recipes
|
||||
parCraftingManager.addRecipe(new ItemStack(EaglerItems.getEaglerBlock("purpur_block"), 1),
|
||||
new Object[] { "FF", "FF", Character.valueOf('F'),
|
||||
new ItemStack(EaglerItems.getEaglerItem("chorus_fruit_popped")) });
|
||||
parCraftingManager.addRecipe(new ItemStack(EaglerItems.getEaglerBlock("end_bricks"), 1),
|
||||
new Object[] { "SS", "SS", Character.valueOf('S'), new ItemStack(Blocks.end_stone) });
|
||||
parCraftingManager.addRecipe(new ItemStack(EaglerItems.getEaglerBlock("purpur_stairs"), 1),
|
||||
new Object[] { "P ", "PP ", "PPP", Character.valueOf('P'),
|
||||
new ItemStack(EaglerItems.getEaglerBlock("purpur_block")) });
|
||||
parCraftingManager.addRecipe(new ItemStack(EaglerItems.getEaglerBlock("purpur_slab"), 1),
|
||||
new Object[] { "PPP", Character.valueOf('P'),
|
||||
new ItemStack(EaglerItems.getEaglerBlock("purpur_block")) });
|
||||
parCraftingManager.addRecipe(new ItemStack(EaglerItems.getEaglerBlock("purpur_pillar"), 1),
|
||||
new Object[] { "P", "P", Character.valueOf('P'),
|
||||
new ItemStack(EaglerItems.getEaglerBlock("purpur_slab")) });
|
||||
parCraftingManager.addRecipe(new ItemStack(EaglerItems.getEaglerItem("beetroot_soup"), 1),
|
||||
new Object[] { "FFF", "FFF", " B ", Character.valueOf('F'),
|
||||
EaglerItems.getEaglerItem("beetroot"), Character.valueOf('B'), Items.bowl });
|
||||
}
|
||||
}
|