pre 1.9 protocol

This commit is contained in:
HoosierTransfer 2024-05-02 15:08:36 -04:00
parent f921826413
commit 7b232a057e
46 changed files with 1402689 additions and 96763 deletions

View File

@ -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" }
}
}

View File

@ -1,5 +1,5 @@
{ {
"variants": { "variants": {
"normal": { "model": "purpur_block" } "variant=default": { "model": "purpur_block" }
} }
} }

View File

@ -0,0 +1,6 @@
{
"parent": "block/crop",
"textures": {
"crop": "blocks/beetroots_stage_0"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "block/crop",
"textures": {
"crop": "blocks/beetroots_stage_1"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "block/crop",
"textures": {
"crop": "blocks/beetroots_stage_2"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "block/crop",
"textures": {
"crop": "blocks/beetroots_stage_3"
}
}

View File

@ -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

View File

@ -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 ]
}
}
}

View File

@ -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 ]
}
}
}

View File

@ -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 ]
}
}
}

View File

@ -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 ]
}
}
}

View File

@ -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 ]
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

View File

@ -3,3 +3,7 @@ purpur_pillar.png=@purpur_pillar.png,0
purpur_pillar_top.png=@purpur_pillar_top.png,0 purpur_pillar_top.png=@purpur_pillar_top.png,0
purpur_block.png=@purpur_block.png,0 purpur_block.png=@purpur_block.png,0
end_stone_bricks.png=@end_stone_bricks.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

View File

