类net.minecraft.world.DifficultyInstance源码实例Demo

下面列出了怎么用net.minecraft.world.DifficultyInstance的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: CommunityMod   文件: EntityDabSquirrel.java
@Override
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
	if (!this.isChild()) {
		int i = this.rand.nextInt(this.getVariantMax()) + 1; // Values 1 to 3
		if (i == 3 && this.rand.nextInt(4) != 0) { // 1/4 chance it remains white (overall 1/12 chance of white)
			i = this.rand.nextInt(2) + 1; // 1 - 2
		}
		if (livingdata instanceof TypeData) {
			i = ((TypeData) livingdata).typeData;
		} else {
			livingdata = new TypeData(i);
		}

		this.setType(i);
	}
	return livingdata;
}
 
源代码2 项目: ToroQuest   文件: EntityGuard.java
/**
 * Called only once on an entity when first time spawned, via egg, mob
 * spawner, natural spawning etc, but not called when entity is reloaded
 * from nbt. Mainly used for initializing attributes and inventory
 */
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
	livingdata = super.onInitialSpawn(difficulty, livingdata);

	setCanPickUpLoot(true);
	setEquipmentBasedOnDifficulty(difficulty);
	setEnchantmentBasedOnDifficulty(difficulty);

	setHeldItem(EnumHand.MAIN_HAND, new ItemStack(Items.DIAMOND_SWORD, 1));
	setHeldItem(EnumHand.OFF_HAND, new ItemStack(Items.SHIELD, 1));

	// addArmor();

	return livingdata;
}
 
源代码3 项目: EnderZoo   文件: EntityFallenKnight.java
private void spawnMount() {
  
  if(isRiding() || !spawned) {
    return;
  }

  EntityFallenMount mount = null;
  if(Config.fallenMountEnabled && rand.nextFloat() <= Config.fallenKnightChanceMounted) {
    mount = new EntityFallenMount(world);
    mount.setLocationAndAngles(posX, posY, posZ, rotationYaw, 0.0F);

    DifficultyInstance di = world.getDifficultyForLocation(new BlockPos(mount));
    mount.onInitialSpawn(di, null);
    //NB: don;t check for entity collisions as we know the knight will collide
    if(!SpawnUtil.isSpaceAvailableForSpawn(world, mount, false)) {
      mount = null;
    }
  }
  if(mount != null) {
    setCanPickUpLoot(false);
    setCanBreakDoors(false);
    world.spawnEntity(mount);      
    startRiding(mount);
    
  }
}
 
源代码4 项目: EnderZoo   文件: EntityFallenKnight.java
@Override
  public IEntityLivingData onInitialSpawn(DifficultyInstance di, IEntityLivingData livingData) {
    spawned = true;

    //From base entity living class
    getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).applyModifier(new AttributeModifier("Random spawn bonus", rand.nextGaussian() * 0.05D, 1));
//    func_189768_a(SkeletonType.NORMAL);//skeleton types do not exist anymore in 1.11.2. so its always normal.
    addRandomArmor();
    setEnchantmentBasedOnDifficulty(di); //enchantEquipment();

    float f = di.getClampedAdditionalDifficulty();
    this.setCanPickUpLoot(this.rand.nextFloat() < 0.55F * f);
    setCanPickUpLoot(rand.nextFloat() < 0.55F * f);
    setCanBreakDoors(rand.nextFloat() < f * 0.1F);

    return livingData;
  }
 
源代码5 项目: TofuCraftReload   文件: EntityTofuMindCore.java
/**
 * Gives armor or weapon for entity based on given DifficultyInstance
 */
protected void setEquipmentBasedOnDifficulty(DifficultyInstance difficulty) {
    if (this.world.rand.nextInt(3) == 0) {
        this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ItemLoader.diamondTofuSword));
    } else {
        this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ItemLoader.metalTofuSword));
    }
}
 
源代码6 项目: TofuCraftReload   文件: EntityTofuMindCore.java
/**
 * Called only once on an entity when first time spawned, via egg, mob spawner, natural spawning etc, but not called
 * when entity is reloaded from nbt. Mainly used for initializing attributes and inventory
 */
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
    livingdata = super.onInitialSpawn(difficulty, livingdata);
    this.setEquipmentBasedOnDifficulty(difficulty);
    this.setEnchantmentBasedOnDifficulty(difficulty);

    return livingdata;
}
 
源代码7 项目: TofuCraftReload   文件: EntityTofuCow.java
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
    Biome biome = this.world.getBiome(new BlockPos(this));

    if (biome instanceof BiomeZundaTofuPlains) {
        this.setVariant(1);
    } else {
        this.setVariant(0);
    }
    return super.onInitialSpawn(difficulty, livingdata);
}
 
