diff --git a/build.gradle b/build.gradle index 66926b415..72716d5db 100644 --- a/build.gradle +++ b/build.gradle @@ -60,17 +60,12 @@ sourceSets { api main { java { - exclude 'appeng/client/render/model/UVLModelLoader.java' - exclude 'appeng/client/core/api/imc/**' - exclude 'appeng/core/IMCHandler.java' exclude 'appeng/recipes/handlers/**' exclude 'appeng/worldgen/**' - exclude 'appeng/services/export/**' exclude 'appeng/spatial/StorageChunkProvider.java' exclude 'appeng/spatial/StorageHelper.java' exclude 'appeng/spatial/CachedPlane.java' exclude 'appeng/spatial/StorageWorldProvider.java' - exclude 'appeng/parts/p2p/PartP2PFluids.java' } compileClasspath += sourceSets.api.output runtimeClasspath += sourceSets.api.output diff --git a/src/main/java/appeng/block/networking/BlockController.java b/src/main/java/appeng/block/networking/BlockController.java index f552afd28..aba766490 100644 --- a/src/main/java/appeng/block/networking/BlockController.java +++ b/src/main/java/appeng/block/networking/BlockController.java @@ -143,12 +143,6 @@ public class BlockController extends AEBaseTileBlock return state.with( CONTROLLER_TYPE, type ); } - @Override - public BlockState getExtendedState( BlockState state, IBlockReader world, BlockPos pos ) - { - return state; - } - @Override public void neighborChanged( BlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving ) { diff --git a/src/main/java/appeng/client/render/model/UVLModelLoader.java b/src/main/java/appeng/client/render/model/UVLModelLoader.java index 2c28d1edd..1e8d16060 100644 --- a/src/main/java/appeng/client/render/model/UVLModelLoader.java +++ b/src/main/java/appeng/client/render/model/UVLModelLoader.java @@ -19,378 +19,181 @@ package appeng.client.render.model; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; +import com.google.gson.*; +import com.mojang.blaze3d.matrix.MatrixStack; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.Matrix4f; +import net.minecraft.client.renderer.TransformationMatrix; +import net.minecraft.client.renderer.model.*; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.client.renderer.vertex.VertexFormat; +import net.minecraft.resources.IResourceManager; +import net.minecraft.util.Direction; +import net.minecraft.util.JSONUtils; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.IModelBuilder; +import net.minecraftforge.client.model.IModelConfiguration; +import net.minecraftforge.client.model.IModelLoader; +import net.minecraftforge.client.model.ModelLoaderRegistry; +import net.minecraftforge.client.model.geometry.IModelGeometry; +import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; +import net.minecraftforge.client.model.pipeline.VertexLighterFlat; +import net.minecraftforge.common.model.TransformationHelper; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; + +import javax.annotation.Nullable; import java.lang.reflect.Type; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Set; import java.util.function.Function; -import javax.annotation.Nullable; -import com.google.common.base.Charsets; -import com.google.common.base.Throwables; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.Vector3f; -import net.minecraft.client.renderer.block.model.ModelBlock; -import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.BlockFaceUV; -import net.minecraft.client.renderer.model.BlockPart; -import net.minecraft.client.renderer.model.BlockPartFace; -import net.minecraft.client.renderer.model.BlockPartRotation; -import net.minecraft.client.renderer.model.FaceBakery; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.model.ItemCameraTransforms; -import net.minecraft.client.renderer.model.ItemOverride; -import net.minecraft.client.renderer.model.ItemTransformVec3f; -import net.minecraft.client.renderer.model.ModelBakery; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.resources.IResource; -import net.minecraft.resources.IResourceManager; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.ICustomModelLoader; -import net.minecraftforge.client.model.IModel; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.client.model.animation.ModelBlockAnimation; -import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad; -import net.minecraftforge.client.model.pipeline.VertexLighterFlat; -import net.minecraftforge.common.model.IModelState; -import net.minecraftforge.common.model.ITransformation; -import net.minecraftforge.fml.relauncher.ReflectionHelper; - -import appeng.client.render.VertexFormats; - - -public enum UVLModelLoader implements ICustomModelLoader +public class UVLModelLoader implements IModelLoader { - INSTANCE; - private static final Gson gson = new Gson(); + public static final UVLModelLoader INSTANCE = new UVLModelLoader(); - private static final Constructor vanillaModelWrapper; - private static final Field faceBakery; - private static final Object vanillaLoader; - private static final MethodHandle loaderGetter; - - static - { - try - { - Field modifiers = Field.class.getDeclaredField( "modifiers" ); - modifiers.setAccessible( true ); - - faceBakery = ReflectionHelper.findField( ModelBakery.class, "faceBakery", "field_177607_l" ); - modifiers.set( faceBakery, faceBakery.getModifiers() & ( ~Modifier.FINAL ) ); - - Class clas = Class.forName( ModelLoader.class.getName() + "$VanillaModelWrapper" ); - vanillaModelWrapper = clas.getDeclaredConstructor( ModelLoader.class, ResourceLocation.class, ModelBlock.class, boolean.class, - ModelBlockAnimation.class ); - vanillaModelWrapper.setAccessible( true ); - - Class vanillaLoaderClass = Class.forName( ModelLoader.class.getName() + "$VanillaLoader" ); - Field instanceField = vanillaLoaderClass.getField( "INSTANCE" ); - // Static field - vanillaLoader = instanceField.get( null ); - Field loaderField = vanillaLoaderClass.getDeclaredField( "loader" ); - loaderField.setAccessible( true ); - loaderGetter = MethodHandles.lookup().unreflectGetter( loaderField ); - } - catch( Exception e ) - { - throw Throwables.propagate( e ); - } - } - - private static Object deserializer( Class clas ) - { - try - { - clas = Class.forName( clas.getName() + "$Deserializer" ); - Constructor constr = clas.getDeclaredConstructor(); - constr.setAccessible( true ); - return constr.newInstance(); - } - catch( Exception e ) - { - throw Throwables.propagate( e ); - } - } - - private static M vanillaModelWrapper( ModelLoader loader, ResourceLocation location, ModelBlock model, boolean uvlock, ModelBlockAnimation animation ) - { - try - { - return (M) vanillaModelWrapper.newInstance( loader, location, model, uvlock, animation ); - } - catch( Exception e ) - { - throw Throwables.propagate( e ); - } - } - - private static void setFaceBakery( ModelBakery modelBakery, FaceBakery faceBakery ) - { - try - { - UVLModelLoader.faceBakery.set( modelBakery, faceBakery ); - } - catch( Exception e ) - { - throw Throwables.propagate( e ); - } - } - - private IResourceManager resourceManager; - - public ModelLoader getLoader() - { - try - { - return (ModelLoader) loaderGetter.invoke( vanillaLoader ); - } - catch( Throwable throwable ) - { - throw new RuntimeException( throwable ); - } + @Override + public void onResourceManagerReload(IResourceManager resourceManager) { } @Override - public void onResourceManagerReload( IResourceManager resourceManager ) - { - this.resourceManager = resourceManager; + public UVLModelWrapper read(JsonDeserializationContext deserializationContext, JsonObject modelContents) { + modelContents.remove("loader"); + BlockModel blockModel = UVLSERIALIZER.fromJson(modelContents, BlockModel.class); + return new UVLModelWrapper(blockModel); } - @Override - public boolean accepts( ResourceLocation modelLocation ) + final Gson UVLSERIALIZER = (new GsonBuilder()) + .registerTypeAdapter(BlockModel.class, new ModelLoaderRegistry.ExpandedBlockModelDeserializer()) + .registerTypeAdapter(BlockPart.class, new BlockPart.Deserializer()) + .registerTypeAdapter(BlockPartFace.class, new BlockPartFaceOverrideSerializer()) + .registerTypeAdapter(BlockFaceUV.class, new BlockFaceUV.Deserializer()) + .registerTypeAdapter(ItemTransformVec3f.class, new ItemTransformVec3f.Deserializer()) + .registerTypeAdapter(ItemCameraTransforms.class, new ItemCameraTransforms.Deserializer()) + .registerTypeAdapter(ItemOverride.class, new ItemOverride.Deserializer()) + .registerTypeAdapter(TransformationMatrix.class, new TransformationHelper.Deserializer()) + .create(); + + private static class BlockPartFaceOverrideSerializer extends BlockPartFace.Deserializer { - String modelPath = modelLocation.getResourcePath(); - if( modelLocation.getResourcePath().startsWith( "models/" ) ) + @Override + public BlockPartFace deserialize( JsonElement p_deserialize_1_, Type p_deserialize_2_, JsonDeserializationContext p_deserialize_3_ ) throws JsonParseException { - modelPath = modelPath.substring( "models/".length() ); + BlockPartFace blockFace = super.deserialize(p_deserialize_1_, p_deserialize_2_, p_deserialize_3_); + Pair uvl = this.parseUVL(p_deserialize_1_.getAsJsonObject()); + if (uvl != null) { + return new BlockPartFaceWithUVL(blockFace.cullFace, blockFace.tintIndex, blockFace.texture, blockFace.blockFaceUV, uvl.getLeft(), uvl.getRight()); + } + return blockFace; } - try( InputStreamReader io = new InputStreamReader( Minecraft.getInstance() - .getResourceManager() - .getResource( new ResourceLocation( modelLocation.getResourceDomain(), "models/" + modelPath + ".json" ) ) - .getInputStream() ) ) + protected Pair parseUVL( JsonObject object ) { - return gson.fromJson( io, UVLMarker.class ).ae2_uvl_marker; + if( !object.has( "uvlightmap" ) ) + { + return null; + } + object = object.get( "uvlightmap" ).getAsJsonObject(); + return new ImmutablePair<>( JSONUtils.getFloat( object, "sky", 0 ), JSONUtils.getFloat( object, "block", 0 ) ); } - catch( Exception e ) - { - // Catch-all in case of any JSON parser issues. - } - - return false; } - @Override - public IModel loadModel( ResourceLocation modelLocation ) throws Exception - { - return new UVLModelWrapper( modelLocation ); + private static class BlockPartFaceWithUVL extends BlockPartFace { + + private final float sky; + private final float block; + + public BlockPartFaceWithUVL(@Nullable Direction cullFaceIn, int tintIndexIn, String textureIn, BlockFaceUV blockFaceUVIn, float sky, float block) { + super(cullFaceIn, tintIndexIn, textureIn, blockFaceUVIn); + this.sky = sky; + this.block = block; + } + + public float getSky() { + return sky; + } + + public float getBlock() { + return block; + } } - public class UVLModelWrapper implements IModel + public static class UVLModelWrapper implements IModelGeometry { - final Gson UVLSERIALIZER = ( new GsonBuilder() ).registerTypeAdapter( ModelBlock.class, deserializer( ModelBlock.class ) ) - .registerTypeAdapter( BlockPart.class, deserializer( BlockPart.class ) ) - .registerTypeAdapter( BlockPartFace.class, new BlockPartFaceOverrideSerializer() ) - .registerTypeAdapter( BlockFaceUV.class, deserializer( BlockFaceUV.class ) ) - .registerTypeAdapter( ItemTransformVec3f.class, deserializer( ItemTransformVec3f.class ) ) - .registerTypeAdapter( ItemCameraTransforms.class, deserializer( ItemCameraTransforms.class ) ) - .registerTypeAdapter( ItemOverride.class, deserializer( ItemOverride.class ) ) - .create(); + private final BlockModel parent; - private Map> uvlightmap = new HashMap<>(); - - private final IModel parent; - - public UVLModelWrapper( ResourceLocation modelLocation ) + public UVLModelWrapper( BlockModel parent ) { - String modelPath = modelLocation.getResourcePath(); - if( modelLocation.getResourcePath().startsWith( "models/" ) ) - { - modelPath = modelPath.substring( "models/".length() ); - } - ResourceLocation armatureLocation = new ResourceLocation( modelLocation.getResourceDomain(), "armatures/" + modelPath + ".json" ); - ModelBlockAnimation animation = ModelBlockAnimation.loadVanillaAnimation( UVLModelLoader.this.resourceManager, armatureLocation ); - ModelBlock model; - { - Reader reader = null; - IResource iresource = null; - ModelBlock lvt_5_1_ = null; - - try - { - String s = modelLocation.getResourcePath(); - - iresource = Minecraft.getInstance() - .getResourceManager() - .getResource( - new ResourceLocation( modelLocation.getResourceDomain(), "models/" + modelPath + ".json" ) ); - reader = new InputStreamReader( iresource.getInputStream(), Charsets.UTF_8 ); - - lvt_5_1_ = JsonUtils.gsonDeserialize( this.UVLSERIALIZER, reader, ModelBlock.class, false ); - lvt_5_1_.name = modelLocation.toString(); - } - catch( IOException e ) - { - e.printStackTrace(); - } - finally - { - IOUtils.closeQuietly( reader ); - IOUtils.closeQuietly( iresource ); - } - - model = lvt_5_1_; - } - - this.parent = vanillaModelWrapper( UVLModelLoader.this.getLoader(), modelLocation, model, false, animation ); + this.parent = parent; } @Override - public Collection getDependencies() - { - return this.parent.getDependencies(); - } + public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { + TextureAtlasSprite particle = spriteGetter.apply(owner.resolveTexture("particle")); - @Override - public Collection getTextures() - { - return this.parent.getTextures(); - } + IModelBuilder builder = IModelBuilder.of(owner, overrides, particle); + for(BlockPart blockpart : parent.getElements()) { + for(Direction direction : blockpart.mapFaces.keySet()) { + BlockPartFace blockpartface = blockpart.mapFaces.get(direction); + TextureAtlasSprite textureatlassprite1 = spriteGetter.apply(owner.resolveTexture(blockpartface.texture)); + BakedQuad quad = BlockModel.makeBakedQuad(blockpart, blockpartface, textureatlassprite1, direction, modelTransform, modelLocation); - @Override - public IBakedModel bake( IModelState state, VertexFormat format, Function bakedTextureGetter ) - { - setFaceBakery( UVLModelLoader.this.getLoader(), new FaceBakeryOverride() ); - IBakedModel model = this.parent.bake( state, format, bakedTextureGetter ); - setFaceBakery( UVLModelLoader.this.getLoader(), new FaceBakery() ); - return model; - } + if (blockpartface instanceof BlockPartFaceWithUVL) { + BlockPartFaceWithUVL uvlFace = (BlockPartFaceWithUVL) blockpartface; + quad = applyPreBakedLighting(quad, textureatlassprite1, uvlFace.sky, uvlFace.block); + } - @Override - public IModelState getDefaultState() - { - return this.parent.getDefaultState(); - } - - public class BlockPartFaceOverrideSerializer implements JsonDeserializer - { - @Override - public BlockPartFace deserialize( JsonElement p_deserialize_1_, Type p_deserialize_2_, JsonDeserializationContext p_deserialize_3_ ) throws JsonParseException - { - JsonObject jsonobject = p_deserialize_1_.getAsJsonObject(); - Direction Direction = this.parseCullFace( jsonobject ); - int i = this.parseTintIndex( jsonobject ); - String s = this.parseTexture( jsonobject ); - BlockFaceUV blockfaceuv = (BlockFaceUV) p_deserialize_3_.deserialize( jsonobject, BlockFaceUV.class ); - BlockPartFace blockFace = new BlockPartFace( Direction, i, s, blockfaceuv ); - UVLModelWrapper.this.uvlightmap.put( blockFace, this.parseUVL( jsonobject ) ); - return blockFace; - } - - protected int parseTintIndex( JsonObject object ) - { - return JsonUtils.getInt( object, "tintindex", -1 ); - } - - private String parseTexture( JsonObject object ) - { - return JsonUtils.getString( object, "texture" ); - } - - @Nullable - private Direction parseCullFace( JsonObject object ) - { - String s = JsonUtils.getString( object, "cullface", "" ); - return Direction.byName( s ); - } - - protected Pair parseUVL( JsonObject object ) - { - if( !object.has( "uvlightmap" ) ) - { - return null; + if (blockpartface.cullFace == null) { + builder.addGeneralQuad(quad); + } else { + builder.addFaceQuad( + modelTransform.getRotation().rotateTransform(blockpartface.cullFace), + quad); + } } - object = object.get( "uvlightmap" ).getAsJsonObject(); - return new ImmutablePair<>( JsonUtils.getFloat( object, "sky", 0 ), JsonUtils.getFloat( object, "block", 0 ) ); } + return builder.build(); } - public class FaceBakeryOverride extends FaceBakery - { - - @Override - public BakedQuad makeBakedQuad( Vector3f posFrom, Vector3f posTo, BlockPartFace face, TextureAtlasSprite sprite, Direction facing, ITransformation modelRotationIn, BlockPartRotation partRotation, boolean uvLocked, boolean shade ) - { - BakedQuad quad = super.makeBakedQuad( posFrom, posTo, face, sprite, facing, modelRotationIn, partRotation, uvLocked, shade ); - - Pair brightness = UVLModelWrapper.this.uvlightmap.get( face ); - if( brightness != null ) + private BakedQuad applyPreBakedLighting(BakedQuad quad, TextureAtlasSprite sprite, float sky, float block) { + // FIXME: just piping through the quads and manipulating uv index 2 directly seems way easier than this + BakedQuadBuilder builder = new BakedQuadBuilder(sprite); + VertexLighterFlat trans = new VertexLighterFlat( Minecraft.getInstance().getBlockColors() ) { - VertexFormat newFormat = DefaultVertexFormats.BLOCK; - UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder( newFormat ); - VertexLighterFlat trans = new VertexLighterFlat( Minecraft.getInstance().getBlockColors() ) + + @Override + protected void updateLightmap( float[] normal, float[] lightmap, float x, float y, float z ) { + lightmap[0] = block; + lightmap[1] = sky; + } - @Override - protected void updateLightmap( float[] normal, float[] lightmap, float x, float y, float z ) - { - lightmap[0] = brightness.getRight(); - lightmap[1] = brightness.getLeft(); - } - - @Override - public void setQuadTint( int tint ) - { - // Tint requires a block state which we don't have at this point - } - }; - trans.setParent( builder ); - quad.pipe( trans ); - builder.setQuadTint( quad.getTintIndex() ); - builder.setQuadOrientation( quad.getFace() ); - builder.setTexture( quad.getSprite() ); - builder.setApplyDiffuseLighting( false ); - return builder.build(); - } - else - { - return quad; - } - } - + @Override + public void setQuadTint( int tint ) + { + // Tint requires a block state which we don't have at this point + } + }; + MatrixStack identity = new MatrixStack(); + trans.setTransform(identity.getLast()); + trans.setParent( builder ); + quad.pipe( trans ); + builder.setQuadTint( quad.getTintIndex() ); + builder.setQuadOrientation( quad.getFace() ); + builder.setApplyDiffuseLighting( false ); + return builder.build(); } - } + @Override + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { + return parent.getTextures(modelGetter, missingTextureErrors); + } - class UVLMarker - { - boolean ae2_uvl_marker = false; } } diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index 1db19aba0..6515e9c7e 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -194,6 +194,7 @@ public final class AppEng addBuiltInModel("paint_splotches", PaintSplotchesModel::new); addBuiltInModel("quantum_bridge_formed", QnbFormedModel::new); ModelLoaderRegistry.registerLoader(new ResourceLocation(AppEng.MOD_ID, "crafting_cube"), CraftingCubeModelLoader.INSTANCE); + ModelLoaderRegistry.registerLoader(new ResourceLocation(AppEng.MOD_ID, "uvlightmap"), UVLModelLoader.INSTANCE); } private static > void addBuiltInModel(String id, Supplier modelFactory) { diff --git a/src/main/java/appeng/core/CreativeTab.java b/src/main/java/appeng/core/CreativeTab.java index 46af35e9c..fecaf7b70 100644 --- a/src/main/java/appeng/core/CreativeTab.java +++ b/src/main/java/appeng/core/CreativeTab.java @@ -19,17 +19,12 @@ package appeng.core; -import java.util.Optional; - import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import appeng.api.AEApi; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IDefinitions; -import appeng.api.definitions.IItemDefinition; -import appeng.api.definitions.IItems; -import appeng.api.definitions.IMaterials; public final class CreativeTab @@ -43,36 +38,12 @@ public final class CreativeTab @Override public ItemStack createIcon() - { - return this.getIconItemStack(); - } - - private ItemStack getIconItemStack() { final IDefinitions definitions = AEApi.instance().definitions(); final IBlocks blocks = definitions.blocks(); - final IItems items = definitions.items(); - final IMaterials materials = definitions.materials(); - - return findFirst(blocks.quartzOre()); - - // FIXME return this.findFirst( blocks.controller(), blocks.chest(), blocks.cellWorkbench(), blocks.fluixBlock(), items.cell1k(), items.networkTool(), - // FIXME materials.fluixCrystal(), materials.certusQuartzCrystal(), materials.skyDust() ); + return blocks.controller().stack(1); } - private ItemStack findFirst( final IItemDefinition... choices ) - { - for( final IItemDefinition definition : choices ) - { - Optional maybeIs = definition.maybeStack( 1 ); - if( maybeIs.isPresent() ) - { - return maybeIs.get(); - } - } - - return new ItemStack( net.minecraft.block.Blocks.CHEST ); - } }; } } \ No newline at end of file diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index 737ad240c..20f8a826c 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -179,6 +179,13 @@ public final class ApiBlocks implements IBlocks .build(); this.quartzOreCharged = registry.block( "charged_quartz_ore", () -> new BlockChargedQuartzOre(QUARTZ_PROPERTIES) ) .features( AEFeature.CERTUS_ORE, AEFeature.CHARGED_CERTUS_ORE ) + .rendering(new BlockRenderingCustomizer() { + @Override + @OnlyIn(Dist.CLIENT) + public void customize(IBlockRendering rendering, IItemRendering itemRendering) { + rendering.renderType(RenderType.getCutout()); + } + }) .build(); this.matrixFrame = registry.block( "matrix_frame", BlockMatrixFrame::new ) .features( AEFeature.SPATIAL_IO ) diff --git a/src/main/java/appeng/decorative/solid/BlockQuartzOre.java b/src/main/java/appeng/decorative/solid/BlockQuartzOre.java index dd4e537b9..84a515eae 100644 --- a/src/main/java/appeng/decorative/solid/BlockQuartzOre.java +++ b/src/main/java/appeng/decorative/solid/BlockQuartzOre.java @@ -31,12 +31,6 @@ public class BlockQuartzOre extends AEBaseBlock super(props); } -// FIXME @Override -// public BlockRenderLayer getBlockLayer() -// { -// return BlockRenderLayer.CUTOUT; -// } - // FIXME: Loot Tables // @Override // public int quantityDropped( BlockState state, int fortune, Random rand ) diff --git a/src/main/java/appeng/items/parts/PartType.java b/src/main/java/appeng/items/parts/PartType.java index 79d150226..2edaf936f 100644 --- a/src/main/java/appeng/items/parts/PartType.java +++ b/src/main/java/appeng/items/parts/PartType.java @@ -29,6 +29,7 @@ import java.util.Set; import java.util.stream.Collectors; import appeng.fluids.parts.*; +import appeng.parts.p2p.*; import com.google.common.collect.ImmutableList; import net.minecraft.client.renderer.model.ModelResourceLocation; @@ -59,10 +60,6 @@ import appeng.parts.networking.PartCableSmart; import appeng.parts.networking.PartDenseCableCovered; import appeng.parts.networking.PartDenseCableSmart; import appeng.parts.networking.PartQuartzFiber; -import appeng.parts.p2p.PartP2PFEPower; -import appeng.parts.p2p.PartP2PLight; -import appeng.parts.p2p.PartP2PRedstone; -import appeng.parts.p2p.PartP2PTunnelME; import appeng.parts.reporting.PartConversionMonitor; import appeng.parts.reporting.PartCraftingTerminal; import appeng.parts.reporting.PartDarkPanel; @@ -251,35 +248,35 @@ public enum PartType } }, -// FIXME P2P_TUNNEL_ITEMS( 462, "p2p_tunnel_items", EnumSet.of( AEFeature.P2P_TUNNEL, AEFeature.P2P_TUNNEL_ITEMS ), EnumSet -// FIXME .noneOf( IntegrationType.class ), PartP2PItems.class, GuiText.ItemTunnel ) -// FIXME { -// FIXME @Override -// FIXME String getTranslationKey() -// FIXME { -// FIXME return "p2p_tunnel"; -// FIXME } -// FIXME }, -// FIXME -// FIXME P2P_TUNNEL_FLUIDS( 463, "p2p_tunnel_fluids", EnumSet.of( AEFeature.P2P_TUNNEL, AEFeature.P2P_TUNNEL_FLUIDS ), EnumSet -// FIXME .noneOf( IntegrationType.class ), PartP2PFluids.class, GuiText.FluidTunnel ) -// FIXME { -// FIXME @Override -// FIXME String getTranslationKey() -// FIXME { -// FIXME return "p2p_tunnel"; -// FIXME } -// FIXME }, -// FIXME -// FIXME P2P_TUNNEL_IC2( 465, "p2p_tunnel_ic2", EnumSet.of( AEFeature.P2P_TUNNEL, AEFeature.P2P_TUNNEL_EU ), EnumSet -// FIXME .of( IntegrationType.IC2 ), PartP2PIC2Power.class, GuiText.EUTunnel ) -// FIXME { -// FIXME @Override -// FIXME String getTranslationKey() -// FIXME { -// FIXME return "p2p_tunnel"; -// FIXME } -// FIXME }, + P2P_TUNNEL_ITEMS( 462, "p2p_tunnel_items", EnumSet.of( AEFeature.P2P_TUNNEL, AEFeature.P2P_TUNNEL_ITEMS ), EnumSet + .noneOf( IntegrationType.class ), PartP2PItems.class, GuiText.ItemTunnel ) + { + @Override + String getTranslationKey() + { + return "p2p_tunnel"; + } + }, + + P2P_TUNNEL_FLUIDS( 463, "p2p_tunnel_fluids", EnumSet.of( AEFeature.P2P_TUNNEL, AEFeature.P2P_TUNNEL_FLUIDS ), EnumSet + .noneOf( IntegrationType.class ), PartP2PFluids.class, GuiText.FluidTunnel ) + { + @Override + String getTranslationKey() + { + return "p2p_tunnel"; + } + }, + +//FIXME P2P_TUNNEL_IC2( 465, "p2p_tunnel_ic2", EnumSet.of( AEFeature.P2P_TUNNEL, AEFeature.P2P_TUNNEL_EU ), EnumSet +//FIXME .of( IntegrationType.IC2 ), PartP2PIC2Power.class, GuiText.EUTunnel ) +//FIXME { +//FIXME @Override +//FIXME String getTranslationKey() +//FIXME { +//FIXME return "p2p_tunnel"; +//FIXME } +//FIXME }, P2P_TUNNEL_LIGHT( 467, "p2p_tunnel_light", EnumSet.of( AEFeature.P2P_TUNNEL, AEFeature.P2P_TUNNEL_LIGHT ), EnumSet .noneOf( IntegrationType.class ), PartP2PLight.class, GuiText.LightTunnel ) diff --git a/src/main/resources/assets/appliedenergistics2/models/block/charged_quartz_ore.json b/src/main/resources/assets/appliedenergistics2/models/block/charged_quartz_ore.json index 4b1af89b5..a399edae4 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/charged_quartz_ore.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/charged_quartz_ore.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "parent": "block/block", "textures": { "block": "block/stone", @@ -95,7 +95,7 @@ 0, 0 ], - "shade": false, + "shade": true, "to": [ 16, 16, diff --git a/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_full.json b/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_full.json index 17e93fb87..26c41cbe0 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_full.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_full.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "backdrop": "appliedenergistics2:block/chest/cell_state_backdrop", "state": "appliedenergistics2:block/chest/cell_state_full" diff --git a/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_online.json b/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_online.json index 1ea041943..08d6ac364 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_online.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_online.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "backdrop": "appliedenergistics2:block/chest/cell_state_backdrop", "state": "appliedenergistics2:block/chest/cell_state_online" diff --git a/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_types_full.json b/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_types_full.json index 5a635c876..220d1646c 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_types_full.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/chest/cell_state_types_full.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "backdrop": "appliedenergistics2:block/chest/cell_state_backdrop", "state": "appliedenergistics2:block/chest/cell_state_types_full" diff --git a/src/main/resources/assets/appliedenergistics2/models/block/chest/lights_on.json b/src/main/resources/assets/appliedenergistics2/models/block/chest/lights_on.json index a3bb69297..9421cf08f 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/chest/lights_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/chest/lights_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lights_bright": "appliedenergistics2:block/chest/lights_on_bright", "lights_medium": "appliedenergistics2:block/chest/lights_on_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_block_conflicted.json b/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_block_conflicted.json index 025d5a27b..02559548c 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_block_conflicted.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_block_conflicted.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "parent": "block/block", "textures": { "block": "appliedenergistics2:block/controller_powered", diff --git a/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_block_online.json b/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_block_online.json index f722ee539..454db7b48 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_block_online.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_block_online.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "parent": "block/block", "textures": { "block": "appliedenergistics2:block/controller_powered", diff --git a/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_column_conflicted.json b/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_column_conflicted.json index eb4bf54f2..d2a8d0aff 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_column_conflicted.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_column_conflicted.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "parent": "block/block", "textures": { "block": "appliedenergistics2:block/controller_column_powered", diff --git a/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_column_online.json b/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_column_online.json index 328971cdc..d949fe663 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_column_online.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/controller/controller_column_online.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "parent": "block/block", "textures": { "block": "appliedenergistics2:block/controller_column_powered", diff --git a/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_empty.json b/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_empty.json index ea58f5e85..5050ef1f7 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_empty.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_empty.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "front": "appliedenergistics2:block/drive_cell_states" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_full.json b/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_full.json index 3a8482676..0bbb285a6 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_full.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_full.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "front": "appliedenergistics2:block/drive_cell_states" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_on.json b/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_on.json index 64cd2a39b..80c74f8b4 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "front": "appliedenergistics2:block/drive_cell_states" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_types_full.json b/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_types_full.json index 5ad15c643..d4ad0d60b 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_types_full.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/drive_cell_types_full.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "front": "appliedenergistics2:block/drive_cell_states" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/block/molecular_assembler_lights.json b/src/main/resources/assets/appliedenergistics2/models/block/molecular_assembler_lights.json index 3aec50d8a..1dfd05a1a 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/molecular_assembler_lights.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/molecular_assembler_lights.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "parent": "block/block", "textures": { "all": "appliedenergistics2:block/molecular_assembler_lights" diff --git a/src/main/resources/assets/appliedenergistics2/models/block/security_station_on.json b/src/main/resources/assets/appliedenergistics2/models/block/security_station_on.json index 50e07381d..c615346ad 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/security_station_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/security_station_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "parent": "block/block", "textures": { "particle": "appliedenergistics2:block/security_station_side", diff --git a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_on.json b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_on.json index 3c98ea484..6b113d042 100644 --- a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "ambientocclusion": false, "textures": { "torch": "appliedenergistics2:block/wireless_access_point_on" diff --git a/src/main/resources/assets/appliedenergistics2/models/part/conversion_monitor_locked_on.json b/src/main/resources/assets/appliedenergistics2/models/part/conversion_monitor_locked_on.json index a076fbbd4..41a322617 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/conversion_monitor_locked_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/conversion_monitor_locked_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/conversion_monitor_bright", "lightsMedium": "appliedenergistics2:parts/conversion_monitor_medium_locked", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/conversion_monitor_on.json b/src/main/resources/assets/appliedenergistics2/models/part/conversion_monitor_on.json index c8e87491c..31ecd1871 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/conversion_monitor_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/conversion_monitor_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/conversion_monitor_bright", "lightsMedium": "appliedenergistics2:parts/conversion_monitor_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/crafting_terminal_on.json b/src/main/resources/assets/appliedenergistics2/models/part/crafting_terminal_on.json index 68c910a0a..367447150 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/crafting_terminal_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/crafting_terminal_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/crafting_terminal_bright", "lightsMedium": "appliedenergistics2:parts/crafting_terminal_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/display_status_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/display_status_has_channel.json index 799e33461..93d4fcded 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/display_status_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/display_status_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/display_status_on.json b/src/main/resources/assets/appliedenergistics2/models/part/display_status_on.json index a25a86ee5..f5707fb65 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/display_status_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/display_status_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/export_bus_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/export_bus_has_channel.json index 9ed52e0e9..5371d54c1 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/export_bus_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/export_bus_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/export_bus_on.json b/src/main/resources/assets/appliedenergistics2/models/part/export_bus_on.json index c1596db34..37fdae783 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/export_bus_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/export_bus_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_export_bus_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_export_bus_has_channel.json index 9ed52e0e9..5371d54c1 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_export_bus_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_export_bus_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_export_bus_on.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_export_bus_on.json index c1596db34..37fdae783 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_export_bus_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_export_bus_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_import_bus_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_import_bus_has_channel.json index 9ed52e0e9..5371d54c1 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_import_bus_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_import_bus_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_import_bus_on.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_import_bus_on.json index c1596db34..37fdae783 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_import_bus_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_import_bus_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_interface_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_interface_has_channel.json index f47216bf2..a9cdf5044 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_interface_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_interface_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_interface_on.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_interface_on.json index cd41b8f73..fddbe6753 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_interface_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_interface_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_storage_bus_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_storage_bus_has_channel.json index f47216bf2..a9cdf5044 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_storage_bus_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_storage_bus_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_storage_bus_on.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_storage_bus_on.json index cd41b8f73..fddbe6753 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_storage_bus_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_storage_bus_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/fluid_terminal_on.json b/src/main/resources/assets/appliedenergistics2/models/part/fluid_terminal_on.json index 2a2e7cdcd..37f167164 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/fluid_terminal_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/fluid_terminal_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/fluid_terminal/lights_bright", "lightsMedium": "appliedenergistics2:parts/fluid_terminal/lights_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/import_bus_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/import_bus_has_channel.json index 9ed52e0e9..5371d54c1 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/import_bus_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/import_bus_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/import_bus_on.json b/src/main/resources/assets/appliedenergistics2/models/part/import_bus_on.json index c1596db34..37fdae783 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/import_bus_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/import_bus_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/interface_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/interface_has_channel.json index f47216bf2..a9cdf5044 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/interface_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/interface_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/interface_on.json b/src/main/resources/assets/appliedenergistics2/models/part/interface_on.json index cd41b8f73..fddbe6753 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/interface_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/interface_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/interface_terminal_on.json b/src/main/resources/assets/appliedenergistics2/models/part/interface_terminal_on.json index e3fd9e2d7..7d0344a67 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/interface_terminal_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/interface_terminal_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/interface_terminal_bright", "lightsMedium": "appliedenergistics2:parts/interface_terminal_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_base_on.json b/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_base_on.json index dbbdbfe7d..16979c4a0 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_base_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_base_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "ambientocclusion": false, "textures": { "emitter": "appliedenergistics2:parts/level_emitter_on", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_status_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_status_has_channel.json index 0012ef117..e6687bb8a 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_status_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_status_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_status_on.json b/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_status_on.json index c69e5213d..2cde4bd75 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_status_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/level_emitter_status_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/monitor_base.json b/src/main/resources/assets/appliedenergistics2/models/part/monitor_base.json index 972eb2919..fcd36fd3b 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/monitor_base.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/monitor_base.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "sides": "appliedenergistics2:parts/monitor_sides", "back": "appliedenergistics2:parts/monitor_back", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/monitor_bright_on.json b/src/main/resources/assets/appliedenergistics2/models/part/monitor_bright_on.json index 707efbf87..fdfb131c0 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/monitor_bright_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/monitor_bright_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "ambientocclusion": false, "textures": { "lights": "appliedenergistics2:parts/monitor_light" diff --git a/src/main/resources/assets/appliedenergistics2/models/part/monitor_dark_on.json b/src/main/resources/assets/appliedenergistics2/models/part/monitor_dark_on.json index 3470f5eb0..e779d1355 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/monitor_dark_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/monitor_dark_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lights": "appliedenergistics2:parts/monitor_light" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/monitor_medium_on.json b/src/main/resources/assets/appliedenergistics2/models/part/monitor_medium_on.json index 47186bfee..94bc71425 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/monitor_medium_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/monitor_medium_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lights": "appliedenergistics2:parts/monitor_light" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_status_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_status_has_channel.json index 2ee5be844..843ebb8ca 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_status_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_status_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_status_on.json b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_status_on.json index 35a19bf14..f34d38cb5 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_status_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/p2p/p2p_tunnel_status_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/pattern_terminal_on.json b/src/main/resources/assets/appliedenergistics2/models/part/pattern_terminal_on.json index f78248980..471805e59 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/pattern_terminal_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/pattern_terminal_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/pattern_terminal_bright", "lightsMedium": "appliedenergistics2:parts/pattern_terminal_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/storage_bus_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/storage_bus_has_channel.json index f47216bf2..a9cdf5044 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/storage_bus_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/storage_bus_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/storage_bus_on.json b/src/main/resources/assets/appliedenergistics2/models/part/storage_bus_on.json index cd41b8f73..fddbe6753 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/storage_bus_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/storage_bus_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/storage_monitor_locked_on.json b/src/main/resources/assets/appliedenergistics2/models/part/storage_monitor_locked_on.json index 8eac15ac6..33b9156b8 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/storage_monitor_locked_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/storage_monitor_locked_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/storage_monitor_bright", "lightsMedium": "appliedenergistics2:parts/storage_monitor_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/storage_monitor_on.json b/src/main/resources/assets/appliedenergistics2/models/part/storage_monitor_on.json index bce276548..4d34b44b1 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/storage_monitor_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/storage_monitor_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/storage_monitor_bright", "lightsMedium": "appliedenergistics2:parts/storage_monitor_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/terminal_on.json b/src/main/resources/assets/appliedenergistics2/models/part/terminal_on.json index 0d4a4ee37..2bc6f135c 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/terminal_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/terminal_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "lightsBright": "appliedenergistics2:parts/terminal_bright", "lightsMedium": "appliedenergistics2:parts/terminal_medium", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/toggle_bus_status_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/toggle_bus_status_has_channel.json index f215c5d0a..bbff56e65 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/toggle_bus_status_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/toggle_bus_status_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/toggle_bus_status_on.json b/src/main/resources/assets/appliedenergistics2/models/part/toggle_bus_status_on.json index f844ecdb6..537cadbb1 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/toggle_bus_status_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/toggle_bus_status_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "indicator": "appliedenergistics2:parts/monitor_sides_status_on" }, diff --git a/src/main/resources/assets/appliedenergistics2/models/part/transition_plane_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/part/transition_plane_has_channel.json index f938e0982..d4c7f7b20 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/transition_plane_has_channel.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/transition_plane_has_channel.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "sides": "appliedenergistics2:parts/monitor_sides_status", "back": "appliedenergistics2:parts/transition_plane_back", diff --git a/src/main/resources/assets/appliedenergistics2/models/part/transition_plane_on.json b/src/main/resources/assets/appliedenergistics2/models/part/transition_plane_on.json index ea108a893..660998ec0 100644 --- a/src/main/resources/assets/appliedenergistics2/models/part/transition_plane_on.json +++ b/src/main/resources/assets/appliedenergistics2/models/part/transition_plane_on.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "sides": "appliedenergistics2:parts/monitor_sides_status", "back": "appliedenergistics2:parts/transition_plane_back", diff --git a/src/test/resources/assets/uvlightmapjsontest/models/block/uvlblock.json b/src/test/resources/assets/uvlightmapjsontest/models/block/uvlblock.json index 58c04f0a7..94093ca02 100644 --- a/src/test/resources/assets/uvlightmapjsontest/models/block/uvlblock.json +++ b/src/test/resources/assets/uvlightmapjsontest/models/block/uvlblock.json @@ -1,5 +1,5 @@ { - "ae2_uvl_marker": true, + "loader": "appliedenergistics2:uvlightmap", "textures": { "0": "block/obsidian", "1": "uvlightmapjsontest:blocks/BlockControllerLights"