From 311cc5c6f6a2d6b04f91bc2906965944054caca3 Mon Sep 17 00:00:00 2001 From: PrototypeTrousers Date: Mon, 3 Jan 2022 11:32:48 -0300 Subject: [PATCH] more oredictbus work --- .../appeng/core/api/definitions/ApiParts.java | 2 +- .../java/appeng/items/parts/PartType.java | 2 +- .../parts/misc/PartOreDicStorageBus.java | 52 +++++-- .../appliedenergistics2/lang/en_us.lang | 1 + .../models/item/part/oredict_storage_bus.json | 106 ++++++++++++++ .../models/part/oredict_storage_bus_base.json | 130 ++++++++++++++++++ .../items/part/oredict_storage_bus.png | Bin 0 -> 5439 bytes 7 files changed, 281 insertions(+), 12 deletions(-) create mode 100644 src/main/resources/assets/appliedenergistics2/models/item/part/oredict_storage_bus.json create mode 100644 src/main/resources/assets/appliedenergistics2/models/part/oredict_storage_bus_base.json create mode 100644 src/main/resources/assets/appliedenergistics2/textures/items/part/oredict_storage_bus.png diff --git a/src/main/java/appeng/core/api/definitions/ApiParts.java b/src/main/java/appeng/core/api/definitions/ApiParts.java index f6a2dbd7a..589f1fb57 100644 --- a/src/main/java/appeng/core/api/definitions/ApiParts.java +++ b/src/main/java/appeng/core/api/definitions/ApiParts.java @@ -114,7 +114,7 @@ public final class ApiParts implements IParts this.toggleBus = new DamagedItemDefinition( "part.toggle_bus", itemPart.createPart( PartType.TOGGLE_BUS ) ); this.invertedToggleBus = new DamagedItemDefinition( "part.toggle_bus.inverted", itemPart.createPart( PartType.INVERTED_TOGGLE_BUS ) ); this.storageBus = new DamagedItemDefinition( "part.bus.storage", itemPart.createPart( PartType.STORAGE_BUS ) ); - this.oreDictStorageBus = new DamagedItemDefinition( "part.bus.ore_dict_storage", itemPart.createPart( PartType.ORE_DICT_STORAGE_BUS ) ); + this.oreDictStorageBus = new DamagedItemDefinition( "part.bus.oredict_storage", itemPart.createPart( PartType.OREDICT_STORAGE_BUS ) ); this.importBus = new DamagedItemDefinition( "part.bus.import", itemPart.createPart( PartType.IMPORT_BUS ) ); this.exportBus = new DamagedItemDefinition( "part.bus.export", itemPart.createPart( PartType.EXPORT_BUS ) ); this.iface = new DamagedItemDefinition( "part.interface", itemPart.createPart( PartType.INTERFACE ) ); diff --git a/src/main/java/appeng/items/parts/PartType.java b/src/main/java/appeng/items/parts/PartType.java index 4ef2d17e0..9ad72f56d 100644 --- a/src/main/java/appeng/items/parts/PartType.java +++ b/src/main/java/appeng/items/parts/PartType.java @@ -187,7 +187,7 @@ public enum PartType STORAGE_BUS( 220, "storage_bus", EnumSet.of( AEFeature.STORAGE_BUS ), EnumSet.noneOf( IntegrationType.class ), PartStorageBus.class ), FLUID_STORAGE_BUS( 221, "fluid_storage_bus", EnumSet.of( AEFeature.FLUID_STORAGE_BUS ), EnumSet.noneOf( IntegrationType.class ), PartFluidStorageBus.class ), - ORE_DICT_STORAGE_BUS( 222, "ore_dict_storage_bus", EnumSet.of( AEFeature.STORAGE_BUS ), EnumSet.noneOf( IntegrationType.class ), PartOreDicStorageBus.class ), + OREDICT_STORAGE_BUS( 222, "oredict_storage_bus", EnumSet.of( AEFeature.STORAGE_BUS ), EnumSet.noneOf( IntegrationType.class ), PartOreDicStorageBus.class ), IMPORT_BUS( 240, "import_bus", EnumSet.of( AEFeature.IMPORT_BUS ), EnumSet.noneOf( IntegrationType.class ), PartImportBus.class ), diff --git a/src/main/java/appeng/parts/misc/PartOreDicStorageBus.java b/src/main/java/appeng/parts/misc/PartOreDicStorageBus.java index 4726ec8fb..a528eedd3 100644 --- a/src/main/java/appeng/parts/misc/PartOreDicStorageBus.java +++ b/src/main/java/appeng/parts/misc/PartOreDicStorageBus.java @@ -5,14 +5,18 @@ import appeng.api.config.*; import appeng.api.networking.storage.IBaseMonitor; import appeng.api.networking.storage.IStorageGrid; import appeng.api.networking.ticking.ITickManager; +import appeng.api.parts.IPartModel; import appeng.api.storage.IMEInventory; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEItemStack; +import appeng.core.AppEng; import appeng.core.sync.GuiBridge; +import appeng.items.parts.PartModels; import appeng.me.GridAccessException; import appeng.me.cache.GridStorageCache; import appeng.me.storage.ITickingMonitor; import appeng.me.storage.MEInventoryHandler; +import appeng.parts.PartModel; import appeng.util.ConfigManager; import appeng.util.Platform; import appeng.util.item.OreHelper; @@ -22,11 +26,21 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.Vec3d; public class PartOreDicStorageBus extends PartStorageBus { + public static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "part/oredict_storage_bus_base" ); + @PartModels + public static final IPartModel MODELS_OFF = new PartModel( MODEL_BASE, new ResourceLocation( AppEng.MOD_ID, "part/storage_bus_off" ) ); + @PartModels + public static final IPartModel MODELS_ON = new PartModel( MODEL_BASE, new ResourceLocation( AppEng.MOD_ID, "part/storage_bus_on" ) ); + @PartModels + public static final IPartModel MODELS_HAS_CHANNEL = new PartModel( MODEL_BASE, new ResourceLocation( AppEng.MOD_ID, "part/storage_bus_has_channel" ) ); + + public String oreMatch; OreDictPriorityList priorityList; @@ -35,6 +49,21 @@ public class PartOreDicStorageBus extends PartStorageBus super( is ); } + @Override + public void readFromNBT( NBTTagCompound data ) + { + super.readFromNBT( data ); + this.oreMatch = data.getString( "oreMatch" ); + this.priorityList = new OreDictPriorityList<>( OreHelper.INSTANCE.getMatchingOre( oreMatch ), oreMatch ); + } + + @Override + public void writeToNBT( NBTTagCompound data ) + { + super.writeToNBT( data ); + data.setString( "oreMatch", oreMatch ); + } + @Override public boolean onPartActivate( final EntityPlayer player, final EnumHand hand, final Vec3d pos ) { @@ -167,17 +196,20 @@ public class PartOreDicStorageBus extends PartStorageBus } @Override - public void readFromNBT( NBTTagCompound data ) + public IPartModel getStaticModels() { - super.readFromNBT( data ); - this.oreMatch = data.getString( "oreMatch" ); - this.priorityList = new OreDictPriorityList<>( OreHelper.INSTANCE.getMatchingOre( oreMatch ), oreMatch ); + if( this.isActive() && this.isPowered() ) + { + return MODELS_HAS_CHANNEL; + } + else if( this.isPowered() ) + { + return MODELS_ON; + } + else + { + return MODELS_OFF; + } } - @Override - public void writeToNBT( NBTTagCompound data ) - { - super.writeToNBT( data ); - data.setString( "oreMatch", oreMatch ); - } } diff --git a/src/main/resources/assets/appliedenergistics2/lang/en_us.lang b/src/main/resources/assets/appliedenergistics2/lang/en_us.lang index f787ef652..eb4f02201 100644 --- a/src/main/resources/assets/appliedenergistics2/lang/en_us.lang +++ b/src/main/resources/assets/appliedenergistics2/lang/en_us.lang @@ -539,6 +539,7 @@ item.appliedenergistics2.multi_part.pattern_terminal.name=ME Pattern Terminal item.appliedenergistics2.multi_part.expanded_processing_pattern_terminal.name=ME Extended Processing Pattern Terminal item.appliedenergistics2.multi_part.quartz_fiber.name=Quartz Fiber item.appliedenergistics2.multi_part.storage_bus.name=ME Storage Bus +item.appliedenergistics2.multi_part.oredict_storage_bus.name=ME OreDict Storage Bus item.appliedenergistics2.multi_part.fluid_storage_bus.name=ME Fluid Storage Bus item.appliedenergistics2.multi_part.terminal.name=ME Terminal item.appliedenergistics2.multi_part.inverted_toggle_bus.name=ME Inverted Toggle Bus diff --git a/src/main/resources/assets/appliedenergistics2/models/item/part/oredict_storage_bus.json b/src/main/resources/assets/appliedenergistics2/models/item/part/oredict_storage_bus.json new file mode 100644 index 000000000..80d1dd036 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/part/oredict_storage_bus.json @@ -0,0 +1,106 @@ +{ + "parent": "appliedenergistics2:item/part/part", + "textures": { + "sides": "appliedenergistics2:parts/storage_bus_sides", + "back": "appliedenergistics2:parts/storage_bus_back", + "front": "appliedenergistics2:items/part/oredict_storage_bus" + }, + "elements": [ + { + "from": [ + 3, + 3, + 6 + ], + "to": [ + 13, + 13, + 7 + ], + "faces": { + "north": { + "texture": "#front" + }, + "south": { + "texture": "#back" + }, + "east": { + "texture": "#sides" + }, + "west": { + "texture": "#sides" + }, + "up": { + "texture": "#sides" + }, + "down": { + "texture": "#sides" + } + } + }, + { + "from": [ + 2, + 2, + 7 + ], + "to": [ + 14, + 14, + 8 + ], + "faces": { + "north": { + "texture": "#front" + }, + "south": { + "texture": "#back" + }, + "east": { + "texture": "#sides" + }, + "west": { + "texture": "#sides" + }, + "up": { + "texture": "#sides" + }, + "down": { + "texture": "#sides" + } + } + }, + { + "from": [ + 5, + 5, + 8 + ], + "to": [ + 11, + 11, + 10 + ], + "faces": { + "north": { + "texture": "#front" + }, + "south": { + "texture": "#back" + }, + "east": { + "texture": "#sides" + }, + "west": { + "texture": "#sides" + }, + "up": { + "texture": "#sides" + }, + "down": { + "texture": "#sides" + } + } + } + ] +} diff --git a/src/main/resources/assets/appliedenergistics2/models/part/oredict_storage_bus_base.json b/src/main/resources/assets/appliedenergistics2/models/part/oredict_storage_bus_base.json new file mode 100644 index 000000000..d425de5fd --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/part/oredict_storage_bus_base.json @@ -0,0 +1,130 @@ +{ + "textures": { + "sides": "appliedenergistics2:parts/storage_bus_sides", + "sidesStatus": "appliedenergistics2:parts/monitor_sides_status", + "back": "appliedenergistics2:parts/storage_bus_back", + "front": "appliedenergistics2:items/part/oredict_storage_bus", + "particle": "appliedenergistics2:parts/storage_bus_back" + }, + "elements": [ + { + "from": [ + 3, + 3, + 0 + ], + "to": [ + 13, + 13, + 1 + ], + "faces": { + "down": { + "texture": "#sides" + }, + "up": { + "texture": "#sides" + }, + "south": { + "texture": "#back" + }, + "east": { + "texture": "#sides" + }, + "north": { + "texture": "#front" + }, + "west": { + "texture": "#sides" + } + } + }, + { + "from": [ + 2, + 2, + 1 + ], + "to": [ + 14, + 14, + 2 + ], + "faces": { + "down": { + "texture": "#sides" + }, + "up": { + "texture": "#sides" + }, + "south": { + "texture": "#back" + }, + "east": { + "texture": "#sides" + }, + "north": { + "texture": "#front" + }, + "west": { + "texture": "#sides" + } + } + }, + { + "from": [ + 5, + 5, + 3 + ], + "to": [ + 11, + 11, + 4 + ], + "faces": { + "down": { + "texture": "#sides" + }, + "up": { + "texture": "#sides" + }, + "south": { + "texture": "#back" + }, + "east": { + "texture": "#sides" + }, + "west": { + "texture": "#sides" + } + } + }, + { + "from": [ + 5, + 5, + 2 + ], + "to": [ + 11, + 11, + 3 + ], + "faces": { + "down": { + "texture": "#sides" + }, + "up": { + "texture": "#sides" + }, + "east": { + "texture": "#sides" + }, + "west": { + "texture": "#sides" + } + } + } + ] +} diff --git a/src/main/resources/assets/appliedenergistics2/textures/items/part/oredict_storage_bus.png b/src/main/resources/assets/appliedenergistics2/textures/items/part/oredict_storage_bus.png new file mode 100644 index 0000000000000000000000000000000000000000..ba24c0448eba7c92e7774d4125b49c1f7b0fb8de GIT binary patch literal 5439 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