源代码8 项目: Sakura_mod   文件: EntitySamuraiIllager.java
/**
 * Called only once on an entity when first time spawned, via egg, mob spawner, natural spawning etc, but not called
 * when entity is reloaded from nbt. Mainly used for initializing attributes and inventory
 */
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
    IEntityLivingData ientitylivingdata = super.onInitialSpawn(difficulty, livingdata);
    this.setEquipmentBasedOnDifficulty(difficulty);
    this.setEnchantmentBasedOnDifficulty(difficulty);
    return ientitylivingdata;
}
 
源代码9 项目: Sakura_mod   文件: EntitySamuraiIllager.java
/**
 * Gives armor or weapon for entity based on given DifficultyInstance
 */
protected void setEquipmentBasedOnDifficulty(DifficultyInstance difficulty) {
    float f = this.world.getDifficultyForLocation(new BlockPos(this)).getAdditionalDifficulty();

    if (this.rand.nextFloat() < f * 0.2F) {
        this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ItemLoader.TACHI));
    } else {
        this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ItemLoader.KATANA));
    }
}
 
源代码10 项目: CommunityMod   文件: EntityGnomeWood.java
@Override
public IEntityLivingData onInitialSpawn(DifficultyInstance diff, IEntityLivingData data)
{
	data = super.onInitialSpawn(diff, data);
	//this.setCarried(Blocks.CHEST);
	//this.assignedGnode = new TileEntityGnomeCache();
	
	return data;
}
 
源代码11 项目: CommunityMod   文件: EntityGnome.java
@Override
public IEntityLivingData onInitialSpawn(DifficultyInstance diff, IEntityLivingData data)
{
	data = super.onInitialSpawn(diff, data);
	
	this.setCarriedToAir();
	
	return data;
}
 
源代码12 项目: ToroQuest   文件: EntityRainbowKing.java
protected void setEquipmentBasedOnDifficulty(DifficultyInstance difficulty) {
	setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(Items.DIAMOND_SWORD));
	setItemStackToSlot(EntityEquipmentSlot.HEAD, colorArmor(new ItemStack(Items.LEATHER_HELMET, 1), 8339378));
	setItemStackToSlot(EntityEquipmentSlot.CHEST, colorArmor(new ItemStack(Items.LEATHER_CHESTPLATE, 1), 3361970));
	setItemStackToSlot(EntityEquipmentSlot.LEGS, colorArmor(new ItemStack(Items.LEATHER_LEGGINGS, 1), 0xffff00));
	setItemStackToSlot(EntityEquipmentSlot.FEET, colorArmor(new ItemStack(Items.LEATHER_BOOTS, 1), 10040115));
}
 
源代码13 项目: ToroQuest   文件: EntityVillageLord.java
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
	livingdata = super.onInitialSpawn(difficulty, livingdata);
	setCanPickUpLoot(false);
	addArmor();
	if (isEntityAlive()) {
		setHasLord(true);
	}
	return livingdata;
}
 
源代码14 项目: ToroQuest   文件: EntitySentry.java
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
	livingdata = super.onInitialSpawn(difficulty, livingdata);

	setCanPickUpLoot(true);
	setEquipmentBasedOnDifficulty(difficulty);
	setEnchantmentBasedOnDifficulty(difficulty);

	setHeldItem(EnumHand.MAIN_HAND, new ItemStack(Items.IRON_SWORD, 1));

	addArmor();

	return livingdata;
}
 
源代码15 项目: ToroQuest   文件: EntityRainbowGuard.java
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
	livingdata = super.onInitialSpawn(difficulty, livingdata);
	setLeftHanded(false);
	setHeldItem(EnumHand.MAIN_HAND, new ItemStack(Items.GOLDEN_SWORD, 1));
	setCanPickUpLoot(false);
	addArmor();
	return livingdata;
}
 
源代码16 项目: Cyberware   文件: EntityCyberZombie.java
@Override
protected void setEquipmentBasedOnDifficulty(DifficultyInstance difficulty)
{
	super.setEquipmentBasedOnDifficulty(difficulty);
	
	if (CyberwareConfig.KATANA && !CyberwareConfig.NO_CLOTHES && this.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND) != null && this.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND).getItem() == Items.IRON_SWORD)
	{
		this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(CyberwareContent.katana));
		this.setDropChance(EntityEquipmentSlot.MAINHAND, 0F);
	}
}
 
源代码17 项目: CommunityMod   文件: EntityAnimalWithTypes.java
@Override
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
    return this.initData(super.onInitialSpawn(difficulty, livingdata));
}
 
