Silk fiber
This commit is contained in:
parent
ba68f1fe4f
commit
c3277e7a2e
6 changed files with 32 additions and 7 deletions
|
@ -6,8 +6,10 @@ import java.util.Random;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.enchantment.EnchantmentHelper;
|
||||||
import net.minecraft.entity.EntityType;
|
import net.minecraft.entity.EntityType;
|
||||||
import net.minecraft.entity.Flutterer;
|
import net.minecraft.entity.Flutterer;
|
||||||
|
import net.minecraft.entity.ItemEntity;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.entity.SpawnReason;
|
import net.minecraft.entity.SpawnReason;
|
||||||
import net.minecraft.entity.ai.TargetFinder;
|
import net.minecraft.entity.ai.TargetFinder;
|
||||||
|
@ -22,9 +24,11 @@ import net.minecraft.entity.ai.pathing.EntityNavigation;
|
||||||
import net.minecraft.entity.ai.pathing.PathNodeType;
|
import net.minecraft.entity.ai.pathing.PathNodeType;
|
||||||
import net.minecraft.entity.attribute.DefaultAttributeContainer;
|
import net.minecraft.entity.attribute.DefaultAttributeContainer;
|
||||||
import net.minecraft.entity.attribute.EntityAttributes;
|
import net.minecraft.entity.attribute.EntityAttributes;
|
||||||
|
import net.minecraft.entity.damage.DamageSource;
|
||||||
import net.minecraft.entity.mob.MobEntity;
|
import net.minecraft.entity.mob.MobEntity;
|
||||||
import net.minecraft.entity.passive.AnimalEntity;
|
import net.minecraft.entity.passive.AnimalEntity;
|
||||||
import net.minecraft.entity.passive.PassiveEntity;
|
import net.minecraft.entity.passive.PassiveEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtHelper;
|
import net.minecraft.nbt.NbtHelper;
|
||||||
import net.minecraft.server.world.ServerWorld;
|
import net.minecraft.server.world.ServerWorld;
|
||||||
|
@ -43,7 +47,9 @@ import ru.betterend.blocks.BlockProperties;
|
||||||
import ru.betterend.blocks.SilkMothNestBlock;
|
import ru.betterend.blocks.SilkMothNestBlock;
|
||||||
import ru.betterend.registry.EndBlocks;
|
import ru.betterend.registry.EndBlocks;
|
||||||
import ru.betterend.registry.EndEntities;
|
import ru.betterend.registry.EndEntities;
|
||||||
|
import ru.betterend.registry.EndItems;
|
||||||
import ru.betterend.util.BlocksHelper;
|
import ru.betterend.util.BlocksHelper;
|
||||||
|
import ru.betterend.util.MHelper;
|
||||||
|
|
||||||
public class SilkMothEntity extends AnimalEntity implements Flutterer {
|
public class SilkMothEntity extends AnimalEntity implements Flutterer {
|
||||||
private BlockPos hivePos;
|
private BlockPos hivePos;
|
||||||
|
@ -152,6 +158,23 @@ public class SilkMothEntity extends AnimalEntity implements Flutterer {
|
||||||
return EndEntities.SILK_MOTH.create(world);
|
return EndEntities.SILK_MOTH.create(world);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dropLoot(DamageSource source, boolean causedByPlayer) {
|
||||||
|
int minCount = 0;
|
||||||
|
int maxCount = 1;
|
||||||
|
if (causedByPlayer && this.attackingPlayer != null) {
|
||||||
|
int looting = EnchantmentHelper.getLooting(this.attackingPlayer);
|
||||||
|
minCount += looting;
|
||||||
|
maxCount += looting;
|
||||||
|
if (maxCount > 2) {
|
||||||
|
maxCount = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int count = minCount < maxCount ? MHelper.randRange(minCount, maxCount, random) : maxCount;
|
||||||
|
ItemEntity drop = new ItemEntity(world, getX(), getY(), getZ(), new ItemStack(EndItems.SILK_FIBER, count));
|
||||||
|
this.world.spawnEntity(drop);
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean canSpawn(EntityType<SilkMothEntity> type, ServerWorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random) {
|
public static boolean canSpawn(EntityType<SilkMothEntity> type, ServerWorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random) {
|
||||||
int y = world.getChunk(pos).sampleHeightmap(Type.WORLD_SURFACE, pos.getX() & 15, pos.getY() & 15);
|
int y = world.getChunk(pos).sampleHeightmap(Type.WORLD_SURFACE, pos.getX() & 15, pos.getY() & 15);
|
||||||
return y > 0 && pos.getY() >= y;
|
return y > 0 && pos.getY() >= y;
|
||||||
|
|
|
@ -187,6 +187,8 @@ public class CraftingRecipes {
|
||||||
.addMaterial('S', Items.STICK)
|
.addMaterial('S', Items.STICK)
|
||||||
.addMaterial('L', EndItems.LEATHER_STRIPE)
|
.addMaterial('L', EndItems.LEATHER_STRIPE)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
GridRecipe.make("fiber_string", Items.STRING).setOutputCount(6).setShape("#", "#", "#").addMaterial('#', EndItems.SILK_FIBER).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerLantern(String name, Block lantern, Block slab) {
|
private static void registerLantern(String name, Block lantern, Block slab) {
|
||||||
|
|
|
@ -45,7 +45,6 @@ import ru.betterend.world.biome.BiomeSulphurSprings;
|
||||||
import ru.betterend.world.biome.BiomeUmbrellaJungle;
|
import ru.betterend.world.biome.BiomeUmbrellaJungle;
|
||||||
import ru.betterend.world.biome.CapsacisForestBiome;
|
import ru.betterend.world.biome.CapsacisForestBiome;
|
||||||
import ru.betterend.world.biome.EndBiome;
|
import ru.betterend.world.biome.EndBiome;
|
||||||
import ru.betterend.world.biome.HangingGardensBiome;
|
|
||||||
import ru.betterend.world.generator.BELayerRandomSource;
|
import ru.betterend.world.generator.BELayerRandomSource;
|
||||||
import ru.betterend.world.generator.BiomePicker;
|
import ru.betterend.world.generator.BiomePicker;
|
||||||
import ru.betterend.world.generator.BiomeType;
|
import ru.betterend.world.generator.BiomeType;
|
||||||
|
@ -86,7 +85,7 @@ public class EndBiomes {
|
||||||
public static final EndBiome SULPHUR_SPRINGS = registerBiome(new BiomeSulphurSprings(), BiomeType.LAND);
|
public static final EndBiome SULPHUR_SPRINGS = registerBiome(new BiomeSulphurSprings(), BiomeType.LAND);
|
||||||
public static final EndBiome UMBRELLA_JUNGLE = registerBiome(new BiomeUmbrellaJungle(), BiomeType.LAND);
|
public static final EndBiome UMBRELLA_JUNGLE = registerBiome(new BiomeUmbrellaJungle(), BiomeType.LAND);
|
||||||
public static final EndBiome CAPSACIS_FOREST = registerBiome(new CapsacisForestBiome(), BiomeType.LAND);
|
public static final EndBiome CAPSACIS_FOREST = registerBiome(new CapsacisForestBiome(), BiomeType.LAND);
|
||||||
public static final EndBiome HANGING_GARDENS = registerBiome(new HangingGardensBiome(), BiomeType.LAND);
|
//public static final EndBiome HANGING_GARDENS = registerBiome(new HangingGardensBiome(), BiomeType.LAND);
|
||||||
|
|
||||||
// Better End Void
|
// Better End Void
|
||||||
public static final EndBiome ICE_STARFIELD = registerBiome(new BiomeIceStarfield(), BiomeType.VOID);
|
public static final EndBiome ICE_STARFIELD = registerBiome(new BiomeIceStarfield(), BiomeType.VOID);
|
||||||
|
|
|
@ -201,15 +201,15 @@ public class EndBlocks {
|
||||||
public static final WoodenMaterial CAPSACIS = new WoodenMaterial("capsacis", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE);
|
public static final WoodenMaterial CAPSACIS = new WoodenMaterial("capsacis", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE);
|
||||||
|
|
||||||
// Small ecosystem tree
|
// Small ecosystem tree
|
||||||
public static final WoodenMaterial INANIS = new WoodenMaterial("inanis", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE);
|
//public static final WoodenMaterial INANIS = new WoodenMaterial("inanis", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE);
|
||||||
|
|
||||||
// Tree from Yuki's ide
|
// Tree from Yuki's ide
|
||||||
public static final Block CEMINUS_SAPLING = registerBlock("ceminus_sapling", new UmbrellaTreeSaplingBlock());
|
//public static final Block CEMINUS_SAPLING = registerBlock("ceminus_sapling", new UmbrellaTreeSaplingBlock());
|
||||||
public static final Block CEMINUS_GRID = registerBlock("ceminus_grid", new UmbrellaTreeMembraneBlock());
|
//public static final Block CEMINUS_GRID = registerBlock("ceminus_grid", new UmbrellaTreeMembraneBlock());
|
||||||
public static final WoodenMaterial CEMINUS = new WoodenMaterial("ceminus", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE);
|
//public static final WoodenMaterial CEMINUS = new WoodenMaterial("ceminus", MaterialColor.PURPLE, MaterialColor.LIGHT_BLUE);
|
||||||
|
|
||||||
// For megacolonies
|
// For megacolonies
|
||||||
public static final Block VOID_COLONY_MEMBRANE = registerBlock("void_colony_membrane", new UmbrellaTreeMembraneBlock());
|
//public static final Block VOID_COLONY_MEMBRANE = registerBlock("void_colony_membrane", new UmbrellaTreeMembraneBlock());
|
||||||
|
|
||||||
// Small Plants //
|
// Small Plants //
|
||||||
public static final Block UMBRELLA_MOSS = registerBlock("umbrella_moss", new UmbrellaMossBlock());
|
public static final Block UMBRELLA_MOSS = registerBlock("umbrella_moss", new UmbrellaMossBlock());
|
||||||
|
|
|
@ -70,6 +70,7 @@ public class EndItems {
|
||||||
public final static Item ENCHANTED_PETAL = registerItem("enchanted_petal", new EnchantedPetalItem());
|
public final static Item ENCHANTED_PETAL = registerItem("enchanted_petal", new EnchantedPetalItem());
|
||||||
public final static Item LEATHER_STRIPE = registerItem("leather_stripe");
|
public final static Item LEATHER_STRIPE = registerItem("leather_stripe");
|
||||||
public final static Item LEATHER_WRAPPED_STICK = registerItem("leather_wrapped_stick");
|
public final static Item LEATHER_WRAPPED_STICK = registerItem("leather_wrapped_stick");
|
||||||
|
public final static Item SILK_FIBER = registerItem("silk_fiber");
|
||||||
|
|
||||||
// Armor //
|
// Armor //
|
||||||
public static final Item TERMINITE_HELMET = registerItem("terminite_helmet", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.HEAD, makeItemSettings()));
|
public static final Item TERMINITE_HELMET = registerItem("terminite_helmet", new ArmorItem(EndArmorMaterial.TERMINITE, EquipmentSlot.HEAD, makeItemSettings()));
|
||||||
|
|
BIN
src/main/resources/assets/betterend/textures/item/silk_fiber.png
Normal file
BIN
src/main/resources/assets/betterend/textures/item/silk_fiber.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 395 B |
Loading…
Add table
Add a link
Reference in a new issue