@ -0,0 +1,2 @@
[LocalizedFileNames]
beetroot_soup.png=@beetroot_soup.png,0

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,8 @@
package net.hoosiertransfer; package net.hoosiertransfer;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockSlab; import net.minecraft.block.BlockSlab;
@ -7,17 +10,31 @@ public class EaglerCustomBlock {
private final Block block; private final Block block;
private final BlockSlab slabDouble; private final BlockSlab slabDouble;
private final boolean isSlab; private final boolean isSlab;
private final List<String> variants;
private final boolean hasItem;
public EaglerCustomBlock(Block block) { public EaglerCustomBlock(Block block) {
this.block = block; this.block = block;
this.isSlab = false; this.isSlab = false;
this.slabDouble = null; 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.block = (Block) slabHalf;
this.slabDouble = slabDouble; this.slabDouble = slabDouble;
this.isSlab = true; 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() { public Block getBlock() {
@ -31,4 +48,12 @@ public class EaglerCustomBlock {
public boolean isSlab() { public boolean isSlab() {
return isSlab; return isSlab;
} }
public List<String> getVariants() {
return variants;
}
public boolean hasItem() {
return hasItem;
}
} }

View File

@ -17,8 +17,12 @@ public class EaglerItems {
blockMap.put(id, new EaglerCustomBlock(block)); blockMap.put(id, new EaglerCustomBlock(block));
} }
public static void registerEaglerSlab(String id, BlockSlab block, BlockSlab slabDouble) { public static void registerEaglerBlock(String id, Block block, boolean hasItem) {
blockMap.put(id, new EaglerCustomBlock(block, slabDouble)); 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) { public static void registerEaglerItem(String id, Item item) {
@ -26,12 +30,27 @@ public class EaglerItems {
} }
public static EaglerCustomBlock getEaglerCustomBlock(String id) { 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) { public static Block getEaglerBlock(String id) {
EaglerCustomBlock customBlock = blockMap.get(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() { public static List<EaglerCustomBlock> getEaglerCustomBlocks() {

View File

@ -9,8 +9,8 @@ public class EaglercraftVersion {
/// Customize these to fit your fork: /// Customize these to fit your fork:
public static final String projectForkName = "EaglerfastX"; public static final String projectForkName = "Eaglercraft Lambda";
public static final String projectForkVersion = "1.2.0"; public static final String projectForkVersion = "2.0.0";
public static final String projectForkVendor = "hoosiertransfer"; public static final String projectForkVendor = "hoosiertransfer";
public static final String projectForkURL = "https://gitlab.com/lax1dude/eaglercraftx-1.8"; public static final String projectForkURL = "https://gitlab.com/lax1dude/eaglercraftx-1.8";

View File

@ -1,5 +1,6 @@
package net.minecraft.block; package net.minecraft.block;
import java.util.Arrays;
import java.util.List; import java.util.List;
import net.hoosiertransfer.EaglerItems; import net.hoosiertransfer.EaglerItems;
@ -1648,17 +1649,16 @@ public class Block implements ILitBlock {
.setStepSound(soundTypeStone).setUnlocalizedName("purpurPillar")); .setStepSound(soundTypeStone).setUnlocalizedName("purpurPillar"));
registerEaglerBlock(203, "purpur_stairs", (new BlockStairs(purpurBlock.getDefaultState())) registerEaglerBlock(203, "purpur_stairs", (new BlockStairs(purpurBlock.getDefaultState()))
.setUnlocalizedName("stairsPurpur")); .setUnlocalizedName("stairsPurpur"));
// registerEaglerBlock(204, "purpur_double_slab", (new registerEaglerSlab(204, "purpur_double_slab",
// BlockPurpurSlab.Double()).setHardness(2.0F) (BlockSlab) (new BlockPurpurSlab.Double()).setHardness(2.0F).setResistance(10.0F)
// .setResistance(10.0F).setStepSound(soundTypeStone).setUnlocalizedName("purpurSlab"));\ .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(),
205, "purpur_slab", 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) registerEaglerBlock(206, "end_bricks", (new Block(Material.rock)).setStepSound(soundTypeStone).setHardness(0.8F)
.setCreativeTab(CreativeTabs.tabBlock).setUnlocalizedName("endBricks")); .setCreativeTab(CreativeTabs.tabBlock).setUnlocalizedName("endBricks"));
registerEaglerBlock(207, "beetroots", (new BlockBeetroot()).setUnlocalizedName("beetroots"), false);
blockRegistry.validateKey(); blockRegistry.validateKey();
@ -1744,9 +1744,14 @@ public class Block implements ILitBlock {
registerBlock(id, textualID, block_); 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, private static void registerEaglerSlab(int id1, String textualID1, BlockSlab slabDouble, int id2, String textualID2,
BlockSlab slabHalf) { BlockSlab slabHalf, String... variants) {
EaglerItems.registerEaglerSlab(textualID1, slabHalf, slabDouble); EaglerItems.registerEaglerSlab(textualID2, slabHalf, slabDouble, Arrays.asList(variants));
registerBlock(id1, textualID1, slabDouble); registerBlock(id1, textualID1, slabDouble);
registerBlock(id2, textualID2, slabHalf); registerBlock(id2, textualID2, slabHalf);
} }

View File

@ -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");
}
}

View File

@ -50,19 +50,16 @@ import net.minecraft.world.World;
* *
*/ */
public abstract class BlockPurpurSlab extends BlockSlab { public abstract class BlockPurpurSlab extends BlockSlab {
public static final PropertyBool SEAMLESS = PropertyBool.create("seamless");
public static PropertyEnum<BlockPurpurSlab.EnumType> VARIANT; public static PropertyEnum<BlockPurpurSlab.EnumType> VARIANT;
public BlockPurpurSlab() { public BlockPurpurSlab() {
super(Material.rock); super(Material.rock);
IBlockState iblockstate = this.blockState.getBaseState(); IBlockState iblockstate = this.blockState.getBaseState();
if (this.isDouble()) { if (!this.isDouble()) {
iblockstate = iblockstate.withProperty(SEAMLESS, Boolean.valueOf(false));
} else {
iblockstate = iblockstate.withProperty(HALF, BlockSlab.EnumBlockHalf.BOTTOM); 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); this.setCreativeTab(CreativeTabs.tabBlock);
} }
@ -108,10 +105,8 @@ public abstract class BlockPurpurSlab extends BlockSlab {
BlockPurpurSlab.EnumType[] types = BlockPurpurSlab.EnumType.META_LOOKUP; BlockPurpurSlab.EnumType[] types = BlockPurpurSlab.EnumType.META_LOOKUP;
for (int i = 0; i < types.length; ++i) { for (int i = 0; i < types.length; ++i) {
BlockPurpurSlab.EnumType BlockPurpurSlab$enumtype = types[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) { public IBlockState getStateFromMeta(int i) {
IBlockState iblockstate = this.getDefaultState().withProperty(VARIANT, IBlockState iblockstate = this.getDefaultState().withProperty(VARIANT,
BlockPurpurSlab.EnumType.byMetadata(i & 7)); BlockPurpurSlab.EnumType.byMetadata(i & 7));
if (this.isDouble()) { if (!this.isDouble()) {
iblockstate = iblockstate.withProperty(SEAMLESS, Boolean.valueOf((i & 8) != 0));
} else {
iblockstate = iblockstate.withProperty(HALF, iblockstate = iblockstate.withProperty(HALF,
(i & 8) == 0 ? BlockSlab.EnumBlockHalf.BOTTOM : BlockSlab.EnumBlockHalf.TOP); (i & 8) == 0 ? BlockSlab.EnumBlockHalf.BOTTOM : BlockSlab.EnumBlockHalf.TOP);
} }
@ -140,11 +133,7 @@ public abstract class BlockPurpurSlab extends BlockSlab {
public int getMetaFromState(IBlockState iblockstate) { public int getMetaFromState(IBlockState iblockstate) {
int i = 0; int i = 0;
i = i | ((BlockPurpurSlab.EnumType) iblockstate.getValue(VARIANT)).getMetadata(); i = i | ((BlockPurpurSlab.EnumType) iblockstate.getValue(VARIANT)).getMetadata();
if (this.isDouble()) { if (!this.isDouble() && iblockstate.getValue(HALF) == BlockSlab.EnumBlockHalf.TOP) {
if (((Boolean) iblockstate.getValue(SEAMLESS)).booleanValue()) {
i |= 8;
}
} else if (iblockstate.getValue(HALF) == BlockSlab.EnumBlockHalf.TOP) {
i |= 8; i |= 8;
} }
@ -152,7 +141,7 @@ public abstract class BlockPurpurSlab extends BlockSlab {
} }
protected BlockState createBlockState() { 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 }); : new BlockState(this, new IProperty[] { HALF, VARIANT });
} }
@ -188,13 +177,9 @@ public abstract class BlockPurpurSlab extends BlockSlab {
} }
public static enum EnumType implements IStringSerializable { public static enum EnumType implements IStringSerializable {
STONE(0, MapColor.stoneColor, "stone"), SAND(1, MapColor.sandColor, "sandstone", "sand"), DEFAULT(0, MapColor.purpleColor, "default");
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");
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 int meta;
private final MapColor field_181075_k; private final MapColor field_181075_k;
private final String name; private final String name;

View File

@ -21,6 +21,7 @@ import net.minecraft.block.BlockFlower;
import net.minecraft.block.BlockHugeMushroom; import net.minecraft.block.BlockHugeMushroom;
import net.minecraft.block.BlockPlanks; import net.minecraft.block.BlockPlanks;
import net.minecraft.block.BlockPrismarine; import net.minecraft.block.BlockPrismarine;
import net.minecraft.block.BlockPurpurSlab;
import net.minecraft.block.BlockQuartz; import net.minecraft.block.BlockQuartz;
import net.minecraft.block.BlockRedSandstone; import net.minecraft.block.BlockRedSandstone;
import net.minecraft.block.BlockSand; import net.minecraft.block.BlockSand;
@ -1105,7 +1106,13 @@ public class RenderItem implements IResourceManagerReloadListener {
"red_mushroom_block"); "red_mushroom_block");
this.registerBlock(Blocks.dragon_egg, "dragon_egg"); 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()) { for (Map.Entry<String, EaglerCustomBlock> entry : EaglerItems.getEaglerCustomBlockEntries()) {
if (entry.getValue().isSlab() || !entry.getValue().hasItem()) {
continue;
}
this.registerBlock(entry.getValue().getBlock(), entry.getKey()); this.registerBlock(entry.getValue().getBlock(), entry.getKey());
} }

View File

@ -48,22 +48,36 @@ import net.minecraft.util.IRegistry;
import net.minecraft.util.RegistrySimple; import net.minecraft.util.RegistrySimple;
import net.minecraft.util.ResourceLocation; 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. * This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
* *
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" * 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 * 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 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * DISCLAIMED.
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * DIRECT,
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * (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 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
* *
@ -390,6 +404,13 @@ public class ModelBakery {
this.variantNames.put(Item.getItemFromBlock(Blocks.oak_fence), this.variantNames.put(Item.getItemFromBlock(Blocks.oak_fence),
Lists.newArrayList(new String[] { "oak_fence" })); Lists.newArrayList(new String[] { "oak_fence" }));
this.variantNames.put(Items.oak_door, Lists.newArrayList(new String[] { "oak_door" })); 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) { private List<String> getVariantNames(Item parItem) {

File diff suppressed because it is too large Load Diff

View File

@ -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;
}
}
} }

View File

@ -1,5 +1,6 @@
package net.minecraft.entity.ai; package net.minecraft.entity.ai;
import net.hoosiertransfer.EaglerItems;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockCrops; import net.minecraft.block.BlockCrops;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
@ -11,22 +12,31 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos; import net.minecraft.util.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
/**+ /**
* +
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code. * This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
* *
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" * 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 * 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 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * DISCLAIMED.
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * DIRECT,
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * (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 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
* *
@ -42,7 +52,8 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
this.theVillager = theVillagerIn; this.theVillager = theVillagerIn;
} }
/**+ /**
* +
* Returns whether the EntityAIBase should begin execution. * Returns whether the EntityAIBase should begin execution.
*/ */
public boolean shouldExecute() { public boolean shouldExecute() {
@ -59,7 +70,8 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
return super.shouldExecute(); return super.shouldExecute();
} }
/**+ /**
* +
* Returns whether an in-progress EntityAIBase should continue * Returns whether an in-progress EntityAIBase should continue
* executing * executing
*/ */
@ -67,21 +79,24 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
return this.field_179501_f >= 0 && super.continueExecuting(); return this.field_179501_f >= 0 && super.continueExecuting();
} }
/**+ /**
* +
* Execute a one shot task or start executing a continuous task * Execute a one shot task or start executing a continuous task
*/ */
public void startExecuting() { public void startExecuting() {
super.startExecuting(); super.startExecuting();
} }
/**+ /**
* +
* Resets the task * Resets the task
*/ */
public void resetTask() { public void resetTask() {
super.resetTask(); super.resetTask();
} }
/**+ /**
* +
* Updates the task * Updates the task
*/ */
public void updateTask() { public void updateTask() {
@ -113,6 +128,9 @@ public class EntityAIHarvestFarmland extends EntityAIMoveToBlock {
} else if (itemstack.getItem() == Items.carrot) { } else if (itemstack.getItem() == Items.carrot) {
world.setBlockState(blockpos, Blocks.carrots.getDefaultState(), 3); world.setBlockState(blockpos, Blocks.carrots.getDefaultState(), 3);
flag = true; 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 * Return true to set given position as destination
*/ */
protected boolean shouldMoveTo(World worldIn, BlockPos pos) { protected boolean shouldMoveTo(World worldIn, BlockPos pos) {

View File

@ -1,5 +1,6 @@
package net.minecraft.entity.ai; package net.minecraft.entity.ai;
import net.hoosiertransfer.EaglerItems;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.passive.EntityVillager; import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.init.Items; import net.minecraft.init.Items;
@ -8,22 +9,31 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
/**+ /**
* +
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code. * This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
* *
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" * 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 * 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 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * DISCLAIMED.
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * DIRECT,
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * (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 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
* *
@ -37,7 +47,8 @@ public class EntityAIVillagerInteract extends EntityAIWatchClosest2 {
this.villager = villagerIn; this.villager = villagerIn;
} }
/**+ /**
* +
* Execute a one shot task or start executing a continuous task * Execute a one shot task or start executing a continuous task
*/ */
public void startExecuting() { public void startExecuting() {
@ -51,7 +62,8 @@ public class EntityAIVillagerInteract extends EntityAIWatchClosest2 {
} }
/**+ /**
* +
* Updates the task * Updates the task
*/ */
public void updateTask() { public void updateTask() {
@ -66,7 +78,8 @@ public class EntityAIVillagerInteract extends EntityAIWatchClosest2 {
ItemStack itemstack1 = null; ItemStack itemstack1 = null;
if (itemstack != null) { if (itemstack != null) {
Item item = itemstack.getItem(); 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) { && itemstack.stackSize > 3) {
int l = itemstack.stackSize / 2; int l = itemstack.stackSize / 2;
itemstack.stackSize -= l; itemstack.stackSize -= l;

View File

@ -1,5 +1,6 @@
package net.minecraft.entity.passive; package net.minecraft.entity.passive;
import net.hoosiertransfer.EaglerItems;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -21,22 +22,31 @@ import net.minecraft.util.BlockPos;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
/**+ /**
* +
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code. * This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
* *
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" * 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 * 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 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * DISCLAIMED.
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * DIRECT,
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * (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 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
* *
@ -74,7 +84,8 @@ public class EntityChicken extends EntityAnimal {
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
} }
/**+ /**
* +
* Called frequently so the entity can update its state every * Called frequently so the entity can update its state every
* tick as required. For example, zombies and skeletons use this * tick as required. For example, zombies and skeletons use this
* to react to sunlight and start to burn. * to react to sunlight and start to burn.
@ -106,21 +117,24 @@ public class EntityChicken extends EntityAnimal {
public void fall(float var1, float var2) { public void fall(float var1, float var2) {
} }
/**+ /**
* +
* Returns the sound this mob makes while it's alive. * Returns the sound this mob makes while it's alive.
*/ */
protected String getLivingSound() { protected String getLivingSound() {
return "mob.chicken.say"; return "mob.chicken.say";
} }
/**+ /**
* +
* Returns the sound this mob makes when it is hurt. * Returns the sound this mob makes when it is hurt.
*/ */
protected String getHurtSound() { protected String getHurtSound() {
return "mob.chicken.hurt"; return "mob.chicken.hurt";
} }
/**+ /**
* +
* Returns the sound this mob makes on death. * Returns the sound this mob makes on death.
*/ */
protected String getDeathSound() { protected String getDeathSound() {
@ -135,7 +149,8 @@ public class EntityChicken extends EntityAnimal {
return Items.feather; return Items.feather;
} }
/**+ /**
* +
* Drop 0-2 items of this living's type * Drop 0-2 items of this living's type
*/ */
protected void dropFewItems(boolean var1, int i) { protected void dropFewItems(boolean var1, int i) {
@ -157,16 +172,21 @@ public class EntityChicken extends EntityAnimal {
return new EntityChicken(this.worldObj); return new EntityChicken(this.worldObj);
} }
/**+ /**
* +
* Checks if the parameter is an item which this animal can be * Checks if the parameter is an item which this animal can be
* fed to breed it (wheat, carrots or seeds depending on the * fed to breed it (wheat, carrots or seeds depending on the
* animal type) * animal type)
*/ */
public boolean isBreedingItem(ItemStack itemstack) { 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 * (abstract) Protected helper method to read subclass entity
* data from NBT. * data from NBT.
*/ */
@ -179,14 +199,16 @@ public class EntityChicken extends EntityAnimal {
} }
/**+ /**
* +
* Get the experience points the entity currently has. * Get the experience points the entity currently has.
*/ */
protected int getExperiencePoints(EntityPlayer entityplayer) { protected int getExperiencePoints(EntityPlayer entityplayer) {
return this.isChickenJockey() ? 10 : super.getExperiencePoints(entityplayer); return this.isChickenJockey() ? 10 : super.getExperiencePoints(entityplayer);
} }
/**+ /**
* +
* (abstract) Protected helper method to write subclass entity * (abstract) Protected helper method to write subclass entity
* data to NBT. * data to NBT.
*/ */
@ -196,7 +218,8 @@ public class EntityChicken extends EntityAnimal {
nbttagcompound.setInteger("EggLayTime", this.timeUntilNextEgg); nbttagcompound.setInteger("EggLayTime", this.timeUntilNextEgg);
} }
/**+ /**
* +
* Determines if an entity can be despawned, used on idle far * Determines if an entity can be despawned, used on idle far
* away entities * away entities
*/ */
@ -219,7 +242,8 @@ public class EntityChicken extends EntityAnimal {
} }
/**+ /**
* +
* Determines if this chicken is a jokey with a zombie riding * Determines if this chicken is a jokey with a zombie riding
* it. * it.
*/ */
@ -227,7 +251,8 @@ public class EntityChicken extends EntityAnimal {
return this.chickenJockey; return this.chickenJockey;
} }
/**+ /**
* +
* Sets whether this chicken is a jockey or not. * Sets whether this chicken is a jockey or not.
*/ */
public void setChickenJockey(boolean jockey) { public void setChickenJockey(boolean jockey) {

View File

@ -1,5 +1,6 @@
package net.minecraft.entity.passive; package net.minecraft.entity.passive;
import net.hoosiertransfer.EaglerItems;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.SharedMonsterAttributes;
@ -24,22 +25,31 @@ import net.minecraft.stats.AchievementList;
import net.minecraft.util.BlockPos; import net.minecraft.util.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
/**+ /**
* +
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code. * This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
* *
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" * 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 * 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 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * DISCLAIMED.
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * DIRECT,
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * (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 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
* *
@ -69,7 +79,8 @@ public class EntityPig extends EntityAnimal {
this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
} }
/**+ /**
* +
* returns true if all the conditions for steering the entity * returns true if all the conditions for steering the entity
* are met. For pigs, this is true if it is being ridden by a * 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 * 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)); this.dataWatcher.addObject(16, Byte.valueOf((byte) 0));
} }
/**+ /**
* +
* (abstract) Protected helper method to write subclass entity * (abstract) Protected helper method to write subclass entity
* data to NBT. * data to NBT.
*/ */
@ -93,7 +105,8 @@ public class EntityPig extends EntityAnimal {
nbttagcompound.setBoolean("Saddle", this.getSaddled()); nbttagcompound.setBoolean("Saddle", this.getSaddled());
} }
/**+ /**
* +
* (abstract) Protected helper method to read subclass entity * (abstract) Protected helper method to read subclass entity
* data from NBT. * data from NBT.
*/ */
@ -102,21 +115,24 @@ public class EntityPig extends EntityAnimal {
this.setSaddled(nbttagcompound.getBoolean("Saddle")); this.setSaddled(nbttagcompound.getBoolean("Saddle"));
} }
/**+ /**
* +
* Returns the sound this mob makes while it's alive. * Returns the sound this mob makes while it's alive.
*/ */
protected String getLivingSound() { protected String getLivingSound() {
return "mob.pig.say"; return "mob.pig.say";
} }
/**+ /**
* +
* Returns the sound this mob makes when it is hurt. * Returns the sound this mob makes when it is hurt.
*/ */
protected String getHurtSound() { protected String getHurtSound() {
return "mob.pig.say"; return "mob.pig.say";
} }
/**+ /**
* +
* Returns the sound this mob makes on death. * Returns the sound this mob makes on death.
*/ */
protected String getDeathSound() { protected String getDeathSound() {
@ -127,7 +143,8 @@ public class EntityPig extends EntityAnimal {
this.playSound("mob.pig.step", 0.15F, 1.0F); this.playSound("mob.pig.step", 0.15F, 1.0F);
} }
/**+ /**
* +
* Called when a player interacts with a mob. e.g. gets milk * Called when a player interacts with a mob. e.g. gets milk
* from a cow, gets into the saddle on a pig. * 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; return this.isBurning() ? Items.cooked_porkchop : Items.porkchop;
} }
/**+ /**
* +
* Drop 0-2 items of this living's type * Drop 0-2 items of this living's type
*/ */
protected void dropFewItems(boolean var1, int i) { protected void dropFewItems(boolean var1, int i) {
@ -167,14 +185,16 @@ public class EntityPig extends EntityAnimal {
} }
/**+ /**
* +
* Returns true if the pig is saddled. * Returns true if the pig is saddled.
*/ */
public boolean getSaddled() { public boolean getSaddled() {
return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0;
} }
/**+ /**
* +
* Set or remove the saddle of the pig. * Set or remove the saddle of the pig.
*/ */
public void setSaddled(boolean saddled) { public void setSaddled(boolean saddled) {
@ -186,7 +206,8 @@ public class EntityPig extends EntityAnimal {
} }
/**+ /**
* +
* Called when a lightning bolt hits the entity. * Called when a lightning bolt hits the entity.
*/ */
public void onStruckByLightning(EntityLightningBolt var1) { public void onStruckByLightning(EntityLightningBolt var1) {
@ -217,16 +238,19 @@ public class EntityPig extends EntityAnimal {
return new EntityPig(this.worldObj); return new EntityPig(this.worldObj);
} }
/**+ /**
* +
* Checks if the parameter is an item which this animal can be * Checks if the parameter is an item which this animal can be
* fed to breed it (wheat, carrots or seeds depending on the * fed to breed it (wheat, carrots or seeds depending on the
* animal type) * animal type)
*/ */
public boolean isBreedingItem(ItemStack itemstack) { 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. * Return the AI task for player control.
*/ */
public EntityAIControlledByPlayer getAIControlledByPlayer() { public EntityAIControlledByPlayer getAIControlledByPlayer() {

View File

@ -1086,28 +1086,29 @@ public class Item {
registerItem(2257, (String) "record_cat", (new ItemRecord("cat")).setUnlocalizedName("record")); registerItem(2257, (String) "record_cat", (new ItemRecord("cat")).setUnlocalizedName("record"));
registerItem(2258, (String) "record_blocks", (new ItemRecord("blocks")).setUnlocalizedName("record")); registerItem(2258, (String) "record_blocks", (new ItemRecord("blocks")).setUnlocalizedName("record"));
registerItem(2259, (String) "record_chirp", (new ItemRecord("chirp")).setUnlocalizedName("record")); registerItem(2259, (String) "record_chirp", (new ItemRecord("chirp")).setUnlocalizedName("record"));
for (EaglerCustomBlock block : EaglerItems.getEaglerCustomBlocks()) { for (EaglerCustomBlock block : EaglerItems.getEaglerCustomBlocks()) {
if (!block.hasItem())
continue;
if (block.isSlab()) { if (block.isSlab()) {
registerItemBlock(block.getBlock(), registerItemBlock(block.getBlock(),
(new ItemSlab(block.getBlock(), (BlockSlab) block.getBlock(), block.getSlabDouble())) (new ItemSlab(block.getBlock(), (BlockSlab) block.getBlock(), block.getSlabDouble()))
.setUnlocalizedName(block.getBlock().getUnlocalizedName())); .setUnlocalizedName(block.getBlock().unlocalizedName));
} else { } else {
registerItemBlock(block.getBlock()); registerItemBlock(block.getBlock());
} }
} }
// List<String> blockIds = EaglerItems.getEaglerBlockIds();
// for (int i = 0; i < blockIds.size(); i++) { registerEaglerItem(432, "chorus_fruit",
// String blockId = blockIds.get(i); (new ItemChorusFruit(4, 0.3F)).setAlwaysEdible().setUnlocalizedName("chorusFruit")
// EaglerCustomBlock block = EaglerItems.getEaglerCustomBlock(blockId); .setCreativeTab(CreativeTabs.tabMaterials));
// Block block1 = block.block; registerEaglerItem(433, "chorus_fruit_popped",
// if (block.isSlab) { (new Item()).setUnlocalizedName("chorusFruitPopped").setCreativeTab(CreativeTabs.tabMaterials));
// registerItemBlock(block.block, registerEaglerItem(434, "beetroot", (new ItemFood(1, 0.6F, false)).setUnlocalizedName("beetroot"));
// (new ItemSlab(block.block, (BlockSlab) block.block, block.slabDouble)) registerEaglerItem(435, "beetroot_seeds",
// .setUnlocalizedName(block1.getUnlocalizedName())); (new ItemSeeds(EaglerItems.getEaglerBlock("beetroots"), Blocks.farmland))
// } else { .setUnlocalizedName("beetroot_seeds"));
// registerItemBlock(block.block); registerEaglerItem(436, "beetroot_soup", (new ItemSoup(6)).setUnlocalizedName("beetroot_soup"));
// }
// }
} }
/** /**

View File

@ -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;
}
}

View File

@ -5,6 +5,7 @@ import java.util.Map.Entry;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import net.hoosiertransfer.EaglerItems;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockStoneBrick; import net.minecraft.block.BlockStoneBrick;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
@ -14,22 +15,31 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemFishFood; import net.minecraft.item.ItemFishFood;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
/**+ /**
* +
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code. * This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
* *
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" * 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 * 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 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * DISCLAIMED.
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * DIRECT,
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * (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 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
* *
@ -39,7 +49,8 @@ public class FurnaceRecipes {
private Map<ItemStack, ItemStack> smeltingList = Maps.newHashMap(); private Map<ItemStack, ItemStack> smeltingList = Maps.newHashMap();
private Map<ItemStack, Float> experienceList = Maps.newHashMap(); private Map<ItemStack, Float> experienceList = Maps.newHashMap();
/**+ /**
* +
* Returns an instance of FurnaceRecipes. * Returns an instance of FurnaceRecipes.
*/ */
public static FurnaceRecipes instance() { public static FurnaceRecipes instance() {
@ -72,6 +83,8 @@ public class FurnaceRecipes {
this.addSmelting(Items.potato, new ItemStack(Items.baked_potato), 0.35F); this.addSmelting(Items.potato, new ItemStack(Items.baked_potato), 0.35F);
this.addSmeltingRecipeForBlock(Blocks.netherrack, new ItemStack(Items.netherbrick), 0.1F); 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.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(); ItemFishFood.FishType[] types = ItemFishFood.FishType.values();
for (int i = 0; i < types.length; ++i) { 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); this.addSmeltingRecipeForBlock(Blocks.quartz_ore, new ItemStack(Items.quartz), 0.2F);
} }
/**+ /**
* +
* Adds a smelting recipe, where the input item is an instance * Adds a smelting recipe, where the input item is an instance
* of Block. * of Block.
*/ */
@ -97,14 +111,16 @@ public class FurnaceRecipes {
this.addSmelting(Item.getItemFromBlock(input), stack, experience); this.addSmelting(Item.getItemFromBlock(input), stack, experience);
} }
/**+ /**
* +
* Adds a smelting recipe using an Item as the input item. * Adds a smelting recipe using an Item as the input item.
*/ */
public void addSmelting(Item input, ItemStack stack, float experience) { public void addSmelting(Item input, ItemStack stack, float experience) {
this.addSmeltingRecipe(new ItemStack(input, 1, 32767), stack, experience); this.addSmeltingRecipe(new ItemStack(input, 1, 32767), stack, experience);
} }
/**+ /**
* +
* Adds a smelting recipe using an ItemStack as the input for * Adds a smelting recipe using an ItemStack as the input for
* the recipe. * the recipe.
*/ */
@ -113,7 +129,8 @@ public class FurnaceRecipes {
this.experienceList.put(stack, Float.valueOf(experience)); this.experienceList.put(stack, Float.valueOf(experience));
} }
/**+ /**
* +
* Returns the smelting result of an item. * Returns the smelting result of an item.
*/ */
public ItemStack getSmeltingResult(ItemStack stack) { public ItemStack getSmeltingResult(ItemStack stack) {
@ -126,7 +143,8 @@ public class FurnaceRecipes {
return null; return null;
} }
/**+ /**
* +
* Compares two itemstacks to ensure that they are the same. * Compares two itemstacks to ensure that they are the same.
* This checks both the item and the metadata of the item. * This checks both the item and the metadata of the item.
*/ */

View File

@ -1,5 +1,6 @@
package net.minecraft.item.crafting; package net.minecraft.item.crafting;
import net.hoosiertransfer.EaglerItems;
import net.minecraft.block.BlockDirt; import net.minecraft.block.BlockDirt;
import net.minecraft.block.BlockPrismarine; import net.minecraft.block.BlockPrismarine;
import net.minecraft.block.BlockQuartz; import net.minecraft.block.BlockQuartz;
@ -15,28 +16,38 @@ import net.minecraft.init.Items;
import net.minecraft.item.EnumDyeColor; import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
/**+ /**
* +
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code. * This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
* *
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" * 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 * 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 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * DISCLAIMED.
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * DIRECT,
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * (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 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
* *
*/ */
public class RecipesCrafting { public class RecipesCrafting {
/**+ /**
* +
* Adds the crafting recipes to the CraftingManager. * Adds the crafting recipes to the CraftingManager.
*/ */
public void addRecipes(CraftingManager parCraftingManager) { public void addRecipes(CraftingManager parCraftingManager) {
@ -126,5 +137,24 @@ public class RecipesCrafting {
Character.valueOf('I'), new ItemStack(Items.dye, 1, EnumDyeColor.BLACK.getDyeDamage()) }); 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", 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 }); 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 });
} }
} }

File diff suppressed because it is too large Load Diff