源代码18 项目: ToroQuest   文件: EntityRainbowKing.java
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
	livingdata = super.onInitialSpawn(difficulty, livingdata);
	setEquipmentBasedOnDifficulty(difficulty);
	return livingdata;
}
 
源代码19 项目: ToroQuest   文件: EntityShopkeeper.java
@Override
public IEntityLivingData finalizeMobSpawn(DifficultyInstance p_190672_1_, @Nullable IEntityLivingData p_190672_2_, boolean p_190672_3_) {
	return p_190672_2_;
}
 
源代码20 项目: ToroQuest   文件: EntityFugitive.java
@Override
public IEntityLivingData finalizeMobSpawn(DifficultyInstance p_190672_1_, @Nullable IEntityLivingData p_190672_2_, boolean p_190672_3_) {
	return p_190672_2_;
}
 
源代码21 项目: ToroQuest   文件: EntityBas.java
protected void setEquipmentBasedOnDifficulty(DifficultyInstance difficulty) {
	setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(Items.STONE_SWORD));
	setItemStackToSlot(EntityEquipmentSlot.HEAD, colorArmor(new ItemStack(Items.LEATHER_HELMET, 1), 0xb0b0b0));
}
 
源代码22 项目: ToroQuest   文件: EntityBas.java
/**
 * Called only once on an entity when first time spawned, via egg, mob
 * spawner, natural spawning etc, but not called when entity is reloaded
 * from nbt. Mainly used for initializing attributes and inventory
 */
@Nullable
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {
	livingdata = super.onInitialSpawn(difficulty, livingdata);
	return livingdata;
}
 
源代码23 项目: EnderZoo   文件: EntityFallenMount.java
@Override
public IEntityLivingData onInitialSpawn(DifficultyInstance di, IEntityLivingData data) {  

  setHorseArmorStack(ItemStack.EMPTY);        
  setHorseSaddled(true);    
  setGrowingAge(0);
  getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(Config.fallenMountHealth);
  getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.2);
  getAttributeMap().getAttributeInstanceByName("horse.jumpStrength").setBaseValue(0.5);
  setHealth(getMaxHealth());
  
  float chanceOfArmor = world.getDifficulty() == EnumDifficulty.HARD ? Config.fallenMountChanceArmoredHard
      : Config.fallenMountChanceArmored;
  if(rand.nextFloat() <= chanceOfArmor) {

    //Value between 0 and 1 (normal) - 1.5 based on how long a chunk has been occupied and the moon phase
    
    //float occupiedDiffcultyMultiplier = worldObj.func_147462_b(posX, posY, posZ);
    
    float occupiedDiffcultyMultiplier = di.getClampedAdditionalDifficulty();
    //TODO: Do I need this normalised still?
    occupiedDiffcultyMultiplier /= 1.5f; // normalize
    float chanceImprovedArmor = world.getDifficulty() == EnumDifficulty.HARD ? Config.fallenMountChanceArmorUpgradeHard
        : Config.fallenMountChanceArmorUpgrade;
    chanceImprovedArmor *= (1 + occupiedDiffcultyMultiplier); //If we have the max occupied factor, double the chance of improved armor

    int armorLevel = 0;
    for (int i = 0; i < 2; i++) {
      if(rand.nextFloat() <= chanceImprovedArmor) {
        armorLevel++;
      }
    }
    Item armorItem = Items.IRON_HORSE_ARMOR;
    switch (armorLevel) {
    case 1:
      armorItem = Items.GOLDEN_HORSE_ARMOR;
      break;
    case 2:
      armorItem = Items.DIAMOND_HORSE_ARMOR;
      break;
    }
    armor = new ItemStack(armorItem);
    setHorseArmorStack(armor);
  } else {
    armor = ItemStack.EMPTY;
    setHorseArmorStack(armor);
  }
  return data;
}
 
源代码24 项目: EnderZoo   文件: EntityWitherWitch.java
@Override
public IEntityLivingData onInitialSpawn(DifficultyInstance di, IEntityLivingData livingData) {
  spawned = true;
  return super.onInitialSpawn(di, livingData);
}
 
源代码25 项目: TofuCraftReload   文件: EntityTofunian.java
@Nullable
@Override
public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, @Nullable IEntityLivingData livingdata) {

    IEntityLivingData data = super.onInitialSpawn(difficulty, livingdata);

    initTofuProfession();

    updateEntityAI();

    initTrades();

    return data;

}
 
源代码26 项目: ToroQuest   文件: EntityRainbowGuard.java
protected void setEquipmentBasedOnDifficulty(DifficultyInstance difficulty) {

	}
 
 类所在包
 类方法
 同包方法