Java 类net.minecraft.util.Tuple 实例源码
项目:Bewitchment
文件:BrewUtils.java
public static Tuple<List<BrewEffect>, List<PotionEffect>> deSerialize(NBTTagCompound compound) {
List<PotionEffect> potionEffects = PotionUtils.getEffectsFromTag(compound);
List<BrewEffect> brewEffects = new ArrayList<>();
Tuple<List<BrewEffect>, List<PotionEffect>> tuple = new Tuple<>(brewEffects, potionEffects);
NBTTagList list = (NBTTagList) compound.getTag(BREW_DATA);
for (int i = 0, size = list.tagCount(); i < size; i++) {
NBTTagCompound tag = list.getCompoundTagAt(i);
IBrew brew = BrewRegistry.getRegisteredBrew(tag.getString(BREW_ID));
int duration = tag.getInteger(BREW_DURATION);
int amplifier = tag.getInteger(BREW_AMPLIFIER);
brewEffects.add(new BrewEffect(brew, duration, amplifier));
}
return tuple;
}
项目:Bewitchment
文件:EntityBrew.java
private void doSplash() {
AxisAlignedBB axisalignedbb = this.getEntityBoundingBox().expand(4.0D, 2.0D, 4.0D);
List<EntityLivingBase> list = this.world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
if (!list.isEmpty()) {
Tuple<List<BrewEffect>, List<PotionEffect>> tuple = BrewUtils.deSerialize(NBTHelper.fixNBT(getBrew()));
for (EntityLivingBase entity : list) {
double distance = this.getDistanceSq(entity);
if (distance < 16.0D) {
for (BrewEffect effect : tuple.getFirst()) {
BrewStorageHandler.addEntityBrewEffect(entity, effect.copy());
}
for (PotionEffect potioneffect : tuple.getSecond()) {
entity.addPotionEffect(new PotionEffect(potioneffect));
}
}
}
}
}
项目:Bewitchment
文件:TileEntityGlyph.java
@Override
protected void readDataNBT(NBTTagCompound tag) {
cooldown = tag.getInteger("cooldown");
if (tag.hasKey("ritual"))
ritual = Ritual.REGISTRY.getValue(new ResourceLocation(tag.getString("ritual")));
if (tag.hasKey("player"))
entityPlayer = UUID.fromString(tag.getString("player"));
if (tag.hasKey("data"))
ritualData = tag.getCompoundTag("data");
if (tag.hasKey("entityList")) {
entityList = new ArrayList<Tuple<String, String>>();
tag.getTagList("entityList", NBT.TAG_STRING).forEach(nbts -> {
String[] names = ((NBTTagString) nbts).getString().split("!");
if (names.length == 2)
entityList.add(new Tuple<String, String>(names[0], names[1]));
});
}
}
项目:Bewitchment
文件:TileEntityGlyph.java
@Override
protected void writeDataNBT(NBTTagCompound tag) {
tag.setInteger("cooldown", cooldown);
if (ritual != null)
tag.setString("ritual", ritual.getRegistryName().toString());
if (entityPlayer != null)
tag.setString("player", entityPlayer.toString());
if (ritualData != null)
tag.setTag("data", ritualData);
NBTTagList list = new NBTTagList();
for (int i = 0; i < entityList.size(); i++) {
Tuple<String, String> t = entityList.get(i);
list.appendTag(new NBTTagString(t.getFirst() + "!" + t.getSecond()));
}
tag.setTag("entityList", list);
}
项目:Melodium
文件:ItemCompositionPaper.java
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void handleHearingSounds(PlaySoundEvent event) {
EntityPlayer p = Minecraft.getMinecraft().player;
if (p != null)
{
Tuple<SoundType, Double> result = getTypeFromSound(event.getName(), event.getSound());
if (p.getHeldItemMainhand().getItem() == this)
{
if (addSound(p.getHeldItemMainhand(), result.getFirst(), result.getSecond())){
PacketHandler.INSTANCE.sendToServer(new MessageCompositionUpdate(p.getUniqueID(),p.getHeldItemMainhand().getTagCompound(),true));
}
} else if (p.getHeldItemOffhand().getItem() == this) {
if (addSound(p.getHeldItemOffhand(), result.getFirst(), result.getSecond())){
PacketHandler.INSTANCE.sendToServer(new MessageCompositionUpdate(p.getUniqueID(),p.getHeldItemOffhand().getTagCompound(),false));
}
}
}
}
项目:Solar
文件:ParticleBase.java
@Override
public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ) {
if(sprite != null) {
double uMin = 0F;
double uMax = 1F;
double vMin = 0F;
double vMax = 1F;
if(sprite instanceof FrameSpriteResource) {
FrameSpriteResource framedSprite = ((FrameSpriteResource) sprite);
Tuple<Double, Double> uv = framedSprite.getUVFrame((int) particleAngle);
double uOffset = framedSprite.getU();
double u = uv.getFirst();
double vOffset = framedSprite.getV();
double v = uv.getSecond();
uMin = u;
uMax = u + uOffset;
vMin = v;
vMax = v + vOffset;
}
sprite.bindManager();
renderEasy(buffer, partialTicks, rotationX, rotationZ, rotationYZ, rotationXY, rotationXZ, uMin, uMax, vMin, vMax);
}
}
项目:customstuff4
文件:WrappedBlockStateDeserializer.java
@Override
public WrappedBlockState deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
{
ResourceLocation block;
List<Tuple<String, String>> properties = Lists.newArrayList();
if (json.isJsonObject())
{
JsonObject jsonObject = json.getAsJsonObject();
block = context.deserialize(jsonObject.get("block"), ResourceLocation.class);
if (jsonObject.has("properties"))
{
properties = deserializeProperties(jsonObject.get("properties"));
}
} else
{
block = context.deserialize(json, ResourceLocation.class);
}
return new WrappedBlockStateImpl(block, properties);
}
项目:AuthlibLoginHelper
文件:AuthlibLoginHelperGui.java
@Override
protected void actionPerformed(GuiButton button) throws IOException
{
if (button.id == this.okButton.id)
{
this.mc.displayGuiScreen(this.parent);
String username = this.usernameField.getText();
String password = this.passwordField.getText();
this.futureUsernamePassword.set(new Tuple<>(username, password));
}
else if (button.id == this.skipButton.id)
{
this.mc.displayGuiScreen(this.parent);
this.futureUsernamePassword.set(new Tuple<>("", ""));
}
else if (button.id == this.noButton.id)
{
this.futureUsernamePassword.set(null);
this.parent.actionPerformed(this.skipButton); // button.id == 0
}
}
项目:Backmemed
文件:StructureEndCityPieces.java
public boolean func_191086_a(TemplateManager p_191086_1_, int p_191086_2_, StructureEndCityPieces.CityTemplate p_191086_3_, BlockPos p_191086_4_, List<StructureComponent> p_191086_5_, Random p_191086_6_)
{
Rotation rotation = p_191086_3_.placeSettings.getRotation();
StructureEndCityPieces.CityTemplate structureendcitypieces$citytemplate = StructureEndCityPieces.func_189935_b(p_191086_5_, StructureEndCityPieces.func_191090_b(p_191086_1_, p_191086_3_, new BlockPos(-3, 4, -3), "fat_tower_base", rotation, true));
structureendcitypieces$citytemplate = StructureEndCityPieces.func_189935_b(p_191086_5_, StructureEndCityPieces.func_191090_b(p_191086_1_, structureendcitypieces$citytemplate, new BlockPos(0, 4, 0), "fat_tower_middle", rotation, true));
for (int i = 0; i < 2 && p_191086_6_.nextInt(3) != 0; ++i)
{
structureendcitypieces$citytemplate = StructureEndCityPieces.func_189935_b(p_191086_5_, StructureEndCityPieces.func_191090_b(p_191086_1_, structureendcitypieces$citytemplate, new BlockPos(0, 8, 0), "fat_tower_middle", rotation, true));
for (Tuple<Rotation, BlockPos> tuple : StructureEndCityPieces.FAT_TOWER_BRIDGES)
{
if (p_191086_6_.nextBoolean())
{
StructureEndCityPieces.CityTemplate structureendcitypieces$citytemplate1 = StructureEndCityPieces.func_189935_b(p_191086_5_, StructureEndCityPieces.func_191090_b(p_191086_1_, structureendcitypieces$citytemplate, (BlockPos)tuple.getSecond(), "bridge_end", rotation.add((Rotation)tuple.getFirst()), true));
StructureEndCityPieces.func_191088_b(p_191086_1_, StructureEndCityPieces.TOWER_BRIDGE_GENERATOR, p_191086_2_ + 1, structureendcitypieces$citytemplate1, (BlockPos)null, p_191086_5_, p_191086_6_);
}
}
}
StructureEndCityPieces.func_189935_b(p_191086_5_, StructureEndCityPieces.func_191090_b(p_191086_1_, structureendcitypieces$citytemplate, new BlockPos(-2, 8, -2), "fat_tower_top", rotation, true));
return true;
}
项目:Mods
文件:ItemCloak.java
public static Tuple<Integer, ItemStack> searchForWatches(EntityLivingBase living) {
if (living instanceof EntitySpy)
return new Tuple<>(3, ((EntitySpy)living).loadout.getStackInSlot(3));
if (living instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) living;
if (!player.getHeldItemOffhand().isEmpty() && player.getHeldItemOffhand().getItem() instanceof ItemCloak
&& player.getHeldItemOffhand().getTagCompound().getBoolean("Active"))
// System.out.println("Found offhand");
return new Tuple<>(40,player.getHeldItemOffhand());
for (int i=0;i<player.inventory.mainInventory.size();i++) {
ItemStack stack=player.inventory.mainInventory.get(i);
if (!stack.isEmpty() && stack.getItem() instanceof ItemCloak
&& stack.getTagCompound().getBoolean("Active"))
// System.out.println("Found hand");
return new Tuple<>(i,stack);
}
}
return new Tuple<>(-1, ItemStack.EMPTY);
}
项目:CustomWorldGen
文件:StructureEndCityPieces.java
public boolean generate(int p_186185_1_, StructureEndCityPieces.CityTemplate p_186185_2_, BlockPos p_186185_3_, List<StructureComponent> p_186185_4_, Random rand)
{
Rotation rotation = p_186185_2_.placeSettings.getRotation();
StructureEndCityPieces.CityTemplate structureendcitypieces$citytemplate = StructureEndCityPieces.func_189935_b(p_186185_4_, StructureEndCityPieces.addPiece(p_186185_2_, new BlockPos(-3, 4, -3), "fat_tower_base", rotation, true));
structureendcitypieces$citytemplate = StructureEndCityPieces.func_189935_b(p_186185_4_, StructureEndCityPieces.addPiece(structureendcitypieces$citytemplate, new BlockPos(0, 4, 0), "fat_tower_middle", rotation, true));
for (int i = 0; i < 2 && rand.nextInt(3) != 0; ++i)
{
structureendcitypieces$citytemplate = StructureEndCityPieces.func_189935_b(p_186185_4_, StructureEndCityPieces.addPiece(structureendcitypieces$citytemplate, new BlockPos(0, 8, 0), "fat_tower_middle", rotation, true));
for (Tuple<Rotation, BlockPos> tuple : StructureEndCityPieces.FAT_TOWER_BRIDGES)
{
if (rand.nextBoolean())
{
StructureEndCityPieces.CityTemplate structureendcitypieces$citytemplate1 = StructureEndCityPieces.func_189935_b(p_186185_4_, StructureEndCityPieces.addPiece(structureendcitypieces$citytemplate, (BlockPos)tuple.getSecond(), "bridge_end", rotation.add((Rotation)tuple.getFirst()), true));
StructureEndCityPieces.recursiveChildren(StructureEndCityPieces.TOWER_BRIDGE_GENERATOR, p_186185_1_ + 1, structureendcitypieces$citytemplate1, (BlockPos)null, p_186185_4_, rand);
}
}
}
StructureEndCityPieces.func_189935_b(p_186185_4_, StructureEndCityPieces.addPiece(structureendcitypieces$citytemplate, new BlockPos(-2, 8, -2), "fat_tower_top", rotation, true));
return true;
}
项目:InfinityLib
文件:RayTraceHelper.java
private static Tuple<Double, Boolean> step(int v1, int v2) {
boolean flag = true;
double d = 999.0;
if (v2 > v1) {
d = (double)v1 + 1.0D;
}
else if (v2 < v1) {
d = (double)v1 + 0.0D;
}
else {
flag = false;
}
return new Tuple<>(d, flag);
}
项目:InfinityLib
文件:ModelTechne.java
private static List<Tuple<ModelRenderer, List<TexturedQuad>>> compileTexturedQuadList(List<ModelRenderer> modelRenderers) {
List<Tuple<ModelRenderer, List<TexturedQuad>>> list = new ArrayList<>();
for (ModelRenderer model : modelRenderers) {
List<TexturedQuad> quadList = new ArrayList<>();
for (ModelBox box : model.cubeList) {
Field fieldQuads = null;
for (Field field : box.getClass().getDeclaredFields()) {
if (field.getType().isAssignableFrom(TexturedQuad[].class)) {
fieldQuads = field;
break;
}
}
if (fieldQuads != null) {
fieldQuads.setAccessible(true);
try {
Collections.addAll(quadList, (TexturedQuad[]) fieldQuads.get(box));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
list.add(new Tuple<>(model, ImmutableList.copyOf(quadList)));
}
return ImmutableList.copyOf(list);
}
项目:InfinityLib
文件:ClientProxy.java
@Override
public void registerItems(InfinityMod mod, IForgeRegistry<Item> registry) {
//items
IProxy.super.registerItems(mod, registry);
//renderers
ReflectionHelper.forEachIn(mod.getModItemRegistry(), IInfinityItem.class, (IInfinityItem item) -> {
if ((item instanceof Item) && item.isEnabled()) {
if (item instanceof IItemWithModel) {
for (Tuple<Integer, ModelResourceLocation> entry : ((IItemWithModel) item).getModelDefinitions()) {
ModelLoader.setCustomModelResourceLocation((Item) item, entry.getFirst(), entry.getSecond());
}
}
if (item instanceof IAutoRenderedItem) {
ItemRendererRegistry.getInstance().registerCustomItemRendererAuto((Item & IAutoRenderedItem) item);
} else if (item instanceof ICustomRenderedItem) {
ItemRendererRegistry.getInstance().registerCustomItemRenderer((Item) item, ((ICustomRenderedItem) item).getRenderer());
}
}
});
}
项目:AgriCraft
文件:AgriMutationEngine.java
@Override
public boolean registerStrategy(IAgriCrossStrategy strategy) {
if (strategy.getRollChance() > 1f || strategy.getRollChance() < 0f) {
throw new IndexOutOfBoundsException(
"Invalid roll chance of " + strategy.getRollChance() + "!\n"
+ "The roll chance must be in the range 0.0 (inclusive) to 1.0 (exclusive)!"
);
} else if (strategy.getRollChance() == 0) {
AgriCore.getLogger("agricraft").debug("Skipping mutation strategy with zero chance!");
return false;
} else if (hasStrategy(strategy)) {
AgriCore.getLogger("agricraft").debug("Skipping duplicate mutation strategy!");
return false;
} else {
this.sigma += strategy.getRollChance();
this.strategies.add(new Tuple<>(sigma, strategy));
return true;
}
}
项目:AbyssalCraft
文件:NecromancyCapabilityStorage.java
@Override
public NBTBase writeNBT(Capability<INecromancyCapability> capability, INecromancyCapability instance, EnumFacing side) {
//serialize stuff
NBTTagCompound properties = new NBTTagCompound();
NBTTagCompound sizes = new NBTTagCompound();
for(Entry<String, Integer> e : instance.getSizeData().entrySet())
sizes.setInteger(e.getKey(), e.getValue());
properties.setTag("Sizes", sizes);
NBTTagCompound data = new NBTTagCompound();
for(Tuple<String, NBTTagCompound> t : instance.getData())
data.setTag(t.getFirst(), t.getSecond());
properties.setTag("Data", data);
return properties;
}
项目:Bewitchment
文件:TileEntityWitchAltar.java
@Nullable
public static TileEntityWitchAltar getClosest(BlockPos pos, World world) { //Cache the returned value!
Optional<Tuple<TileEntityWitchAltar, Double>> res = world.loadedTileEntityList.parallelStream()
.filter(te -> te instanceof TileEntityWitchAltar)
.map(te -> new Tuple<TileEntityWitchAltar, Double>((TileEntityWitchAltar) te, te.getDistanceSq(pos.getX(), pos.getY(), pos.getZ())))
.filter(tup -> tup.getSecond() <= 256)
.min((t1, t2) -> t1.getSecond().compareTo(t2.getSecond()));
if (res.isPresent()) return res.get().getFirst();
return null;
}
项目:Melodium
文件:ItemCompositionPaper.java
public static Tuple<SoundType, Double> getTypeFromSound(String name, ISound sound) {
SoundCategory c = sound.getCategory();
if (c != null){
SoundType t = SoundType.getSoundTypeByName(c.getName());
if (t != null){
return new Tuple<>(t, t.weight);
}
}
return new Tuple<>(SoundType.AMBIENT, 0.0);
}
项目:Solar
文件:QuantumMirrorRenderer.java
private void renderMirror(float age, float offset, float scale) {
GlStateManager.pushMatrix();
Tuple<Double, Double> uv = SpriteLibrary.QUANTUM_MIRROR.getUVFrame((int) (age * 0.25F));
double vOffset = SpriteLibrary.QUANTUM_MIRROR.getV();
double v = uv.getSecond();
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder buff = tessellator.getBuffer();
GlStateManager.translate(0.5F, 0.5F, 0F);
GlStateManager.scale(scale, scale, scale);
GlStateManager.rotate(offset - age, 0F, 1F, 0F);
GlStateManager.rotate(offset - age, 1F, 0F, 0F);
GlStateManager.rotate(offset - age, 0F, 0F, 1F);
GlStateManager.translate(-0.5F, -0.5F, 0F);
buff.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
buff.pos(0, 0, 0).tex(0, v).endVertex();
buff.pos(1, 0, 0).tex(1, v).endVertex();
buff.pos(1, 1, 0).tex(1, v + vOffset).endVertex();
buff.pos(0, 1, 0).tex(0, v + vOffset).endVertex();
tessellator.draw();
GlStateManager.popMatrix();
}
项目:connor41-etfuturum2
文件:Sponge.java
private boolean absorb(World world, int x, int y, int z) {
LinkedList<Tuple> linkedlist = Lists.newLinkedList();
ArrayList<WorldCoord> arraylist = Lists.newArrayList();
linkedlist.add(new Tuple(new WorldCoord(x, y, z), 0));
int i = 0;
WorldCoord blockpos1;
while (!linkedlist.isEmpty()) {
Tuple tuple = linkedlist.poll();
blockpos1 = (WorldCoord) tuple.getFirst();
int j = (Integer) tuple.getSecond();
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
WorldCoord blockpos2 = blockpos1.add(dir);
if (world.getBlock(blockpos2.x, blockpos2.y, blockpos2.z).getMaterial() == Material.water) {
world.setBlockToAir(blockpos2.x, blockpos2.y, blockpos2.z);
arraylist.add(blockpos2);
i++;
if (j < 6)
linkedlist.add(new Tuple(blockpos2, j + 1));
}
}
if (i > 64)
break;
}
Iterator<WorldCoord> iterator = arraylist.iterator();
while (iterator.hasNext()) {
blockpos1 = iterator.next();
world.notifyBlockOfNeighborChange(blockpos1.x, blockpos1.y, blockpos1.z, Blocks.air);
}
return i > 0;
}
项目:customstuff4
文件:WrappedBlockStateDeserializer.java
private List<Tuple<String, String>> deserializeProperties(JsonElement element)
{
if (element.isJsonObject())
{
return element.getAsJsonObject().entrySet().stream()
.map(e -> new Tuple<>(e.getKey(), e.getValue().getAsString()))
.collect(Collectors.toList());
} else
{
return Arrays.stream(element.getAsString().split(","))
.map(s -> s.split("="))
.map(a -> new Tuple<>(a[0], a[1]))
.collect(Collectors.toList());
}
}
项目:ModularMachinery
文件:BlockArrayRenderHelper.java
private SampleRenderState(IBlockState state, @Nullable NBTTagCompound matchTag, BlockArray.TileInstantiateContext context) {
Tuple<IBlockState, TileEntity> tt = BlockCompatHelper.transformState(state, matchTag, context);
this.state = tt.getFirst();
TileEntity te = tt.getSecond();
if(te != null) {
renderData = new TileEntityRenderData(te);
} else {
renderData = null;
}
}
项目:ModularMachinery
文件:BlockCompatHelper.java
@Nonnull
public static Tuple<IBlockState, TileEntity> transformState(IBlockState state, @Nullable NBTTagCompound matchTag, BlockArray.TileInstantiateContext context) {
ResourceLocation blockRes = state.getBlock().getRegistryName();
if(ic2TileBlock.equals(blockRes) && matchTag != null) {
Tuple<IBlockState, TileEntity> ret = tryRecoverTileState(state, matchTag, context);
if(ret != null) {
return ret;
}
}
TileEntity te = state.getBlock().hasTileEntity(state) ? state.getBlock().createTileEntity(context.getWorld(), state) : null;
if(te != null) {
context.apply(te);
}
return new Tuple<>(state, te);
}
项目:ModularMachinery
文件:BlockCompatHelper.java
@net.minecraftforge.fml.common.Optional.Method(modid = "ic2")
private static Tuple<IBlockState, TileEntity> tryRecoverTileState(IBlockState state, @Nonnull NBTTagCompound matchTag, BlockArray.TileInstantiateContext context) {
if(getTeClassIc2 == null || getITeBlockIc2 == null || getTeBlockState == null
|| getITEgetSupportedFacings == null || facingPropertyField == null) {
return null;
}
ResourceLocation ic2TileBlock = new ResourceLocation("ic2", "te");
if(ic2TileBlock.equals(state.getBlock().getRegistryName())) {
if(matchTag.hasKey("id")) {
ResourceLocation key = new ResourceLocation(matchTag.getString("id"));
if(key.getResourceDomain().equalsIgnoreCase("ic2")) {
String name = key.getResourcePath();
try {
Object o = getITeBlockIc2.invoke(null, name);
Object oClazz = getTeClassIc2.invoke(o);
if(oClazz instanceof Class) {
TileEntity te = (TileEntity) ((Class) oClazz).newInstance();
if(te != null) {
context.apply(te);
te.readFromNBT(matchTag);
IBlockState st = (IBlockState) getTeBlockState.invoke(te);
EnumFacing applicable = Iterables.getFirst((Collection<EnumFacing>) getITEgetSupportedFacings.invoke(o), EnumFacing.NORTH);
st = st.withProperty(facingPropertyField, applicable);
return new Tuple<>(st, te);
}
}
} catch (Throwable tr) {
tr.printStackTrace();
}
}
}
}
return null;
}
项目:ModularMachinery
文件:TileMachineController.java
@Nullable
public Tuple<EnumFacing, BlockArray> matchesRotation(BlockArray pattern) {
EnumFacing face = EnumFacing.NORTH;
do {
if(pattern.matches(getWorld(), getPos(), false)) {
return new Tuple<>(face, pattern);
}
face = face.rotateYCCW();
pattern = pattern.rotateYCCW();
} while (face != EnumFacing.NORTH);
return null;
}
项目:TRHS_Club_Mod_2016
文件:VillagerRegistry.java
@SuppressWarnings("unchecked")
public static void addEmeraldBuyRecipe(EntityVillager villager, MerchantRecipeList list, Random random, Item item, float chance, int min, int max)
{
if (min > 0 && max > 0)
{
EntityVillager.field_70958_bB.put(item, new Tuple(min, max));
}
EntityVillager.func_146091_a(list, item, random, chance);
}
项目:TRHS_Club_Mod_2016
文件:VillagerRegistry.java
@SuppressWarnings("unchecked")
public static void addEmeraldSellRecipe(EntityVillager villager, MerchantRecipeList list, Random random, Item item, float chance, int min, int max)
{
if (min > 0 && max > 0)
{
EntityVillager.field_70960_bC.put(item, new Tuple(min, max));
}
EntityVillager.func_146089_b(list, item, random, chance);
}
项目:MineLittlePony
文件:LayerPonyArmor.java
private void renderArmor(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale, EntityEquipmentSlot armorSlot) {
ItemStack itemstack = entity.getItemStackFromSlot(armorSlot);
if (!itemstack.isEmpty() && itemstack.getItem() instanceof ItemArmor) {
ItemArmor itemarmor = (ItemArmor) itemstack.getItem();
AbstractPonyModel modelbase;
if (armorSlot == EntityEquipmentSlot.LEGS) {
modelbase = pony.getArmor().modelArmor;
} else {
modelbase = pony.getArmor().modelArmorChestplate;
}
modelbase = getArmorModel(entity, itemstack, armorSlot, modelbase);
modelbase.setModelAttributes(this.pony.getModel());
modelbase.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale, entity);
Tuple<ResourceLocation, Boolean> armors = getArmorTexture(entity, itemstack, armorSlot, null);
prepareToRender((ModelPonyArmor) modelbase, armorSlot, armors.getSecond());
this.getRenderer().bindTexture(armors.getFirst());
if (itemarmor.getArmorMaterial() == ArmorMaterial.LEATHER) {
int color = itemarmor.getColor(itemstack);
float r = (color >> 16 & 255) / 255.0F;
float g = (color >> 8 & 255) / 255.0F;
float b = (color & 255) / 255.0F;
GlStateManager.color(r, g, b, 1);
modelbase.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
armors = getArmorTexture(entity, itemstack, armorSlot, "overlay");
this.getRenderer().bindTexture(armors.getFirst());
}
GlStateManager.color(1, 1, 1, 1);
modelbase.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
if (itemstack.isItemEnchanted()) {
this.renderEnchantment(entity, modelbase, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, scale);
}
}
}
项目:MineLittlePony
文件:LayerPonyArmor.java
private Tuple<ResourceLocation, Boolean> getArmorTexture(EntityLivingBase entity, ItemStack itemstack, EntityEquipmentSlot slot, @Nullable String type) {
ItemArmor item = (ItemArmor) itemstack.getItem();
String texture = item.getArmorMaterial().getName();
String domain = "minecraft";
int idx = texture.indexOf(':');
if (idx != -1) {
domain = texture.substring(0, idx);
texture = texture.substring(idx + 1);
}
String s1 = String.format("%s:textures/models/armor/%s_layer_%d%s.png", domain, texture, slot == EntityEquipmentSlot.LEGS ? 2 : 1,
type == null ? "" : String.format("_%s", type));
s1 = getArmorTexture(entity, itemstack, s1, slot, type);
ResourceLocation human = getHumanResource(s1);
ResourceLocation pony = getPonyResource(human);
// check resource packs for either texture.
for (ResourcePackRepository.Entry entry : Minecraft.getMinecraft().getResourcePackRepository().getRepositoryEntries()) {
if (entry.getResourcePack().resourceExists(pony)) {
// ponies are more important
return new Tuple<>(pony, true);
} else if (entry.getResourcePack().resourceExists(human)) {
// but I guess I'll take a human
return new Tuple<>(human, false);
}
}
// the default pack
try {
Minecraft.getMinecraft().getResourceManager().getResource(pony);
return new Tuple<>(pony, true);
} catch (IOException e) {
return new Tuple<>(human, false);
}
}
项目:NinjaGear
文件:ItemNinjaArmor.java
@Override
@SideOnly(Side.CLIENT)
public List<Tuple<Integer, ModelResourceLocation>> getModelDefinitions() {
List<Tuple<Integer, ModelResourceLocation>> list = new ArrayList<>();
list.add(new Tuple<>(0, new ModelResourceLocation(Reference.MOD_ID.toLowerCase() + ":" + internalName, "inventory")));
return list;
}
项目:3DManeuverGear
文件:ItemManeuverGear.java
@Override
@SideOnly(Side.CLIENT)
public List<Tuple<Integer, ModelResourceLocation>> getModelDefinitions() {
List<Tuple<Integer, ModelResourceLocation>> list = new ArrayList<>();
list.add(new Tuple<>(0, new ModelResourceLocation(Reference.MOD_ID.toLowerCase() + ":maneuver_gear", "inventory")));
return list;
}
项目:BlockSystems
文件:BlockSystemSavedData.java
@Override
public void readFromNBT(NBTTagCompound compound) {
this.world = READING_WORLD.get();
if (LOAD.get()) {
this.partitions.clear();
this.blockSystems.clear();
BlockSystem.nextID = compound.getInteger("NextID");
try {
NBTTagList blockSystemsList = compound.getTagList("BlockSystems", Constants.NBT.TAG_COMPOUND);
for (int i = 0; i < blockSystemsList.tagCount(); i++) {
NBTTagCompound tag = blockSystemsList.getCompoundTagAt(i);
BlockSystem system = BlockSystems.PROXY.createBlockSystem(this.world, BlockSystem.nextID++);
CURRENTLY_LOADING.set(system);
system.deserialize(tag);
BlockSystems.PROXY.getBlockSystemHandler(this.world).loadBlockSystem(system);
this.addBlockSystem(system);
CURRENTLY_LOADING.set(null);
}
} finally {
List<Tuple<BlockPos, BlockSystem>> queuedPartitions = QUEUED_PARTITIONS.remove(this.world);
if (queuedPartitions != null) {
for (Tuple<BlockPos, BlockSystem> partition : queuedPartitions) {
this.addPartition(partition.getFirst(), partition.getSecond());
}
}
}
}
}
项目:InfinityLib
文件:IItemWithModel.java
/**
* @return a list with metadata values and ModelResourceLocations corresponding with it.
*/
@SideOnly(Side.CLIENT)
default List<Tuple<Integer, ModelResourceLocation>> getModelDefinitions() {
return ImmutableList.of(
new Tuple<>(0, new ModelResourceLocation(this.getRegistryName() + ""))
);
}
项目:InfinityLib
文件:RayTraceHelper.java
@Nullable
public static RayTraceResult getTargetBlock(Entity entity, double distance) {
Optional<Tuple<Vec3d, Vec3d>> eyesAndTrace = getEyesAndTraceVectors(entity, distance);
if(!eyesAndTrace.isPresent()) {
return null;
}
return entity.getEntityWorld().rayTraceBlocks(eyesAndTrace.get().getFirst(), eyesAndTrace.get().getSecond(), false, false, true);
}
项目:InfinityLib
文件:RayTraceHelper.java
@Nullable
public static RayTraceResult getTargetEntityOrBlock(Entity entity, double distance) {
Optional<Tuple<Vec3d, Vec3d>> eyesAndTrace = getEyesAndTraceVectors(entity, distance);
if(!eyesAndTrace.isPresent()) {
return null;
}
return rayTraceBlocksForEntity(entity, entity.getEntityWorld(), eyesAndTrace.get().getFirst(), eyesAndTrace.get().getSecond(), false, false, true);
}
项目:InfinityLib
文件:RayTraceHelper.java
@Nullable
public static RayTraceResult getTargetEntityOrBlock(Entity entity, double distance, Class<? extends Entity> entityClass) {
Optional<Tuple<Vec3d, Vec3d>> eyesAndTrace = getEyesAndTraceVectors(entity, distance);
if(!eyesAndTrace.isPresent()) {
return null;
}
return rayTraceBlocksForEntity(entity, entity.getEntityWorld(), eyesAndTrace.get().getFirst(), eyesAndTrace.get().getSecond(), false, false, true, entityClass);
}
项目:InfinityLib
文件:RayTraceHelper.java
@Nullable
public static RayTraceResult getTargetEntityOrBlock(Entity entity, double distance, Predicate<? super Entity> filter) {
Optional<Tuple<Vec3d, Vec3d>> eyesAndTrace = getEyesAndTraceVectors(entity, distance);
if(!eyesAndTrace.isPresent()) {
return null;
}
return rayTraceBlocksForEntity(entity, entity.getEntityWorld(), eyesAndTrace.get().getFirst(), eyesAndTrace.get().getSecond(), false, false, true, filter);
}
项目:InfinityLib
文件:RayTraceHelper.java
private static Optional<Tuple<Vec3d, Vec3d>> getEyesAndTraceVectors(Entity entity, double distance) {
Vec3d eyes = new Vec3d(entity.posX, entity.posY + (double)entity.getEyeHeight(), entity.posZ);
Vec3d look = entity.getLookVec();
if(look == null) {
return Optional.empty();
}
Vec3d trace = eyes.addVector(look.x * distance, look.y * distance, look.z * distance);
return Optional.of(new Tuple<>(eyes, trace));
}
项目:SettlerCraft
文件:ItemSchematicCreator.java
@Override
@SideOnly(Side.CLIENT)
public List<Tuple<Integer, ModelResourceLocation>> getModelDefinitions() {
List<Tuple<Integer, ModelResourceLocation>> list = new ArrayList<>();
list.add(new Tuple<>(0, new ModelResourceLocation(Reference.MOD_ID.toLowerCase()+ ":" + getInternalName(), "inventory")));
return list;
}
项目:SettlerCraft
文件:BuildingInventory.java
@Override
public Tuple<IInventory, Integer> getInventoryAndSlotForGlobalSlot(int slot) {
if(slot >= this.getSizeInventory()) {
return null;
}
for (IInventory inventory : this.inventories) {
int size = inventory.getSizeInventory();
if (slot >= size) {
slot = slot - size;
} else {
return new Tuple<>(inventory, slot);
}
}
return null;
}