Fixed seeds, materials and other things

This commit is contained in:
Sebastian Hartte
2020-06-07 17:30:43 +02:00
parent 7693be3ec5
commit e2c62f0e27
31 changed files with 194 additions and 218 deletions
@@ -114,7 +114,7 @@ public class FeatureFactory
return new TileEntityBuilder<>( this, id, teClass, factory ).features( this.defaultFeatures );
}
public AEColoredItemDefinition colored( IItemDefinition target, int offset )
public AEColoredItemDefinition colored( IItemDefinition target )
{
ColoredItemDefinition definition = new ColoredItemDefinition();
@@ -32,6 +32,4 @@ public interface IModelRegistry
void setCustomModelResourceLocation( Item item, int metadata, ModelResourceLocation model );
// FIXME void setCustomMeshDefinition( Item item, ItemMeshDefinition meshDefinition );
// FIXME void setCustomStateMapper( Block block, IStateMapper mapper );
}
@@ -26,8 +26,8 @@ import net.minecraftforge.client.model.geometry.IModelGeometry;
public class BiometricCardModel implements IModelGeometry<BiometricCardModel>
{
private static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "item/biometric_card" );
private static final Material TEXTURE = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "items/biometric_card_hash" ) );
public static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "item/biometric_card_base" );
private static final Material TEXTURE = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "item/biometric_card_hash" ) );
@Override
public Collection<Material> getTextures( IModelConfiguration owner, Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors )
@@ -30,9 +30,9 @@ public class ColorApplicatorModel implements IModelGeometry<ColorApplicatorModel
private static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "item/color_applicator_colored" );
private static final Material TEXTURE_DARK = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "items/color_applicator_tip_dark" ) );
private static final Material TEXTURE_MEDIUM = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "items/color_applicator_tip_medium" ) );
private static final Material TEXTURE_BRIGHT = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "items/color_applicator_tip_bright" ) );
private static final Material TEXTURE_DARK = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "item/color_applicator_tip_dark" ) );
private static final Material TEXTURE_MEDIUM = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "item/color_applicator_tip_medium" ) );
private static final Material TEXTURE_BRIGHT = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "item/color_applicator_tip_bright" ) );
@Override
public Collection<Material> getTextures(IModelConfiguration owner, Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
@@ -25,8 +25,8 @@ import net.minecraftforge.client.model.geometry.IModelGeometry;
public class MemoryCardModel implements IModelGeometry<MemoryCardModel>
{
private static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "item/memory_card" );
private static final Material TEXTURE = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "items/memory_card_hash" ) );
public static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "item/memory_card_base" );
private static final Material TEXTURE = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "item/memory_card_hash" ) );
@Override
public Collection<Material> getTextures( IModelConfiguration owner, Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors )
+15 -4
View File
@@ -72,6 +72,8 @@ import appeng.client.gui.implementations.GuiVibrationChamber;
import appeng.client.gui.implementations.GuiWireless;
import appeng.client.gui.implementations.GuiWirelessTerm;
import appeng.client.render.effects.*;
import appeng.client.render.model.BiometricCardModel;
import appeng.client.render.model.MemoryCardModel;
import appeng.client.render.model.SkyCompassModel;
import appeng.client.render.tesr.SkyChestTESR;
import appeng.container.AEBaseContainer;
@@ -246,10 +248,7 @@ final class Registration
@OnlyIn( Dist.CLIENT )
public void modelRegistryEvent( ModelRegistryEvent event )
{
// Sky compass parts
for (ResourceLocation dependency : SkyCompassModel.DEPENDENCIES) {
ModelLoader.addSpecialModel(dependency);
}
registerSpecialModels();
// TODO: Do not use the internal API
final ApiDefinitions definitions = Api.INSTANCE.definitions();
@@ -270,6 +269,18 @@ final class Registration
definitions.getRegistry().getBootstrapComponents( IModelRegistrationComponent.class ).forEachRemaining(b -> b.modelRegistration( dist, registry ) );
}
/**
* Registers any JSON model files with Minecraft that are not referenced via blockstates or item IDs
*/
@OnlyIn(Dist.CLIENT)
private void registerSpecialModels() {
for (ResourceLocation dependency : SkyCompassModel.DEPENDENCIES) {
ModelLoader.addSpecialModel(dependency);
}
ModelLoader.addSpecialModel(BiometricCardModel.MODEL_BASE);
ModelLoader.addSpecialModel(MemoryCardModel.MODEL_BASE);
}
public void registerBlocks( RegistryEvent.Register<Block> event )
{
final IForgeRegistry<Block> registry = event.getRegistry();
@@ -227,12 +227,10 @@ public final class ApiItems implements IItems
this.biometricCard = registry.item( "biometric_card", ToolBiometricCard::new )
.props(props -> props.maxStackSize( 1 ))
.rendering( new ToolBiometricCardRendering() )
.features( AEFeature.SECURITY )
.build();
this.memoryCard = registry.item( "memory_card", ToolMemoryCard::new )
.props(props -> props.maxStackSize( 1 ))
.rendering( new ToolMemoryCardRendering() )
.features( AEFeature.MEMORY_CARD )
.build();
this.networkTool = registry.item( "network_tool", ToolNetworkTool::new )
@@ -295,13 +293,17 @@ public final class ApiItems implements IItems
.rendering( new ItemEncodedPatternRendering() )
.build();
IItemDefinition paintBall = registry.item( "paint_ball", ItemPaintBall::new )
IItemDefinition paintBall = registry.item( "paint_ball", props -> new ItemPaintBall(props, false) )
.features( AEFeature.PAINT_BALLS )
.rendering( new ItemPaintBallRendering() )
.build();
// FIXME these are both wrong
this.coloredPaintBall = registry.colored( paintBall, 0 );
this.coloredLumenPaintBall = registry.colored( paintBall, 20 );
this.coloredPaintBall = registry.colored( paintBall );
IItemDefinition lumenPaintBall = registry.item( "lumen_paint_ball", props -> new ItemPaintBall(props, true) )
.features( AEFeature.PAINT_BALLS )
.rendering( new ItemPaintBallRendering() )
.build();
this.coloredLumenPaintBall = registry.colored( lumenPaintBall );
FeatureFactory debugTools = registry.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE );
this.toolEraser = debugTools.item( "debug_eraser", ToolEraser::new ).build();
@@ -128,70 +128,70 @@ public final class ApiMaterials implements IMaterials
.customize(builder -> builder.setTrackingRange(16).setUpdateInterval(4).setShouldReceiveVelocityUpdates(true))
.build();
this.cell2SpatialPart = createMaterial( "material_cell2_spatial_part", MaterialType.CELL2_SPATIAL_PART );
this.cell16SpatialPart = createMaterial( "material_cell16_spatial_part", MaterialType.CELL16_SPATIAL_PART );
this.cell128SpatialPart = createMaterial( "material_cell128_spatial_part", MaterialType.CELL128_SPATIAL_PART );
this.silicon = createMaterial( "material_silicon", MaterialType.SILICON );
this.skyDust = createMaterial( "material_sky_dust", MaterialType.SKY_DUST );
this.calcProcessorPress = createMaterial( "material_calculation_processor_press", MaterialType.CALCULATION_PROCESSOR_PRESS );
this.engProcessorPress = createMaterial( "material_engineering_processor_press", MaterialType.ENGINEERING_PROCESSOR_PRESS );
this.logicProcessorPress = createMaterial( "material_logic_processor_press", MaterialType.LOGIC_PROCESSOR_PRESS );
this.siliconPress = createMaterial( "material_silicon_press", MaterialType.SILICON_PRESS );
this.namePress = createMaterial( "material_name_press", MaterialType.NAME_PRESS );
this.calcProcessorPrint = createMaterial( "material_calculation_processor_print", MaterialType.CALCULATION_PROCESSOR_PRINT );
this.engProcessorPrint = createMaterial( "material_engineering_processor_print", MaterialType.ENGINEERING_PROCESSOR_PRINT );
this.logicProcessorPrint = createMaterial( "material_logic_processor_print", MaterialType.LOGIC_PROCESSOR_PRINT );
this.siliconPrint = createMaterial( "material_silicon_print", MaterialType.SILICON_PRINT );
this.logicProcessor = createMaterial( "material_logic_processor", MaterialType.LOGIC_PROCESSOR );
this.calcProcessor = createMaterial( "material_calculation_processor", MaterialType.CALCULATION_PROCESSOR );
this.engProcessor = createMaterial( "material_engineering_processor", MaterialType.ENGINEERING_PROCESSOR );
this.basicCard = createMaterial( "material_basic_card", MaterialType.BASIC_CARD );
this.advCard = createMaterial( "material_advanced_card", MaterialType.ADVANCED_CARD );
this.purifiedCertusQuartzCrystal = createMaterial( "material_purified_certus_quartz_crystal", MaterialType.PURIFIED_CERTUS_QUARTZ_CRYSTAL );
this.purifiedNetherQuartzCrystal = createMaterial( "material_purified_nether_quartz_crystal", MaterialType.PURIFIED_NETHER_QUARTZ_CRYSTAL );
this.purifiedFluixCrystal = createMaterial( "material_purified_fluix_crystal", MaterialType.PURIFIED_FLUIX_CRYSTAL );
this.cell1kPart = createMaterial( "material_cell1k_part", MaterialType.CELL1K_PART );
this.cell4kPart = createMaterial( "material_cell4k_part", MaterialType.CELL4K_PART );
this.cell16kPart = createMaterial( "material_cell16k_part", MaterialType.CELL16K_PART );
this.cell64kPart = createMaterial( "material_cell64k_part", MaterialType.CELL64K_PART );
this.emptyStorageCell = createMaterial( "material_empty_storage_cell", MaterialType.EMPTY_STORAGE_CELL );
this.cardRedstone = createMaterial( "material_card_redstone", MaterialType.CARD_REDSTONE );
this.cardSpeed = createMaterial( "material_card_speed", MaterialType.CARD_SPEED );
this.cardCapacity = createMaterial( "material_card_capacity", MaterialType.CARD_CAPACITY );
this.cardFuzzy = createMaterial( "material_card_fuzzy", MaterialType.CARD_FUZZY );
this.cardInverter = createMaterial( "material_card_inverter", MaterialType.CARD_INVERTER );
this.cardCrafting = createMaterial( "material_card_crafting", MaterialType.CARD_CRAFTING );
this.enderDust = createMaterial( "material_ender_dust", MaterialType.ENDER_DUST );
this.flour = createMaterial( "material_flour", MaterialType.FLOUR );
this.goldDust = createMaterial( "material_gold_dust", MaterialType.GOLD_DUST );
this.ironDust = createMaterial( "material_iron_dust", MaterialType.IRON_DUST );
this.fluixDust = createMaterial( "material_fluix_dust", MaterialType.FLUIX_DUST );
this.certusQuartzDust = createMaterial( "material_certus_quartz_dust", MaterialType.CERTUS_QUARTZ_DUST );
this.netherQuartzDust = createMaterial( "material_nether_quartz_dust", MaterialType.NETHER_QUARTZ_DUST );
this.matterBall = createMaterial( "material_matter_ball", MaterialType.MATTER_BALL );
this.certusQuartzCrystal = createMaterial( "material_certus_quartz_crystal", MaterialType.CERTUS_QUARTZ_CRYSTAL );
this.certusQuartzCrystalCharged = createMaterial( "material_certus_quartz_crystal_charged", MaterialType.CERTUS_QUARTZ_CRYSTAL_CHARGED );
this.fluixCrystal = createMaterial( "material_fluix_crystal", MaterialType.FLUIX_CRYSTAL );
this.fluixPearl = createMaterial( "material_fluix_pearl", MaterialType.FLUIX_PEARL );
this.woodenGear = createMaterial( "material_wooden_gear", MaterialType.WOODEN_GEAR );
this.wirelessReceiver = createMaterial( "material_wireless_receiver", MaterialType.WIRELESS );
this.wirelessBooster = createMaterial( "material_wireless_booster", MaterialType.WIRELESS_BOOSTER );
this.annihilationCore = createMaterial( "material_annihilation_core", MaterialType.ANNIHILATION_CORE );
this.formationCore = createMaterial( "material_formation_core", MaterialType.FORMATION_CORE );
this.singularity = createMaterial( "material_singularity", MaterialType.SINGULARITY );
this.qESingularity = createMaterial( "material_quantum_entangled_singularity", MaterialType.QUANTUM_ENTANGLED_SINGULARITY );
this.blankPattern = createMaterial( "material_blank_pattern", MaterialType.BLANK_PATTERN );
this.fluidCell1kPart = createMaterial( "material_fluid_cell1k_part", MaterialType.FLUID_CELL1K_PART );
this.fluidCell4kPart = createMaterial( "material_fluid_cell4k_part", MaterialType.FLUID_CELL4K_PART );
this.fluidCell16kPart = createMaterial( "material_fluid_cell16k_part", MaterialType.FLUID_CELL16K_PART );
this.fluidCell64kPart = createMaterial( "material_fluid_cell64k_part", MaterialType.FLUID_CELL64K_PART );
this.cell2SpatialPart = createMaterial(MaterialType.CELL2_SPATIAL_PART );
this.cell16SpatialPart = createMaterial(MaterialType.CELL16_SPATIAL_PART );
this.cell128SpatialPart = createMaterial(MaterialType.CELL128_SPATIAL_PART );
this.silicon = createMaterial(MaterialType.SILICON );
this.skyDust = createMaterial(MaterialType.SKY_DUST );
this.calcProcessorPress = createMaterial(MaterialType.CALCULATION_PROCESSOR_PRESS );
this.engProcessorPress = createMaterial(MaterialType.ENGINEERING_PROCESSOR_PRESS );
this.logicProcessorPress = createMaterial(MaterialType.LOGIC_PROCESSOR_PRESS );
this.siliconPress = createMaterial(MaterialType.SILICON_PRESS );
this.namePress = createMaterial(MaterialType.NAME_PRESS );
this.calcProcessorPrint = createMaterial(MaterialType.CALCULATION_PROCESSOR_PRINT );
this.engProcessorPrint = createMaterial(MaterialType.ENGINEERING_PROCESSOR_PRINT );
this.logicProcessorPrint = createMaterial(MaterialType.LOGIC_PROCESSOR_PRINT );
this.siliconPrint = createMaterial(MaterialType.SILICON_PRINT );
this.logicProcessor = createMaterial(MaterialType.LOGIC_PROCESSOR );
this.calcProcessor = createMaterial(MaterialType.CALCULATION_PROCESSOR );
this.engProcessor = createMaterial(MaterialType.ENGINEERING_PROCESSOR );
this.basicCard = createMaterial(MaterialType.BASIC_CARD );
this.advCard = createMaterial(MaterialType.ADVANCED_CARD );
this.purifiedCertusQuartzCrystal = createMaterial(MaterialType.PURIFIED_CERTUS_QUARTZ_CRYSTAL );
this.purifiedNetherQuartzCrystal = createMaterial(MaterialType.PURIFIED_NETHER_QUARTZ_CRYSTAL );
this.purifiedFluixCrystal = createMaterial(MaterialType.PURIFIED_FLUIX_CRYSTAL );
this.cell1kPart = createMaterial(MaterialType.CELL1K_PART );
this.cell4kPart = createMaterial(MaterialType.CELL4K_PART );
this.cell16kPart = createMaterial(MaterialType.CELL16K_PART );
this.cell64kPart = createMaterial(MaterialType.CELL64K_PART );
this.emptyStorageCell = createMaterial(MaterialType.EMPTY_STORAGE_CELL );
this.cardRedstone = createMaterial(MaterialType.CARD_REDSTONE );
this.cardSpeed = createMaterial(MaterialType.CARD_SPEED );
this.cardCapacity = createMaterial(MaterialType.CARD_CAPACITY );
this.cardFuzzy = createMaterial(MaterialType.CARD_FUZZY );
this.cardInverter = createMaterial(MaterialType.CARD_INVERTER );
this.cardCrafting = createMaterial(MaterialType.CARD_CRAFTING );
this.enderDust = createMaterial(MaterialType.ENDER_DUST );
this.flour = createMaterial(MaterialType.FLOUR );
this.goldDust = createMaterial(MaterialType.GOLD_DUST );
this.ironDust = createMaterial(MaterialType.IRON_DUST );
this.fluixDust = createMaterial(MaterialType.FLUIX_DUST );
this.certusQuartzDust = createMaterial(MaterialType.CERTUS_QUARTZ_DUST );
this.netherQuartzDust = createMaterial(MaterialType.NETHER_QUARTZ_DUST );
this.matterBall = createMaterial(MaterialType.MATTER_BALL );
this.certusQuartzCrystal = createMaterial(MaterialType.CERTUS_QUARTZ_CRYSTAL );
this.certusQuartzCrystalCharged = createMaterial(MaterialType.CERTUS_QUARTZ_CRYSTAL_CHARGED );
this.fluixCrystal = createMaterial(MaterialType.FLUIX_CRYSTAL );
this.fluixPearl = createMaterial(MaterialType.FLUIX_PEARL );
this.woodenGear = createMaterial(MaterialType.WOODEN_GEAR );
this.wirelessReceiver = createMaterial(MaterialType.WIRELESS_RECEIVER);
this.wirelessBooster = createMaterial(MaterialType.WIRELESS_BOOSTER );
this.annihilationCore = createMaterial(MaterialType.ANNIHILATION_CORE );
this.formationCore = createMaterial(MaterialType.FORMATION_CORE );
this.singularity = createMaterial(MaterialType.SINGULARITY );
this.qESingularity = createMaterial(MaterialType.QUANTUM_ENTANGLED_SINGULARITY );
this.blankPattern = createMaterial(MaterialType.BLANK_PATTERN );
this.fluidCell1kPart = createMaterial(MaterialType.FLUID_CELL1K_PART );
this.fluidCell4kPart = createMaterial(MaterialType.FLUID_CELL4K_PART );
this.fluidCell16kPart = createMaterial(MaterialType.FLUID_CELL16K_PART );
this.fluidCell64kPart = createMaterial(MaterialType.FLUID_CELL64K_PART );
}
private IItemDefinition createMaterial(String id, final MaterialType mat)
private IItemDefinition createMaterial(final MaterialType mat)
{
Preconditions.checkState( !mat.isRegistered(), "Cannot create the same material twice." );
IItemDefinition def = registry.item(id, props -> new ItemMaterial(props, mat))
IItemDefinition def = registry.item(mat.getId(), props -> new ItemMaterial(props, mat))
.features(mat.getFeature().toArray(new AEFeature[0]))
.build();
@@ -34,22 +34,17 @@ import appeng.block.AEBaseTileBlock;
public final class TileDefinition extends BlockDefinition implements ITileDefinition
{
private final AEBaseTileBlock<?> block;
private final Optional<AEBaseTileBlock> block;
public TileDefinition( @Nonnull String registryName, AEBaseTileBlock block, BlockItem item, Set<AEFeature> features )
public TileDefinition( @Nonnull String registryName, AEBaseTileBlock<?> block, BlockItem item, Set<AEFeature> features )
{
super( registryName, block, item, features );
this.block = Optional.ofNullable( block );
this.block = block;
}
@Override
public Optional<? extends Class<? extends TileEntity>> maybeEntity()
{
if (this.block.isPresent()) {
}
return this.block.map( block -> block.getTileEntityClass() );
return Optional.of(this.block.getTileEntityClass());
}
}
@@ -22,7 +22,6 @@ package appeng.items.materials;
import java.util.EnumSet;
import java.util.Set;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.entity.Entity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -98,7 +97,7 @@ public enum MaterialType
WOODEN_GEAR("material_wooden_gear", EnumSet.of( AEFeature.GRIND_STONE ), "gearWood" ),
WIRELESS("material_wireless", EnumSet.of( AEFeature.WIRELESS_ACCESS_TERMINAL ) ),
WIRELESS_RECEIVER("material_wireless_receiver", EnumSet.of( AEFeature.WIRELESS_ACCESS_TERMINAL ) ),
WIRELESS_BOOSTER("material_wireless_booster", EnumSet.of( AEFeature.WIRELESS_ACCESS_TERMINAL ) ),
FORMATION_CORE("material_formation_core", EnumSet.of( AEFeature.CORES ) ),
@@ -119,7 +118,7 @@ public enum MaterialType
FLUID_CELL64K_PART("material_fluid_cell64k_part", EnumSet.of( AEFeature.STORAGE_CELLS ) );
private final Set<AEFeature> features;
private final ModelResourceLocation model;
private final ResourceLocation registryName;
private Item itemInstance;
// stack!
private MaterialStackSrc stackSrc;
@@ -127,33 +126,28 @@ public enum MaterialType
private Class<? extends Entity> droppedEntity;
private boolean isRegistered = false;
MaterialType(String modelName)
{
this(modelName, EnumSet.of( AEFeature.CORE ) );
}
MaterialType(String modelName, final Set<AEFeature> features)
MaterialType(String id, final Set<AEFeature> features)
{
this.features = features;
this.model = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, modelName ), "inventory" );
this.registryName = new ResourceLocation( AppEng.MOD_ID, id);
}
MaterialType(String modelName, final Set<AEFeature> features, final Class<? extends Entity> c)
MaterialType(String id, final Set<AEFeature> features, final Class<? extends Entity> c)
{
this(modelName, features );
this(id, features );
this.droppedEntity = c;
}
MaterialType(String modelName, final Set<AEFeature> features, final String oreDictionary, final Class<? extends Entity> c)
MaterialType(String id, final Set<AEFeature> features, final String oreDictionary, final Class<? extends Entity> c)
{
this(modelName, features );
this(id, features );
this.oreName = oreDictionary;
this.droppedEntity = c;
}
MaterialType(String modelName, final Set<AEFeature> features, final String oreDictionary)
MaterialType(String id, final Set<AEFeature> features, final String oreDictionary)
{
this(modelName, features );
this(id, features );
this.oreName = oreDictionary;
}
@@ -212,9 +206,11 @@ public enum MaterialType
this.stackSrc = stackSrc;
}
public ModelResourceLocation getModel()
public String getId() { return registryName.getPath(); }
public ResourceLocation getRegistryName()
{
return this.model;
return this.registryName;
}
}
@@ -20,6 +20,7 @@ package appeng.items.misc;
import appeng.api.implementations.items.IGrowableCrystal;
import appeng.core.AppEng;
import appeng.core.localization.ButtonToolTips;
import appeng.entity.EntityGrowingCrystal;
import appeng.items.AEBaseItem;
@@ -33,6 +34,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.IItemProvider;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
@@ -68,6 +70,9 @@ public class ItemCrystalSeed extends AEBaseItem implements IGrowableCrystal
public ItemCrystalSeed(Properties properties, IItemProvider grownItem) {
super(properties);
this.grownItem = Preconditions.checkNotNull(grownItem);
// Expose the growth of the seed to the model system
addPropertyOverride(new ResourceLocation("appliedenergistics2:growth"),
(is, w, p) -> getGrowthTicks(is) / (float) GROWTH_TICKS_REQUIRED);
}
@Nullable
@@ -20,7 +20,6 @@ package appeng.items.misc;
import appeng.api.util.AEColor;
import appeng.core.localization.GuiText;
import appeng.items.AEBaseItem;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
@@ -34,13 +33,12 @@ public class ItemPaintBall extends AEBaseItem
{
private static final String TAG_COLOR = "c";
private static final String TAG_LUMEN = "l";
private static final ITextComponent LUMEN_PREFIX = new TranslationTextComponent(GuiText.Lumen.getTranslationKey())
.appendText(" ");
private final boolean lumen;
public ItemPaintBall(Properties properties) {
public ItemPaintBall(Properties properties, boolean lumen) {
super(properties);
this.lumen = lumen;
}
@Override
@@ -53,12 +51,7 @@ public class ItemPaintBall extends AEBaseItem
private ITextComponent getExtraName( final ItemStack is )
{
ITextComponent colorText = new TranslationTextComponent(this.getColor(is).translationKey);
if (isLumen(is)) {
return LUMEN_PREFIX.shallowCopy().appendSibling(colorText);
} else {
return colorText;
}
return new TranslationTextComponent(this.getColor(is).translationKey);
}
public AEColor getColor( final ItemStack is )
@@ -80,16 +73,9 @@ public class ItemPaintBall extends AEBaseItem
return is;
}
public boolean isLumen( final ItemStack is )
public boolean isLumen()
{
CompoundNBT tag = is.getTag();
return tag != null && tag.getBoolean(TAG_LUMEN);
}
public ItemStack setLumen( final ItemStack is, boolean lumen )
{
is.getOrCreateTag().putBoolean(TAG_LUMEN, lumen);
return is;
return lumen;
}
@Override
@@ -102,14 +88,6 @@ public class ItemPaintBall extends AEBaseItem
itemStacks.add( setColor(new ItemStack( this ), c) );
}
}
for( final AEColor c : AEColor.values() )
{
if( c != AEColor.TRANSPARENT )
{
itemStacks.add( setLumen(setColor(new ItemStack( this ), c), true) );
}
}
}
}
@@ -31,14 +31,10 @@ import appeng.bootstrap.ItemRenderingCustomizer;
public class ItemPaintBallRendering extends ItemRenderingCustomizer
{
private static final ModelResourceLocation MODEL_NORMAL = new ModelResourceLocation( "appliedenergistics2:paint_ball" );
private static final ModelResourceLocation MODEL_SHIMMER = new ModelResourceLocation( "appliedenergistics2:paint_ball_shimmer" );
@Override
public void customize( IItemRendering rendering )
{
rendering.color( ItemPaintBallRendering::getColorFromItemstack );
rendering.variants( MODEL_NORMAL, MODEL_SHIMMER );
// FIXME rendering.meshDefinition( is -> ItemPaintBall.isLumen( is ) ? MODEL_SHIMMER : MODEL_NORMAL );
}
@@ -47,7 +43,7 @@ public class ItemPaintBallRendering extends ItemRenderingCustomizer
ItemPaintBall item = (ItemPaintBall) stack.getItem();
final AEColor col = item.getColor( stack );
boolean lumen = item.isLumen(stack);
boolean lumen = item.isLumen();
final int colorValue = lumen ? col.mediumVariant : col.mediumVariant;
final int r = ( colorValue >> 16 ) & 0xff;
final int g = ( colorValue >> 8 ) & 0xff;
@@ -66,15 +66,15 @@ public class ItemPartRendering extends ItemRenderingCustomizer
.collect( Collectors.toList() ) );
// Register the built-in models for annihilation planes
ResourceLocation annihilationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "items/part/annihilation_plane" );
ResourceLocation annihilationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "item/part/annihilation_plane" );
ResourceLocation annihilationPlaneOnTexture = new ResourceLocation( AppEng.MOD_ID, "parts/annihilation_plane_on" );
ResourceLocation fluidAnnihilationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "items/part/fluid_annihilation_plane" );
ResourceLocation fluidAnnihilationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "item/part/fluid_annihilation_plane" );
ResourceLocation fluidAnnihilationPlaneOnTexture = new ResourceLocation( AppEng.MOD_ID, "parts/fluid_annihilation_plane_on" );
ResourceLocation identityAnnihilationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "items/part/identity_annihilation_plane" );
ResourceLocation identityAnnihilationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "item/part/identity_annihilation_plane" );
ResourceLocation identityAnnihilationPlaneOnTexture = new ResourceLocation( AppEng.MOD_ID, "parts/identity_annihilation_plane_on" );
ResourceLocation formationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "items/part/formation_plane" );
ResourceLocation formationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "item/part/formation_plane" );
ResourceLocation formationPlaneOnTexture = new ResourceLocation( AppEng.MOD_ID, "parts/formation_plane_on" );
ResourceLocation fluidFormationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "items/part/fluid_formation_plane" );
ResourceLocation fluidFormationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "item/part/fluid_formation_plane" );
ResourceLocation fluidFormationPlaneOnTexture = new ResourceLocation( AppEng.MOD_ID, "parts/fluid_formation_plane_on" );
ResourceLocation sidesTexture = new ResourceLocation( AppEng.MOD_ID, "parts/plane_sides" );
ResourceLocation backTexture = new ResourceLocation( AppEng.MOD_ID, "parts/transition_plane_back" );
@@ -1,26 +0,0 @@
package appeng.items.tools;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import appeng.bootstrap.IItemRendering;
import appeng.bootstrap.ItemRenderingCustomizer;
import appeng.core.AppEng;
public class ToolBiometricCardRendering extends ItemRenderingCustomizer
{
private static final ResourceLocation MODEL = new ResourceLocation( AppEng.MOD_ID, "builtin/biometric_card" );
@Override
@OnlyIn( Dist.CLIENT )
public void customize( IItemRendering rendering )
{
// FIXME rendering.builtInModel( "models/item/builtin/biometric_card", new BiometricCardModel() );
rendering.model( new ModelResourceLocation( MODEL, "inventory" ) ).variants( MODEL );
}
}
@@ -1,26 +0,0 @@
package appeng.items.tools;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import appeng.bootstrap.IItemRendering;
import appeng.bootstrap.ItemRenderingCustomizer;
import appeng.core.AppEng;
public class ToolMemoryCardRendering extends ItemRenderingCustomizer
{
private static final ResourceLocation MODEL = new ResourceLocation( AppEng.MOD_ID, "builtin/memory_card" );
@Override
@OnlyIn( Dist.CLIENT )
public void customize( IItemRendering rendering )
{
// FIXME rendering.builtInModel( "models/item/builtin/memory_card", new MemoryCardModel() );
rendering.model( new ModelResourceLocation( MODEL, "inventory" ) ).variants( MODEL );
}
}
@@ -258,7 +258,7 @@ public class TilePaint extends AEBaseTile
final ItemPaintBall ipb = (ItemPaintBall) type.getItem();
final AEColor col = ipb.getColor( type );
final boolean lit = ipb.isLumen( type );
final boolean lit = ipb.isLumen();
if( this.dots == null )
{