From 83d661ab2a72119f2941b1d306639b220efc6158 Mon Sep 17 00:00:00 2001 From: "A. Regnander" Date: Mon, 20 Jul 2020 21:33:44 +0200 Subject: [PATCH 01/18] Create sv_se.json (#4485) --- .../appliedenergistics2/lang/sv_se.json | 708 ++++++++++++++++++ 1 file changed, 708 insertions(+) create mode 100644 src/main/resources/assets/appliedenergistics2/lang/sv_se.json diff --git a/src/main/resources/assets/appliedenergistics2/lang/sv_se.json b/src/main/resources/assets/appliedenergistics2/lang/sv_se.json new file mode 100644 index 000000000..3ce21b9df --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/lang/sv_se.json @@ -0,0 +1,708 @@ +{ + "achievement.ae2.ChargedQuartz": "Chockerande", + "achievement.ae2.ChargedQuartz.desc": "Hitta uppladdad kvarts", + "achievement.ae2.Charger": "Fluixproduktion", + "achievement.ae2.Charger.desc": "Tillverka en uppladdare", + "achievement.ae2.Compass": "Meteoritjägare", + "achievement.ae2.Compass.desc": "Tillverka en meteoritkompass", + "achievement.ae2.Controller": "Kontrollpanel för nätverk", + "achievement.ae2.Controller.desc": "Tillverka en kontroll", + "achievement.ae2.CraftingCPU": "Nästa generationens tillverkning", + "achievement.ae2.CraftingCPU.desc": "Tillverka en tillverkningsenhet", + "achievement.ae2.CraftingTerminal": "Ett (mycket) större bord", + "achievement.ae2.CraftingTerminal.desc": "Tillverka en tillverkningsterminal", + "achievement.ae2.CrystalGrowthAccelerator": "Accelerering är en underdrift", + "achievement.ae2.CrystalGrowthAccelerator.desc": "Tillverka en kristallutvidgningsaccelerator", + "achievement.ae2.Facade": "Nätverksestetik", + "achievement.ae2.Facade.desc": "Tillverka en kabelfasad", + "achievement.ae2.Fluix": "Onaturligt", + "achievement.ae2.Fluix.desc": "Skapa fluixkristaller", + "achievement.ae2.GlassCable": "Fluixenergianslutning", + "achievement.ae2.GlassCable.desc": "Tillverka en ME-glaskabel", + "achievement.ae2.IOPort": "Lagringscellstango", + "achievement.ae2.IOPort.desc": "Tillverka en IO-port", + "achievement.ae2.NetworkTool": "Nätverksdiagnostik", + "achievement.ae2.NetworkTool.desc": "Tillverka ett nätverksverktyg", + "achievement.ae2.Networking1": "Nätverkslärling", + "achievement.ae2.Networking1.desc": "Låt 8 kanaler använda enheter i ett nätverk.", + "achievement.ae2.Networking2": "Nätverksingenjör", + "achievement.ae2.Networking2.desc": "Låt 128 kanaler använda enheter i ett nätverk.", + "achievement.ae2.Networking3": "Nätverksadministratör", + "achievement.ae2.Networking3.desc": "Låt 2048 kanaler använda enheter i ett nätverk.", + "achievement.ae2.P2P": "Punkt till punkt-nätverk", + "achievement.ae2.P2P.desc": "Tillverka en P2P-tunnel", + "achievement.ae2.PatternTerminal": "Tillverkningsmästare", + "achievement.ae2.PatternTerminal.desc": "Tillverka en mönsterterminal", + "achievement.ae2.PortableCell": "Lagringsnomad", + "achievement.ae2.PortableCell.desc": "Tillverka en portabel cell", + "achievement.ae2.Presses": "Okänd teknologi", + "achievement.ae2.Presses.desc": "Hitta en processorpress", + "achievement.ae2.QNB": "Kvantumtunnlar", + "achievement.ae2.QNB.desc": "Tillverka en kvantumlänk", + "achievement.ae2.Recursive": "Rekursivt nätverk", + "achievement.ae2.Recursive.desc": "Placera ett gränssnitt på en lagringsbuss.", + "achievement.ae2.Root": "Applied Energistics", + "achievement.ae2.Root.desc": "När en kista helt enkelt inte räcker till.", + "achievement.ae2.SpatialIO": "Rumskoordination", + "achievement.ae2.SpatialIO.desc": "Tillverka en spatial IO-port", + "achievement.ae2.SpatialIOExplorer": "Mot nya djärva mål", + "achievement.ae2.SpatialIOExplorer.desc": "Lagra i en spatial lagringscell", + "achievement.ae2.StorageBus": "Gränslös potential", + "achievement.ae2.StorageBus.desc": "Tillverka en lagringsbuss", + "achievement.ae2.StorageCell": "Bättre än kistor", + "achievement.ae2.StorageCell.desc": "Tillverka en lagringscell", + "appliedenergistics2.permission_denied": "Du saknar behörighet för att komma åt detta.", + "block.appliedenergistics2.cable_bus": "AE2-kabel och/eller -buss", + "block.appliedenergistics2.cell_workbench": "Cellarbetsbänk", + "block.appliedenergistics2.charged_quartz_ore": "Uppladdad certuskvartsmalm", + "block.appliedenergistics2.charger": "Uppladdare", + "block.appliedenergistics2.chest": "ME-kista", + "block.appliedenergistics2.chiseled_quartz_block": "Mejslat certuskvartsblock", + "block.appliedenergistics2.chiseled_quartz_slab": "Mejslad certuskvartsplatta", + "block.appliedenergistics2.chiseled_quartz_stairs": "Mejslad certuskvartstrappa", + "block.appliedenergistics2.condenser": "Materiakondensator", + "block.appliedenergistics2.controller": "ME-kontroll", + "block.appliedenergistics2.crafting_accelerator": "Medbearbetande tillverkningsenhet", + "block.appliedenergistics2.crafting_monitor": "Tillverkningsskärm", + "block.appliedenergistics2.16k_crafting_storage": "Tillverkningslagring (16k)", + "block.appliedenergistics2.1k_crafting_storage": "Tillverkningslagring (1k)", + "block.appliedenergistics2.4k_crafting_storage": "Tillverkningslagring (4k)", + "block.appliedenergistics2.64k_crafting_storage": "Tillverkningslagring (64k)", + "block.appliedenergistics2.crafting_unit": "Tillverkningsenhet", + "block.appliedenergistics2.crank": "Trävev", + "block.appliedenergistics2.creative_energy_cell": "Kreativ energicell", + "block.appliedenergistics2.debug_chunk_loader": "Dev.ChunkLoader", + "block.appliedenergistics2.debug_cube_gen": "Dev.CubeGen", + "block.appliedenergistics2.debug_energy_gen": "Dev.EnergyGen", + "block.appliedenergistics2.debug_item_gen": "Dev.ItemGen", + "block.appliedenergistics2.debug_phantom_node": "Dev.PhantomNode", + "block.appliedenergistics2.dense_energy_cell": "Kompakt energicell", + "block.appliedenergistics2.drive": "ME-hårddisk", + "block.appliedenergistics2.energy_acceptor": "Energiaccepterare", + "block.appliedenergistics2.energy_cell": "Energicell", + "block.appliedenergistics2.fluid_interface": "ME-gränssnitt för vätska", + "block.appliedenergistics2.fluix_block": "Fluixblock", + "block.appliedenergistics2.fluix_slab": "Fluixplatta", + "block.appliedenergistics2.fluix_stairs": "Fluixtrappa", + "block.appliedenergistics2.grindstone": "Kvartsslipsten", + "block.appliedenergistics2.inscriber": "Pressmaskin", + "block.appliedenergistics2.interface": "ME-gränssnitt", + "block.appliedenergistics2.io_port": "IO-port för ME", + "block.appliedenergistics2.light_detector": "Ljusupptäckande fixtur", + "block.appliedenergistics2.matrix_frame": "Matrisram", + "block.appliedenergistics2.molecular_assembler": "Molekylär montör", + "block.appliedenergistics2.quantum_link": "ME-kvantumlänkskammare", + "block.appliedenergistics2.quantum_ring": "ME-kvantumring", + "block.appliedenergistics2.quartz_block": "Certuskvartsblock", + "block.appliedenergistics2.quartz_fixture": "Uppladdad kvartsfixtur", + "block.appliedenergistics2.quartz_glass": "Kvartsglas", + "block.appliedenergistics2.quartz_growth_accelerator": "Kristallutvidgningsaccelerator", + "block.appliedenergistics2.quartz_ore": "Certuskvartsmalm", + "block.appliedenergistics2.quartz_pillar": "Certuskvartspelare", + "block.appliedenergistics2.quartz_pillar_slab": "Certuskvartspelarplatta", + "block.appliedenergistics2.quartz_pillar_stairs": "Certuskvartspelartrappa", + "block.appliedenergistics2.quartz_slab": "Certuskvartsplatta", + "block.appliedenergistics2.quartz_stairs": "Certuskvartstrappa", + "block.appliedenergistics2.quartz_vibrant_glass": "Livfullt kvartsglas", + "block.appliedenergistics2.security_station": "ME-säkerhetsterminal", + "block.appliedenergistics2.sky_compass": "Meteoritkompass", + "block.appliedenergistics2.sky_stone_block": "Himmelsten", + "block.appliedenergistics2.sky_stone_brick": "Himmelstenstegel", + "block.appliedenergistics2.sky_stone_brick_slab": "Himmelstenstegelplatta", + "block.appliedenergistics2.sky_stone_brick_stairs": "Himmelstenstegeltrappa", + "block.appliedenergistics2.sky_stone_chest": "Himmelstenskista", + "block.appliedenergistics2.sky_stone_slab": "Himmelstensplatta", + "block.appliedenergistics2.sky_stone_small_brick": "Himmelsten med litet tegel", + "block.appliedenergistics2.sky_stone_small_brick_slab": "Himmelstensplatta med litet tegel", + "block.appliedenergistics2.sky_stone_small_brick_stairs": "Himmelstenstrappa med litet tegel", + "block.appliedenergistics2.sky_stone_stairs": "Himmelstenstrappa", + "block.appliedenergistics2.smooth_sky_stone_block": "Himmelstensblock", + "block.appliedenergistics2.smooth_sky_stone_chest": "Himmelstensblockkista", + "block.appliedenergistics2.smooth_sky_stone_slab": "Himmelstensblockplatta", + "block.appliedenergistics2.smooth_sky_stone_stairs": "Himmelstensblocktrappa", + "block.appliedenergistics2.spatial_io_port": "Spatial IO-port", + "block.appliedenergistics2.spatial_pylon": "Spatial pylon", + "block.appliedenergistics2.tiny_tnt": "Liten dynamit", + "block.appliedenergistics2.vibration_chamber": "Vibrationskammare", + "block.appliedenergistics2.wireless_access_point": "Trådlös ME-åtkomstpunkt", + "chat.appliedenergistics2.AmmoDepleted": "Slut på ammunition.", + "chat.appliedenergistics2.ChestCannotReadStorageCell": "ME-kista kan inte läsa lagringscell.", + "chat.appliedenergistics2.CommunicationError": "Fel uppstod under kommunikation med nätverket.", + "chat.appliedenergistics2.DeviceNotLinked": "Enheten är inte länkad.", + "chat.appliedenergistics2.DeviceNotPowered": "Enheten har för lite ström.", + "chat.appliedenergistics2.DeviceNotWirelessTerminal": "Enheten är inte en trådlös terminal.", + "chat.appliedenergistics2.InvalidMachine": "Ogiltig maskin.", + "chat.appliedenergistics2.LoadedSettings": "Läste in enhetskonfiguration från minneskortet.", + "chat.appliedenergistics2.MachineNotPowered": "Maskinen har ingen energi.", + "chat.appliedenergistics2.OutOfRange": "Trådlös anslutning är utom räckhåll.", + "chat.appliedenergistics2.ResetSettings": "Ny enhetskonfiguration skapades och kopierades till minneskortet.", + "chat.appliedenergistics2.SavedSettings": "Kopierade nuvarande enhetskonfiguration till minneskortet.", + "chat.appliedenergistics2.SettingCleared": "Minneskortet rensades.", + "chat.appliedenergistics2.StationCanNotBeLocated": "Stationen kan inte hittas.", + "chat.appliedenergistics2.isNowLocked": "Skärmen är nu låst.", + "chat.appliedenergistics2.isNowUnlocked": "Skärmen är nu upplåst.", + "commands.ae2.ChunkLoggerOff": "Loggning av datablock har inaktiverats", + "commands.ae2.ChunkLoggerOn": "Loggning av datablock har aktiverats", + "commands.ae2.permissions": "Du har inte tillräckliga behörigheter för att köra detta kommando.", + "commands.ae2.usage": "Kommandon som Applied Energistics 2 tillhandahåller - använd \"/ae2 list\" för en lista och \"/ae2 help _____\" för hjälp med ett kommando.", + "gui.appliedenergistics2.And": "och", + "gui.appliedenergistics2.Automatic": "Automatisk", + "gui.appliedenergistics2.Black": "Svart", + "gui.appliedenergistics2.Blank": "Blankt", + "gui.appliedenergistics2.Blue": "Blå", + "gui.appliedenergistics2.Brown": "Brun", + "gui.appliedenergistics2.Bytes": "Lagring", + "gui.appliedenergistics2.BytesUsed": "Byte används", + "gui.appliedenergistics2.CPUs": "Processor", + "gui.appliedenergistics2.CalculatingWait": "Beräknar, var god vänta...", + "gui.appliedenergistics2.Cancel": "Avbryt", + "gui.appliedenergistics2.CellWorkbench": "Cellarbetsbänk", + "gui.appliedenergistics2.ChargedQuartz": "Uppladdad certuskvarts tillverkas genom att stoppa in en ouppladdad certuskvarts- kristall i en uppladdare och sedan förse den med energi.", + "gui.appliedenergistics2.ChargedQuartzFind": "Uppladdad certuskvarts kan hittas runt om i världen, men är ganska sällsynt och liknar vanlig certuskvarts bortsett från att den gnistrar.", + "gui.appliedenergistics2.Chest": "ME-kista", + "gui.appliedenergistics2.Clean": "Rensa", + "gui.appliedenergistics2.CoProcessors": "Medprocessorer", + "gui.appliedenergistics2.Condenser": "Materiakondensator", + "gui.appliedenergistics2.Config": "Konfiguration", + "gui.appliedenergistics2.CopyMode": "Kopieringsläge", + "gui.appliedenergistics2.CopyModeDesc": "Kontrollerar om konfigurationspanelens innehållet rensas när du tar bort cellen.", + "gui.appliedenergistics2.Crafting": "Tillverkning", + "gui.appliedenergistics2.CraftingCPU": "Tillverkningsprocessor", + "gui.appliedenergistics2.CraftingPattern": "Tillverkningsmönster", + "gui.appliedenergistics2.CraftingPlan": "Tillverkningsplan", + "gui.appliedenergistics2.CraftingStatus": "Tillverkningsstatus", + "gui.appliedenergistics2.CraftingTerminal": "Tillverkningsterminal", + "gui.appliedenergistics2.Crafts": "Tillverkar", + "gui.appliedenergistics2.Creates": "Skapar", + "gui.appliedenergistics2.Cyan": "Turkos", + "gui.appliedenergistics2.Drive": "ME-hårddisk", + "gui.appliedenergistics2.ETAFormat": "HH:mm:ss", + "gui.appliedenergistics2.Efficiency": "Effektivitet", + "gui.appliedenergistics2.Empty": "Tom", + "gui.appliedenergistics2.Unformatted": "Oformaterad", + "gui.appliedenergistics2.SerialNumber": "Serienummer: %s", + "gui.appliedenergistics2.Encoded": "Kodad", + "gui.appliedenergistics2.EnergyDrain": "Passiv dränering", + "gui.appliedenergistics2.Excluded": "Exkluderad", + "gui.appliedenergistics2.ExportBus": "ME-exportbuss", + "gui.appliedenergistics2.ExportBusFluids": "ME-exportbuss för vätska", + "gui.appliedenergistics2.FacadeCrafting": "Fasadtillverkning", + "gui.appliedenergistics2.FluidFormationPlane": "Formationsplatta för vätska", + "gui.appliedenergistics2.FluidInterface": "ME-gränssnitt för vätska", + "gui.appliedenergistics2.FluidLevelEmitter": "ME-nivåavgivare för vätska", + "gui.appliedenergistics2.Fluix": "Fluix", + "gui.appliedenergistics2.FormationPlane": "Formationsplatta", + "gui.appliedenergistics2.FromStorage": "Tillgänglig", + "gui.appliedenergistics2.Fuzzy": "Suddig", + "gui.appliedenergistics2.Gray": "Grå", + "gui.appliedenergistics2.Green": "Grön", + "gui.appliedenergistics2.GrindStone": "Slipsten", + "gui.appliedenergistics2.IOBuses": "ME-import/exportbuss", + "gui.appliedenergistics2.IOBusesFluids": "ME-import/exportbuss för vätska", + "gui.appliedenergistics2.IOPort": "IO-port för ME", + "gui.appliedenergistics2.ImportBus": "ME-importbuss", + "gui.appliedenergistics2.ImportBusFluids": "ME-importbuss för vätska", + "gui.appliedenergistics2.InWorldCrafting": "Tillverka i världen med AE2", + "gui.appliedenergistics2.Included": "Inkluderad", + "gui.appliedenergistics2.Inscriber": "Pressmaskin", + "gui.appliedenergistics2.Installed": "Installerad", + "gui.appliedenergistics2.Interface": "ME-gränssnitt", + "gui.appliedenergistics2.InterfaceTerminal": "Gränssnittsterminal", + "gui.appliedenergistics2.InterfaceTerminalHint": "Visa eller dölj i gränssnittsterminal.", + "gui.appliedenergistics2.InvalidPattern": "Ogiltigt mönster", + "gui.appliedenergistics2.LargeFontCraft": "+", + "gui.appliedenergistics2.LevelEmitter": "ME-nivåavgivare", + "gui.appliedenergistics2.LightBlue": "Ljusblå", + "gui.appliedenergistics2.LightGray": "Ljusgrå", + "gui.appliedenergistics2.Lime": "Limegrön", + "gui.appliedenergistics2.Linked": "Länkad", + "gui.appliedenergistics2.Lumen": "Lumen", + "gui.appliedenergistics2.Magenta": "Ljuslila", + "gui.appliedenergistics2.MaxPower": "Maximal ström", + "gui.appliedenergistics2.Missing": "Saknas", + "gui.appliedenergistics2.MolecularAssembler": "Molekylmontör", + "gui.appliedenergistics2.MultipleOutputs": "%1$d %% sekundär, %2$d %% tertiär utmatning.", + "gui.appliedenergistics2.NetworkDetails": "Nätverksdetaljer", + "gui.appliedenergistics2.NetworkTool": "Nätverksverktyg", + "gui.appliedenergistics2.Next": "Nästa", + "gui.appliedenergistics2.No": "Nej", + "gui.appliedenergistics2.NoCraftingCPUs": "Inga tillgängliga tillverkningsprocessorer", + "gui.appliedenergistics2.NoCraftingJobs": "Inga aktiva tillverkningsjobb", + "gui.appliedenergistics2.NoPermissions": "Inga behörigheter har valts", + "gui.appliedenergistics2.NoSecondOutput": "Ingen sekundär utmatning", + "gui.appliedenergistics2.Nothing": "Ingenting", + "gui.appliedenergistics2.OCTunnel": "OpenComputers", + "gui.appliedenergistics2.Of": "av", + "gui.appliedenergistics2.OfSecondOutput": "%1$d %% chans för sekundär utmatning.", + "gui.appliedenergistics2.Orange": "Orange", + "gui.appliedenergistics2.Partitioned": "Partitionerad", + "gui.appliedenergistics2.PatternTerminal": "Mönsterterminal", + "gui.appliedenergistics2.Patterns": "Mönster", + "gui.appliedenergistics2.Pink": "Rosa", + "gui.appliedenergistics2.PortableCell": "Portabel cell", + "gui.appliedenergistics2.PowerInputRate": "Energigenerering", + "gui.appliedenergistics2.PowerUsageRate": "Energianvändning", + "gui.appliedenergistics2.Precise": "Exakt", + "gui.appliedenergistics2.PressureTunnel": "Tryck", + "gui.appliedenergistics2.Priority": "Prioritet", + "gui.appliedenergistics2.ProcessingPattern": "Bearbetningsmönster", + "gui.appliedenergistics2.Purple": "Lila", + "gui.appliedenergistics2.QuantumLinkChamber": "Kvantumlänkskammare", + "gui.appliedenergistics2.QuartzCuttingKnife": "Kvartskniv", + "gui.appliedenergistics2.Range": "Intervall", + "gui.appliedenergistics2.Red": "Röd", + "gui.appliedenergistics2.RequiredPower": "Nödvändig ström", + "gui.appliedenergistics2.SCSInvalid": "Ogiltig", + "gui.appliedenergistics2.SCSSize": "SCS-storlek", + "gui.appliedenergistics2.Scheduled": "Schemalagd", + "gui.appliedenergistics2.Security": "Säk.terminal", + "gui.appliedenergistics2.SecurityCardEditor": "Biometrisk kortredigerare", + "gui.appliedenergistics2.SelectAmount": "Välj mängd", + "gui.appliedenergistics2.Simulation": "Simulering", + "gui.appliedenergistics2.SkyChest": "Himmelstenskista", + "gui.appliedenergistics2.SmallFontCraft": "Tillverka", + "gui.appliedenergistics2.SpatialIOPort": "Spatial IO-port", + "gui.appliedenergistics2.Start": "Start", + "gui.appliedenergistics2.StorageBus": "Lagringsbuss", + "gui.appliedenergistics2.StorageBusFluids": "Lagringsbuss för vätska", + "gui.appliedenergistics2.StorageCells": "ME-lagringsceller", + "gui.appliedenergistics2.Stored": "Lagrad", + "gui.appliedenergistics2.StoredEnergy": "Lagrad energi", + "gui.appliedenergistics2.StoredFluids": "Lagrad vätska", + "gui.appliedenergistics2.StoredItems": "Lagrade föremål", + "gui.appliedenergistics2.StoredPower": "Lagrad ström", + "gui.appliedenergistics2.StoredSize": "Lagrad storlek: %dx%dx%d", + "gui.appliedenergistics2.SpatialCapacity": "Kapacitet: %dx%dx%d", + "gui.appliedenergistics2.Stores": "Lagrar", + "gui.appliedenergistics2.Substitute": "Använder ersättning:", + "gui.appliedenergistics2.Terminal": "Terminal", + "gui.appliedenergistics2.ToCraft": "Att tillverka", + "gui.appliedenergistics2.TransparentFacades": "Genomskinliga fasader", + "gui.appliedenergistics2.TransparentFacadesHint": "Kontrollerar synligheten för fasader när nätverksverktyget är inuti din föremålsmeny.", + "gui.appliedenergistics2.Types": "typer", + "gui.appliedenergistics2.Unlinked": "Olänkad", + "gui.appliedenergistics2.VibrationChamber": "Vibrationskammare", + "gui.appliedenergistics2.White": "Vit", + "gui.appliedenergistics2.Wireless": "Trådlös åtkomstpunkt", + "gui.appliedenergistics2.WirelessTerminal": "Trådlös terminal", + "gui.appliedenergistics2.With": "med", + "gui.appliedenergistics2.Yellow": "Gul", + "gui.appliedenergistics2.Yes": "Ja", + "gui.appliedenergistics2.inWorldCraftingPresses": "Tillverkningspressar finns inuti meteoriter som kan hittas runtomkring i världen, vilket i sin tur kan hittas med hjälp av en meteoritkompass.", + "gui.appliedenergistics2.inWorldFluix": "Släpp 1 uppladdad certus- kvartskristall + 1 netherkvarts + redstonedamm i en vattenpöl och vänta en stund för att få 2 fluixkristaller.", + "gui.appliedenergistics2.inWorldPurificationCertus": "Släpp ett certuskvartsfrö som skapas ifrån certuskvartdamm och sand i en vattenpöl; lägg till kristallutvidgnings- acceleratorer för att snabba på processen.", + "gui.appliedenergistics2.inWorldPurificationFluix": "Släpp ett fluixfrö som skapas ifrån fluixdamm och sand i en vattenpöl; lägg till kristall- utvidgningsacceleratorer för att snabba på processen.", + "gui.appliedenergistics2.inWorldPurificationNether": "Släpp ett netherkvartsfrö som skapas ifrån netherkvartdamm och sand i en vattenpöl; lägg till kristallutvidgnings- acceleratorer för att snabba på processen.", + "gui.appliedenergistics2.inWorldSingularity": "Släpp 1 singularitet samt 1 enderdamm på marken och orsaka sedan en explosion i närheten av föremålen.", + "gui.appliedenergistics2.security.build.name": "Bygga", + "gui.appliedenergistics2.security.build.tip": "Användare kan ändra nätverkets fysiska struktur och ändra konfigurationen.", + "gui.appliedenergistics2.security.craft.name": "Tillverka", + "gui.appliedenergistics2.security.craft.tip": "Användare kan starta nya tillverkningsjobb.", + "gui.appliedenergistics2.security.extract.name": "Ta ut", + "gui.appliedenergistics2.security.extract.tip": "Användare får ta bort föremål från lagringen.", + "gui.appliedenergistics2.security.inject.name": "Sätta in", + "gui.appliedenergistics2.security.inject.tip": "Användare får lagra nya föremål i lagringen.", + "gui.appliedenergistics2.security.security.name": "Säkerhet", + "gui.appliedenergistics2.security.security.tip": "Användare kan komma åt och ändra nätverkets säkerhetsterminal.", + "gui.appliedenergistics2.units.appliedenergstics": "AE", + "gui.appliedenergistics2.units.ic2": "Energy Units", + "gui.appliedenergistics2.units.rf": "Redstone Flux", + "gui.tooltips.appliedenergistics2.ActiveOnPulse": "Aktivera en gång per puls", + "gui.tooltips.appliedenergistics2.ActiveWithSignal": "Aktiv med signal", + "gui.tooltips.appliedenergistics2.ActiveWithoutSignal": "Aktiv utan signal", + "gui.tooltips.appliedenergistics2.AlwaysActive": "Alltid aktiv", + "gui.tooltips.appliedenergistics2.BlockPlacement": "Blockplacering", + "gui.tooltips.appliedenergistics2.BlockPlacementNo": "Blocken kommer att släppas som föremål.", + "gui.tooltips.appliedenergistics2.BlockPlacementYes": "Blocken kommer att placeras som block.", + "gui.tooltips.appliedenergistics2.Blocking": "Flytta inte tillverkningsföremål om utrustning innehåller föremål.", + "gui.tooltips.appliedenergistics2.Clear": "Rensa", + "gui.tooltips.appliedenergistics2.ClearSettings": "Rensa konfigurationer/inställningar", + "gui.tooltips.appliedenergistics2.CondenserOutput": "ME-kondensator - Utmatning", + "gui.tooltips.appliedenergistics2.Craft": "Tillverkningsbeteende", + "gui.tooltips.appliedenergistics2.CraftEither": "Använd lagrade föremål eller tillverka föremål under export.", + "gui.tooltips.appliedenergistics2.CraftOnly": "Använd inte lagrade föremål, tillverka endast föremål under export.", + "gui.tooltips.appliedenergistics2.CraftViaRedstone": "Avge redstone för att tillverka föremål.", + "gui.tooltips.appliedenergistics2.Craftable": "Tillverkningsbara", + "gui.tooltips.appliedenergistics2.Disabled": "Inaktiverad", + "gui.tooltips.appliedenergistics2.DoesntDespawn": "Detta föremål kommer inte försvinna.", + "gui.tooltips.appliedenergistics2.EmitLevelAbove": "Avge när nivåerna är ovan eller lika med gränsen.", + "gui.tooltips.appliedenergistics2.EmitLevelsBelow": "Avge när nivåerna är under gränsen.", + "gui.tooltips.appliedenergistics2.EmitWhenCrafting": "Avge redstone när föremål tillverkas.", + "gui.tooltips.appliedenergistics2.EmitterMode": "Tillverkaravgivarläge", + "gui.tooltips.appliedenergistics2.Enable": "Aktiverad", + "gui.tooltips.appliedenergistics2.Encode": "Kodningsmönster", + "gui.tooltips.appliedenergistics2.EncodeDescription": "Skriv det angivna mönstret till det nuvarande kodade mönstret eller till tillgängliga blanka mönster.", + "gui.tooltips.appliedenergistics2.FZIgnoreAll": "Matcha allting", + "gui.tooltips.appliedenergistics2.FZPercent_25": "Fördela skada vid 25 %%", + "gui.tooltips.appliedenergistics2.FZPercent_50": "Fördela skada vid 50 %%", + "gui.tooltips.appliedenergistics2.FZPercent_75": "Fördela skada vid 75 %%", + "gui.tooltips.appliedenergistics2.FZPercent_99": "Fördela skada vid 99 %%", + "gui.tooltips.appliedenergistics2.FilterMode": "Sökfiltersläge", + "gui.tooltips.appliedenergistics2.FilterModeClear": "Rensa vid varje öppning.", + "gui.tooltips.appliedenergistics2.FilterModeKeep": "Återställ föregående sökfilter.", + "gui.tooltips.appliedenergistics2.FuzzyMode": "Suddig jämförelse", + "gui.tooltips.appliedenergistics2.IOMode": "In-/utmatningsläge", + "gui.tooltips.appliedenergistics2.InterfaceBlockingMode": "Blockeringsläge", + "gui.tooltips.appliedenergistics2.InterfaceCraftingMode": "Tillverkningsläge", + "gui.tooltips.appliedenergistics2.InventoryTweaks": "Utrustningsjusteringar", + "gui.tooltips.appliedenergistics2.ItemName": "Föremålsnamn", + "gui.tooltips.appliedenergistics2.ItemsRequestable": "Begärbara föremål: %s", + "gui.tooltips.appliedenergistics2.ItemsStored": "Lagrade föremål: %s", + "gui.tooltips.appliedenergistics2.LevelType": "Nivåtyp", + "gui.tooltips.appliedenergistics2.LevelType_Energy": "Energi", + "gui.tooltips.appliedenergistics2.LevelType_Item": "Föremål", + "gui.tooltips.appliedenergistics2.MatterBalls": "Kondenseras till materiabollar %s per föremål", + "gui.tooltips.appliedenergistics2.Mod": "Mod", + "gui.tooltips.appliedenergistics2.MoveWhenEmpty": "Flytta till utmatning när den är tom.", + "gui.tooltips.appliedenergistics2.MoveWhenFull": "Flytta till utmatning när den är full.", + "gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone": "Flytta till utmatning när arbetet är färdigt.", + "gui.tooltips.appliedenergistics2.NonBlocking": "Ignorera innehållet i målutrustningen.", + "gui.tooltips.appliedenergistics2.NumberOfItems": "Antal föremål", + "gui.tooltips.appliedenergistics2.OperationMode": "Operationsläge", + "gui.tooltips.appliedenergistics2.P2PFrequency": "Frekvens: %s", + "gui.tooltips.appliedenergistics2.PartitionStorage": "Partitionslagring", + "gui.tooltips.appliedenergistics2.PartitionStorageHint": "Konfigurerar partitionen baserat på nuvarande lagrade föremål.", + "gui.tooltips.appliedenergistics2.PowerUnits": "Strömenheter", + "gui.tooltips.appliedenergistics2.Read": "Extrahera bara", + "gui.tooltips.appliedenergistics2.ReadWrite": "Båda riktningar", + "gui.tooltips.appliedenergistics2.RedstoneMode": "Redstoneläge", + "gui.tooltips.appliedenergistics2.ReportInaccessibleFluids": "Rapportera oåtkomliga vätskor", + "gui.tooltips.appliedenergistics2.ReportInaccessibleFluidsNo": "Nej: Endast vätskor som kan extraheras kommer att vara synliga.", + "gui.tooltips.appliedenergistics2.ReportInaccessibleFluidsYes": "Ja: Vätskor som inte kan extraeras kommer vara synliga.", + "gui.tooltips.appliedenergistics2.ReportInaccessibleItems": "Rapportera oåtkomliga föremål", + "gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo": "Nej: Endast föremål som kan extraheras kommer vara synliga.", + "gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes": "Ja: Föremål som inte kan extraheras kommer vara synliga.", + "gui.tooltips.appliedenergistics2.SchedulingMode": "Schemaläge", + "gui.tooltips.appliedenergistics2.SchedulingModeDefault": "Exportera det första föremålet tills nätverket är tomt, försök sedan med de nästkommande.", + "gui.tooltips.appliedenergistics2.SchedulingModeRandom": "Exportera föremål i slumpartat läge.", + "gui.tooltips.appliedenergistics2.SchedulingModeRoundRobin": "Exportera med \"round robin\"-läget.", + "gui.tooltips.appliedenergistics2.SearchMode": "Läge för sökfältet", + "gui.tooltips.appliedenergistics2.SearchMode_Auto": "Automatisk sökning", + "gui.tooltips.appliedenergistics2.SearchMode_AutoKeep": "Automatisk sökning, behåll inmatningen", + "gui.tooltips.appliedenergistics2.SearchMode_JEIAuto": "Synkronisera automatiskt med JEI", + "gui.tooltips.appliedenergistics2.SearchMode_JEIAutoKeep": "Synkronisera automatiskt med JEI, behåll inmatningen", + "gui.tooltips.appliedenergistics2.SearchMode_JEIStandard": "Standardsynkronisera med JEI", + "gui.tooltips.appliedenergistics2.SearchMode_JEIStandardKeep": "Standardsynkronisera med JEI, behåll inmatningen", + "gui.tooltips.appliedenergistics2.SearchMode_Standard": "Standardsökning", + "gui.tooltips.appliedenergistics2.SearchMode_StandardKeep": "Standardsökning, behåll inmatningen", + "gui.tooltips.appliedenergistics2.Singularity": "Kondenseras till singulariteter %s per föremål", + "gui.tooltips.appliedenergistics2.SortBy": "Sortera efter", + "gui.tooltips.appliedenergistics2.SortOrder": "Sorteringsordning", + "gui.tooltips.appliedenergistics2.Stash": "Lagra föremål", + "gui.tooltips.appliedenergistics2.StashDesc": "Returnera föremål i tillverkningsrutan till nätverkslagringen.", + "gui.tooltips.appliedenergistics2.StoredCraftable": "Lagrade / Tillverkningsbara", + "gui.tooltips.appliedenergistics2.StoredItems": "Lagrade föremål", + "gui.tooltips.appliedenergistics2.Substitutions": "Ersättningsföremål", + "gui.tooltips.appliedenergistics2.SubstitutionsDescDisabled": "Förhindrar att ersättningsföremål används som inmatningskomponenter.", + "gui.tooltips.appliedenergistics2.SubstitutionsDescEnabled": "Tillåter att ersättningsföremål används som inmatningskomponenter.", + "gui.tooltips.appliedenergistics2.SubstitutionsOff": "Ersättningar inaktiverades", + "gui.tooltips.appliedenergistics2.SubstitutionsOn": "Ersättningar aktiverades", + "gui.tooltips.appliedenergistics2.TerminalStyle": "Terminalstil", + "gui.tooltips.appliedenergistics2.TerminalStyle_Full": "Helskärmsterminal", + "gui.tooltips.appliedenergistics2.TerminalStyle_Small": "Liten centrerad terminal", + "gui.tooltips.appliedenergistics2.TerminalStyle_Tall": "Lång centrerad terminal", + "gui.tooltips.appliedenergistics2.ToggleSortDirection": "Växla sorteringsriktning", + "gui.tooltips.appliedenergistics2.TransferDirection": "Överförningsriktning", + "gui.tooltips.appliedenergistics2.TransferToNetwork": "Överför data till nätverk", + "gui.tooltips.appliedenergistics2.TransferToStorageCell": "Överför data till lagringscell", + "gui.tooltips.appliedenergistics2.Trash": "Förstör föremål", + "gui.tooltips.appliedenergistics2.TrashController": "Radera genom att Shift-/mellanslagsklicka.", + "gui.tooltips.appliedenergistics2.View": "Visa", + "gui.tooltips.appliedenergistics2.Write": "Infoga bara", + "item.appliedenergistics2.advanced_card": "Avancerat kort", + "item.appliedenergistics2.annihilation_core": "Annihilationskärna", + "item.appliedenergistics2.annihilation_plane": "ME-annihilationsplatta", + "item.appliedenergistics2.basic_card": "Enkelt kort", + "item.appliedenergistics2.biometric_card": "Biometriskt kort", + "item.appliedenergistics2.black_covered_cable": "Svart täckt ME-kabel", + "item.appliedenergistics2.black_covered_dense_cable": "Svart kompakt täckt ME-kabel", + "item.appliedenergistics2.black_glass_cable": "Svart ME-glaskabel", + "item.appliedenergistics2.black_lumen_paint_ball": "Svart lumenfärgboll", + "item.appliedenergistics2.black_paint_ball": "Svart färgboll", + "item.appliedenergistics2.black_smart_cable": "Svart smart ME-kabel", + "item.appliedenergistics2.black_smart_dense_cable": "Svart kompakt smart ME-kabel", + "item.appliedenergistics2.blank_pattern": "Blankt mönster", + "item.appliedenergistics2.blue_covered_cable": "Blå täckt ME-kabel", + "item.appliedenergistics2.blue_covered_dense_cable": "Blå kompakt täckt ME-kabel", + "item.appliedenergistics2.blue_glass_cable": "Blå ME-glaskabel", + "item.appliedenergistics2.blue_lumen_paint_ball": "Blå lumenfärgboll", + "item.appliedenergistics2.blue_paint_ball": "Blå färgboll", + "item.appliedenergistics2.blue_smart_cable": "Blå smart ME-kabel", + "item.appliedenergistics2.blue_smart_dense_cable": "Blå kompakt smart ME-kabel", + "item.appliedenergistics2.brown_covered_cable": "Brun täckt ME-kabel", + "item.appliedenergistics2.brown_covered_dense_cable": "Brun kompakt täckt ME-kabel", + "item.appliedenergistics2.brown_glass_cable": "Brun ME-glaskabel", + "item.appliedenergistics2.brown_lumen_paint_ball": "Brun lumenfärgboll", + "item.appliedenergistics2.brown_paint_ball": "Brun färgboll", + "item.appliedenergistics2.brown_smart_cable": "Brun smart ME-kabel", + "item.appliedenergistics2.brown_smart_dense_cable": "Brun kompakt smart ME-kabel", + "item.appliedenergistics2.cable_anchor": "Kabelankare", + "item.appliedenergistics2.cable_fluid_interface": "ME-gränssnitt för vätska", + "item.appliedenergistics2.cable_interface": "ME-gränssnitt", + "item.appliedenergistics2.calculation_processor": "Beräkningsprocessor", + "item.appliedenergistics2.calculation_processor_press": "Beräkningspressform", + "item.appliedenergistics2.printed_calculation_processor": "Pressad beräkningskrets", + "item.appliedenergistics2.capacity_card": "Kapacitetskort", + "item.appliedenergistics2.16k_cell_component": "ME-lagringskomponent (16k)", + "item.appliedenergistics2.1k_cell_component": "ME-lagringskomponent (1k)", + "item.appliedenergistics2.4k_cell_component": "ME-lagringskomponent (4k)", + "item.appliedenergistics2.64k_cell_component": "ME-lagringskomponent (64k)", + "item.appliedenergistics2.certus_crystal_seed": "Certuskvartsfrö", + "item.appliedenergistics2.certus_quartz_axe": "Certuskvartsyxa", + "item.appliedenergistics2.certus_quartz_crystal": "Certuskvartskristall", + "item.appliedenergistics2.certus_quartz_cutting_knife": "Certuskvartskniv", + "item.appliedenergistics2.certus_quartz_dust": "Certuskvartsdamm", + "item.appliedenergistics2.certus_quartz_hoe": "Certuskvartsflåhacka", + "item.appliedenergistics2.certus_quartz_pickaxe": "Certuskvartshacka", + "item.appliedenergistics2.certus_quartz_shovel": "Certuskvartsspade", + "item.appliedenergistics2.certus_quartz_sword": "Certuskvartssvärd", + "item.appliedenergistics2.certus_quartz_wrench": "Certuskvartsblocknyckel", + "item.appliedenergistics2.charged_certus_quartz_crystal": "Uppladdad certuskvartskristall", + "item.appliedenergistics2.charged_staff": "Uppladdad stav", + "item.appliedenergistics2.color_applicator": "Färgpåstrykare", + "item.appliedenergistics2.conversion_monitor": "ME-omvandlingsskärm", + "item.appliedenergistics2.crafting_card": "Tillverkningskort", + "item.appliedenergistics2.crafting_monitor": "ME-tillverkningsskärm", + "item.appliedenergistics2.crafting_terminal": "ME-tillverkningsterminal", + "item.appliedenergistics2.creative_storage_cell": "Kreativ ME-lagringscell", + "item.appliedenergistics2.cyan_covered_cable": "Turkos täckt ME-kabel", + "item.appliedenergistics2.cyan_covered_dense_cable": "Turkos kompakt täckt ME-kabel", + "item.appliedenergistics2.cyan_glass_cable": "Turkos ME-glaskabel", + "item.appliedenergistics2.cyan_lumen_paint_ball": "Turkos lumenfärgboll", + "item.appliedenergistics2.cyan_paint_ball": "Turkos färgboll", + "item.appliedenergistics2.cyan_smart_cable": "Turkos smart ME-kabel", + "item.appliedenergistics2.cyan_smart_dense_cable": "Turkos kompakt smart ME-kabel", + "item.appliedenergistics2.dark_monitor": "Mörk upplyst panel", + "item.appliedenergistics2.debug_card": "Dev.DebugCard", + "item.appliedenergistics2.debug_eraser": "Dev.Eraser", + "item.appliedenergistics2.debug_meteorite_placer": "Dev.MeteoritePlacer", + "item.appliedenergistics2.debug_part_placer": "Dev.PartPlacer", + "item.appliedenergistics2.debug_replicator_card": "Dev.ReplicatorCard", + "item.appliedenergistics2.empty_storage_cell": "ME-lagringsmagasinering", + "item.appliedenergistics2.encoded_pattern": "Kodat mönster", + "item.appliedenergistics2.ender_dust": "Enderdamm", + "item.appliedenergistics2.engineering_processor": "Ingenjörsprocessor", + "item.appliedenergistics2.engineering_processor_press": "Ingenjörspressform", + "item.appliedenergistics2.printed_engineering_processor": "Pressad ingenjörskrets", + "item.appliedenergistics2.entropy_manipulator": "Entropimanipulerare", + "item.appliedenergistics2.export_bus": "ME-exportbuss", + "item.appliedenergistics2.facade": "Kabelfasad", + "item.appliedenergistics2.fe_p2p_tunnel": "P2P-tunnel för FE", + "item.appliedenergistics2.flour": "Mjöl", + "item.appliedenergistics2.fluid_annihilation_plane": "ME-annihilationsplatta för vätska", + "item.appliedenergistics2.16k_fluid_cell_component": "ME-lagringskomponent för vätska (16k)", + "item.appliedenergistics2.1k_fluid_cell_component": "ME-lagringskomponent för vätska (1k)", + "item.appliedenergistics2.4k_fluid_cell_component": "ME-lagringskomponent för vätska (4k)", + "item.appliedenergistics2.64k_fluid_cell_component": "ME-lagringskomponent för vätska (64k)", + "item.appliedenergistics2.fluid_export_bus": "ME-exportbuss för vätska", + "item.appliedenergistics2.fluid_formation_plane": "ME-formationsplatta för vätska", + "item.appliedenergistics2.fluid_import_bus": "ME-importbuss för vätska", + "item.appliedenergistics2.fluid_level_emitter": "ME-nivåavgivare för vätska", + "item.appliedenergistics2.fluid_p2p_tunnel": "P2P-tunnel för vätska", + "item.appliedenergistics2.fluid_storage_bus": "ME-lagringsbuss för vätska", + "item.appliedenergistics2.16k_fluid_storage_cell": "ME-lagringscell för vätska (16k)", + "item.appliedenergistics2.1k_fluid_storage_cell": "ME-lagringscell för vätska (1k)", + "item.appliedenergistics2.4k_fluid_storage_cell": "ME-lagringscell för vätska (4k)", + "item.appliedenergistics2.64k_fluid_storage_cell": "ME-lagringscell för vätska (64k)", + "item.appliedenergistics2.fluid_terminal": "ME-terminal för vätska", + "item.appliedenergistics2.fluix_covered_cable": "Täckt ME-fluixkabel", + "item.appliedenergistics2.fluix_covered_dense_cable": "Kompakt täckt ME-fluixkabel", + "item.appliedenergistics2.fluix_crystal": "Fluixkristall", + "item.appliedenergistics2.fluix_crystal_seed": "Fluixfrö", + "item.appliedenergistics2.fluix_dust": "Fluixdamm", + "item.appliedenergistics2.fluix_glass_cable": "ME-fluixglaskabel", + "item.appliedenergistics2.fluix_lumen_paint_ball": "Fluixlumenfärgboll", + "item.appliedenergistics2.fluix_paint_ball": "Fluixfärgboll", + "item.appliedenergistics2.fluix_pearl": "Fluixpärla", + "item.appliedenergistics2.fluix_smart_cable": "Smart ME-fluixkabel", + "item.appliedenergistics2.fluix_smart_dense_cable": "Kompakt smart ME-fluixkabel", + "item.appliedenergistics2.formation_core": "Formationskärna", + "item.appliedenergistics2.formation_plane": "ME-formationsplatta", + "item.appliedenergistics2.fuzzy_card": "Suddigt kort", + "item.appliedenergistics2.gold_dust": "Gulddamm", + "item.appliedenergistics2.gray_covered_cable": "Grå täckt ME-kabel", + "item.appliedenergistics2.gray_covered_dense_cable": "Grå kompakt täckt ME-kabel", + "item.appliedenergistics2.gray_glass_cable": "Grå ME-glaskabel", + "item.appliedenergistics2.gray_lumen_paint_ball": "Grå lumenfärgboll", + "item.appliedenergistics2.gray_paint_ball": "Grå färgboll", + "item.appliedenergistics2.gray_smart_cable": "Grå smart ME-kabel", + "item.appliedenergistics2.gray_smart_dense_cable": "Grå kompakt smart ME-kabel", + "item.appliedenergistics2.green_covered_cable": "Grön täckt ME-kabel", + "item.appliedenergistics2.green_covered_dense_cable": "Grön kompakt täckt ME-kabel", + "item.appliedenergistics2.green_glass_cable": "Grön ME-glaskabel", + "item.appliedenergistics2.green_lumen_paint_ball": "Grön lumenfärgboll", + "item.appliedenergistics2.green_paint_ball": "Grön färgboll", + "item.appliedenergistics2.green_smart_cable": "Grön smart ME-kabel", + "item.appliedenergistics2.green_smart_dense_cable": "Grön kompakt smart ME-kabel", + "item.appliedenergistics2.ic2_p2p_tunnel": "P2P-tunnel för EU", + "item.appliedenergistics2.identity_annihilation_plane": "ME-annihilationsplatta för identiteter", + "item.appliedenergistics2.import_bus": "ME-importbuss", + "item.appliedenergistics2.interface_terminal": "ME-gränssnittsterminal", + "item.appliedenergistics2.invalid_type": "Inaktiverat föremål", + "item.appliedenergistics2.inverted_toggle_bus": "Inverterad ME-strömbrytarbuss", + "item.appliedenergistics2.inverter_card": "Inverteringskort", + "item.appliedenergistics2.iron_dust": "Järndamm", + "item.appliedenergistics2.item_p2p_tunnel": "P2P-tunnel för föremål", + "item.appliedenergistics2.level_emitter": "ME-nivåavgivare", + "item.appliedenergistics2.light_blue_covered_cable": "Ljusblå täckt ME-kabel", + "item.appliedenergistics2.light_blue_covered_dense_cable": "Ljusblå kompakt täckt ME-kabel", + "item.appliedenergistics2.light_blue_glass_cable": "Ljusblå ME-glaskabel", + "item.appliedenergistics2.light_blue_lumen_paint_ball": "Ljusblå lumenfärgboll", + "item.appliedenergistics2.light_blue_paint_ball": "Ljusblå färgboll", + "item.appliedenergistics2.light_blue_smart_cable": "Ljusblå smart ME-kabel", + "item.appliedenergistics2.light_blue_smart_dense_cable": "Ljusblå kompakt smart ME-kabel", + "item.appliedenergistics2.light_gray_covered_cable": "Ljusgrå täckt ME-kabel", + "item.appliedenergistics2.light_gray_covered_dense_cable": "Ljusgrå kompakt täckt ME-kabel", + "item.appliedenergistics2.light_gray_glass_cable": "Ljusgrå ME-glaskabel", + "item.appliedenergistics2.light_gray_lumen_paint_ball": "Ljusgrå lumenfärgboll", + "item.appliedenergistics2.light_gray_paint_ball": "Ljusgrå färgboll", + "item.appliedenergistics2.light_gray_smart_cable": "Ljusgrå smart ME-kabel", + "item.appliedenergistics2.light_gray_smart_dense_cable": "Ljusgrå kompakt smart ME-kabel", + "item.appliedenergistics2.light_p2p_tunnel": "P2P-tunnel för ljus", + "item.appliedenergistics2.lime_covered_cable": "Limegrön täckt ME-kabel", + "item.appliedenergistics2.lime_covered_dense_cable": "Limegrön kompakt täckt ME-kabel", + "item.appliedenergistics2.lime_glass_cable": "Limegrön ME-glaskabel", + "item.appliedenergistics2.lime_lumen_paint_ball": "Limegrön lumenfärgboll", + "item.appliedenergistics2.lime_paint_ball": "Limegrön färgboll", + "item.appliedenergistics2.lime_smart_cable": "Limegrön smart ME-kabel", + "item.appliedenergistics2.lime_smart_dense_cable": "Limegrön kompakt smart ME-kabel", + "item.appliedenergistics2.logic_processor": "Logikprocessor", + "item.appliedenergistics2.logic_processor_asm": "Ofärdig logikprocessor", + "item.appliedenergistics2.logic_processor_press": "Logikpressform", + "item.appliedenergistics2.printed_logic_processor": "Pressad logikkrets", + "item.appliedenergistics2.magenta_covered_cable": "Ljuslila täckt ME-kabel", + "item.appliedenergistics2.magenta_covered_dense_cable": "Ljuslila kompakt täckt ME-kabel", + "item.appliedenergistics2.magenta_glass_cable": "Ljuslila ME-glaskabel", + "item.appliedenergistics2.magenta_lumen_paint_ball": "Ljuslila lumenfärgboll", + "item.appliedenergistics2.magenta_paint_ball": "Ljuslila färgboll", + "item.appliedenergistics2.magenta_smart_cable": "Ljuslila smart ME-kabel", + "item.appliedenergistics2.magenta_smart_dense_cable": "Ljuslila kompakt smart ME-kabel", + "item.appliedenergistics2.matter_ball": "Materiaboll", + "item.appliedenergistics2.matter_cannon": "Materiakanon", + "item.appliedenergistics2.me_p2p_tunnel": "P2P-tunnel för ME", + "item.appliedenergistics2.memory_card": "Minneskort", + "item.appliedenergistics2.monitor": "Ljus upplyst panel", + "item.appliedenergistics2.name_press": "Namnpressform", + "item.appliedenergistics2.nether_quartz_axe": "Netherkvartsyxa", + "item.appliedenergistics2.nether_quartz_cutting_knife": "Netherkvartskniv", + "item.appliedenergistics2.nether_quartz_dust": "Netherkvartsdamm", + "item.appliedenergistics2.nether_quartz_hoe": "Netherkvartsflåhacka", + "item.appliedenergistics2.nether_quartz_pickaxe": "Netherkvartshacka", + "item.appliedenergistics2.nether_quartz_seed": "Netherkvartsfrö", + "item.appliedenergistics2.nether_quartz_shovel": "Netherkvartsspade", + "item.appliedenergistics2.nether_quartz_sword": "Netherkvartssvärd", + "item.appliedenergistics2.nether_quartz_wrench": "Netherkvartsblocknyckel", + "item.appliedenergistics2.network_tool": "Nätverksverktyg", + "item.appliedenergistics2.orange_covered_cable": "Orange täckt ME-kabel", + "item.appliedenergistics2.orange_covered_dense_cable": "Orange kompakt täckt ME-kabel", + "item.appliedenergistics2.orange_glass_cable": "Orange smart ME-kabel", + "item.appliedenergistics2.orange_lumen_paint_ball": "Orange lumenfärgboll", + "item.appliedenergistics2.orange_paint_ball": "Orange färgboll", + "item.appliedenergistics2.orange_smart_cable": "Orange smart ME-kabel", + "item.appliedenergistics2.orange_smart_dense_cable": "Orange kompakt smart ME-kabel", + "item.appliedenergistics2.pattern_terminal": "ME-mönsterterminal", + "item.appliedenergistics2.pink_covered_cable": "Rosa täckt ME-kabel", + "item.appliedenergistics2.pink_covered_dense_cable": "Rosa kompakt täckt ME-kabel", + "item.appliedenergistics2.pink_glass_cable": "Rosa ME-glaskabel", + "item.appliedenergistics2.pink_lumen_paint_ball": "Rosa lumenfärgboll", + "item.appliedenergistics2.pink_paint_ball": "Rosa färgboll", + "item.appliedenergistics2.pink_smart_cable": "Rosa smart ME-kabel", + "item.appliedenergistics2.pink_smart_dense_cable": "Rosa kompakt smart ME-kabel", + "item.appliedenergistics2.portable_cell": "Portabel cell", + "item.appliedenergistics2.purified_certus_quartz_crystal": "Ren certuskvartskristall", + "item.appliedenergistics2.purified_fluix_crystal": "Ren fluixkristall", + "item.appliedenergistics2.purified_nether_quartz_crystal": "Ren netherkvartskristall", + "item.appliedenergistics2.purple_covered_cable": "Lila täckt ME-kabel", + "item.appliedenergistics2.purple_covered_dense_cable": "Lila kompakt täckt ME-kabel", + "item.appliedenergistics2.purple_glass_cable": "Lila ME-glaskabel", + "item.appliedenergistics2.purple_lumen_paint_ball": "Lila lumenfärgboll", + "item.appliedenergistics2.purple_paint_ball": "Lila färgboll", + "item.appliedenergistics2.purple_smart_cable": "Lila smart ME-kabel", + "item.appliedenergistics2.purple_smart_dense_cable": "Lila kompakt smart ME-kabel", + "item.appliedenergistics2.quantum_entangled_singularity": "Kvantumbunden singularitet", + "item.appliedenergistics2.quartz_fiber": "Kvartsfiber", + "item.appliedenergistics2.red_covered_cable": "Röd täckt ME-kabel", + "item.appliedenergistics2.red_covered_dense_cable": "Röd kompakt täckt ME-kabel", + "item.appliedenergistics2.red_glass_cable": "Röd ME-glaskabel", + "item.appliedenergistics2.red_lumen_paint_ball": "Röd lumenfärgboll", + "item.appliedenergistics2.red_paint_ball": "Röd färgboll", + "item.appliedenergistics2.red_smart_cable": "Röd smart ME-kabel", + "item.appliedenergistics2.red_smart_dense_cable": "Röd kompakt smart ME-kabel", + "item.appliedenergistics2.redstone_card": "Redstonekort", + "item.appliedenergistics2.redstone_p2p_tunnel": "P2P-tunnel för redstone", + "item.appliedenergistics2.semi_dark_monitor": "Upplyst panel", + "item.appliedenergistics2.silicon": "Silikon", + "item.appliedenergistics2.silicon_press": "Silikonpressform", + "item.appliedenergistics2.printed_silicon": "Pressat silikon", + "item.appliedenergistics2.singularity": "Singularitet", + "item.appliedenergistics2.sky_dust": "Himmelstensdamm", + "item.appliedenergistics2.128_cubed_spatial_cell_component": "Spatial komponent (128³)", + "item.appliedenergistics2.16_cubed_spatial_cell_component": "Spatial komponent (16³)", + "item.appliedenergistics2.2_cubed_spatial_cell_component": "Spatial komponent (2³)", + "item.appliedenergistics2.128_cubed_spatial_storage_cell": "Spatial lagringscell (128³)", + "item.appliedenergistics2.16_cubed_spatial_storage_cell": "Spatial lagringscell (16³)", + "item.appliedenergistics2.2_cubed_spatial_storage_cell": "Spatial lagringscell (2³)", + "item.appliedenergistics2.speed_card": "Accelereringskort", + "item.appliedenergistics2.storage_bus": "ME-lagringsbuss", + "item.appliedenergistics2.16k_storage_cell": "ME-lagringscell (16k)", + "item.appliedenergistics2.1k_storage_cell": "ME-lagringscell (1k)", + "item.appliedenergistics2.4k_storage_cell": "ME-lagringscell (4k)", + "item.appliedenergistics2.64k_storage_cell": "ME-lagringscell (64k)", + "item.appliedenergistics2.storage_monitor": "ME-lagringsskärm", + "item.appliedenergistics2.terminal": "ME-terminal", + "item.appliedenergistics2.toggle_bus": "ME-strömbrytarbuss", + "item.appliedenergistics2.view_cell": "Visningscell", + "item.appliedenergistics2.white_covered_cable": "Vit täckt ME-kabel", + "item.appliedenergistics2.white_covered_dense_cable": "Vit kompakt täckt ME-kabel", + "item.appliedenergistics2.white_glass_cable": "Vit ME-glaskabel", + "item.appliedenergistics2.white_lumen_paint_ball": "Vit lumenfärgboll", + "item.appliedenergistics2.white_paint_ball": "Vit färgboll", + "item.appliedenergistics2.white_smart_cable": "Vit smart ME-kabel", + "item.appliedenergistics2.white_smart_dense_cable": "Vit kompakt smart ME-kabel", + "item.appliedenergistics2.wireless_booster": "Trådlös förstärkning", + "item.appliedenergistics2.wireless_receiver": "Trådlös mottagare", + "item.appliedenergistics2.wireless_terminal": "Trådlös terminal", + "item.appliedenergistics2.wooden_gear": "Träkugghjul", + "item.appliedenergistics2.yellow_covered_cable": "Gul täckt ME-kabel", + "item.appliedenergistics2.yellow_covered_dense_cable": "Gul kompakt täckt ME-kabel", + "item.appliedenergistics2.yellow_glass_cable": "Gul ME-glaskabel", + "item.appliedenergistics2.yellow_lumen_paint_ball": "Gul lumenfärgboll", + "item.appliedenergistics2.yellow_paint_ball": "Gul färgboll", + "item.appliedenergistics2.yellow_smart_cable": "Gul smart ME-kabel", + "item.appliedenergistics2.yellow_smart_dense_cable": "Gul kompakt smart ME-kabel", + "itemGroup.appliedenergistics2": "Applied Energistics 2", + "itemGroup.appliedenergistics2.facades": "Applied Energistics 2 - Fasader", + "key.appliedenergistics2.category": "Applied Energistics 2", + "key.toggle_focus.desc": "Växla fokus för sökfältet", + "stat.appliedenergistics2.items_extracted": "Extraherade föremål från ME-lagringar", + "stat.appliedenergistics2.items_inserted": "Inmatade föremål i ME-lagringar", + "stat.appliedenergistics2.turned_cranks": "Vridna vevar", + "theoneprobe.appliedenergistics2.channels": "%1$d av %2$d kanaler", + "theoneprobe.appliedenergistics2.contains": "Innehåller", + "theoneprobe.appliedenergistics2.crafting": "Tillverkar: %1$s", + "theoneprobe.appliedenergistics2.device_missing_channel": "Enheten saknar kanal", + "theoneprobe.appliedenergistics2.device_offline": "Enheten är frånkopplad", + "theoneprobe.appliedenergistics2.device_online": "Enheten är uppkopplad", + "theoneprobe.appliedenergistics2.locked": "Låst", + "theoneprobe.appliedenergistics2.p2p_frequency": "Frekvens: %1$s", + "theoneprobe.appliedenergistics2.p2p_input_many_outputs": "Länkad (inmatningssida) - %d utmatningar", + "theoneprobe.appliedenergistics2.p2p_input_one_output": "Länkad (inmatningssida)", + "theoneprobe.appliedenergistics2.p2p_output": "Länkad (utmatningssida)", + "theoneprobe.appliedenergistics2.p2p_unlinked": "Olänkad", + "theoneprobe.appliedenergistics2.showing": "Visas", + "theoneprobe.appliedenergistics2.stored_energy": "%1$d / %2$d", + "theoneprobe.appliedenergistics2.unlocked": "Upplåst", + "waila.appliedenergistics2.Channels": "%1$d av %2$d kanaler", + "waila.appliedenergistics2.Contains": "Innehåller", + "waila.appliedenergistics2.Crafting": "Tillverkning", + "waila.appliedenergistics2.DeviceMissingChannel": "Enheten saknar kanal", + "waila.appliedenergistics2.DeviceOffline": "Enheten är frånkopplad", + "waila.appliedenergistics2.DeviceOnline": "Enheten är uppkopplad", + "waila.appliedenergistics2.Locked": "Låst", + "waila.appliedenergistics2.P2PInputManyOutputs": "Länkad (inmatningssida) - %d utmatningar", + "waila.appliedenergistics2.P2PInputOneOutput": "Länkad (inmatningssida)", + "waila.appliedenergistics2.P2POutput": "Länkad (utmatningssida)", + "waila.appliedenergistics2.P2PUnlinked": "Olänkad", + "waila.appliedenergistics2.Showing": "Visas", + "waila.appliedenergistics2.Unlocked": "Upplåst" +} From 888de430ba9b3fc136a962d215d67e508d3863d8 Mon Sep 17 00:00:00 2001 From: yueh Date: Mon, 20 Jul 2020 22:27:01 +0200 Subject: [PATCH 02/18] Also test for generated asset cache --- .github/workflows/branches.yml | 2 +- .github/workflows/master.yml | 2 +- .github/workflows/pull_requests.yml | 2 +- .github/workflows/release.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/branches.yml b/.github/workflows/branches.yml index 1f9cc0224..3a9a3a2f0 100644 --- a/.github/workflows/branches.yml +++ b/.github/workflows/branches.yml @@ -28,6 +28,6 @@ jobs: with: run: ./gradlew runData --no-daemon - name: Validate assets - run: test -d ./src/generated + run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle run: ./gradlew build --no-daemon diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index f53b0b928..15e5c9089 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -28,6 +28,6 @@ jobs: with: run: ./gradlew runData --no-daemon - name: Validate assets - run: test -d ./src/generated + run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle run: ./gradlew build --no-daemon diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml index 16847d1fc..22a4cf40f 100644 --- a/.github/workflows/pull_requests.yml +++ b/.github/workflows/pull_requests.yml @@ -28,7 +28,7 @@ jobs: with: run: ./gradlew runData --no-daemon - name: Validate assets - run: test -d ./src/generated + run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle env: PR_NUMBER: ${{ github.event.pull_request.number }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b787cd4ee..b450879f2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,7 +35,7 @@ jobs: with: run: ./gradlew runData --no-daemon - name: Validate assets - run: test -d ./src/generated + run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle env: KEY_STORE_PASS: ${{ secrets.KEY_STORE_PASS }} From 10037a9ac5316aae2e65331ea6d1bfba67c1baf0 Mon Sep 17 00:00:00 2001 From: shartte Date: Tue, 21 Jul 2020 18:39:48 +0200 Subject: [PATCH 03/18] Correct link to CurseForge page --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 270e9e5c8..6d06566d6 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ A Mod about Matter, Energy and using them to conquer the world.. ## Downloads -Downloads can be found on [CurseForge](http://www.curse.com/mc-mods/minecraft/223794-applied-energistics-2) or on the [official website](http://ae-mod.info/Downloads/). +Downloads can be found on [CurseForge](https://www.curseforge.com/minecraft/mc-mods/applied-energistics-2) or on the [official website](http://ae-mod.info/Downloads/). ## Installation From f7ef6eb772cebc2780b5ec026e363ed9aa69657e Mon Sep 17 00:00:00 2001 From: shartte Date: Wed, 22 Jul 2020 10:22:00 +0200 Subject: [PATCH 04/18] Same method name as in superclass leads to ForgeGradle reobf problems. (#4491) Fixes #4490 --- src/main/java/appeng/client/gui/widgets/NumberBox.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/appeng/client/gui/widgets/NumberBox.java b/src/main/java/appeng/client/gui/widgets/NumberBox.java index 043405156..efd5f4312 100644 --- a/src/main/java/appeng/client/gui/widgets/NumberBox.java +++ b/src/main/java/appeng/client/gui/widgets/NumberBox.java @@ -37,7 +37,7 @@ public class NumberBox extends TextFieldWidget { final Class type, LongConsumer changeListener) { super(fontRenderer, x, y, width, height, "0"); this.setText("0"); - setResponder(this::onTextChanged); + setResponder(this::handleTextChanged); this.lastValue = 0; this.changeListener = changeListener; if (type == int.class || type == Integer.class) { @@ -47,7 +47,11 @@ public class NumberBox extends TextFieldWidget { } } - private void onTextChanged(String text) { + // NOTE: This method MUST NOT BE NAMED like a method in the superclass because + // of a ForgeGradle remapping bug + // since it'll not remap this method's name, but it will remap the name of the + // method reference above. + private void handleTextChanged(String text) { if (text.isEmpty()) { setText("0"); // Will call onTextChanged recursively return; From 21aa5ce33b606aa02d1cbd56ca56ce952e07bae1 Mon Sep 17 00:00:00 2001 From: shartte Date: Wed, 22 Jul 2020 10:22:28 +0200 Subject: [PATCH 05/18] Don't use PacketBuffer#readString since it's client-only. (#4489) Fixes #4488 --- src/main/java/appeng/core/sync/BasePacket.java | 9 +++++++++ .../java/appeng/core/sync/packets/ConfigValuePacket.java | 4 ++-- .../appeng/recipes/handlers/GrinderRecipeSerializer.java | 3 ++- .../recipes/handlers/InscriberRecipeSerializer.java | 3 ++- src/main/java/appeng/tile/storage/DriveTileEntity.java | 3 ++- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/appeng/core/sync/BasePacket.java b/src/main/java/appeng/core/sync/BasePacket.java index f8f5172bd..a31d32c1d 100644 --- a/src/main/java/appeng/core/sync/BasePacket.java +++ b/src/main/java/appeng/core/sync/BasePacket.java @@ -32,6 +32,15 @@ import appeng.core.sync.network.INetworkInfo; import appeng.core.sync.network.NetworkHandler; public abstract class BasePacket { + + /** + * Sadly {@link PacketBuffer#readString()} gets inlined by Proguard which means + * it's not available on the Server. This field has the default string length + * that is used for writeString, which then also should be used for readString + * when it has no special length requirements. + */ + public static final int MAX_STRING_LENGTH = 32767; + private PacketBuffer p; public void serverPacketData(final INetworkInfo manager, final PlayerEntity player) { diff --git a/src/main/java/appeng/core/sync/packets/ConfigValuePacket.java b/src/main/java/appeng/core/sync/packets/ConfigValuePacket.java index 1d7fb2ffc..5a3bbca36 100644 --- a/src/main/java/appeng/core/sync/packets/ConfigValuePacket.java +++ b/src/main/java/appeng/core/sync/packets/ConfigValuePacket.java @@ -57,8 +57,8 @@ public class ConfigValuePacket extends BasePacket { private final String Value; public ConfigValuePacket(final PacketBuffer stream) { - this.Name = stream.readString(); - this.Value = stream.readString(); + this.Name = stream.readString(MAX_STRING_LENGTH); + this.Value = stream.readString(MAX_STRING_LENGTH); } // api diff --git a/src/main/java/appeng/recipes/handlers/GrinderRecipeSerializer.java b/src/main/java/appeng/recipes/handlers/GrinderRecipeSerializer.java index 6b8af2a9e..38d5b8c08 100644 --- a/src/main/java/appeng/recipes/handlers/GrinderRecipeSerializer.java +++ b/src/main/java/appeng/recipes/handlers/GrinderRecipeSerializer.java @@ -21,6 +21,7 @@ import net.minecraftforge.registries.ForgeRegistryEntry; import appeng.core.AEConfig; import appeng.core.AppEng; +import appeng.core.sync.BasePacket; public class GrinderRecipeSerializer extends ForgeRegistryEntry> implements IRecipeSerializer { @@ -70,7 +71,7 @@ public class GrinderRecipeSerializer extends ForgeRegistryEntry> implements IRecipeSerializer { @@ -67,7 +68,7 @@ public class InscriberRecipeSerializer extends ForgeRegistryEntry Date: Fri, 24 Jul 2020 16:39:32 +0200 Subject: [PATCH 06/18] Use standard mechanics for damaging the quartz knife. (#4494) --- .../items/tools/quartz/QuartzCuttingKnifeItem.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/appeng/items/tools/quartz/QuartzCuttingKnifeItem.java b/src/main/java/appeng/items/tools/quartz/QuartzCuttingKnifeItem.java index 9d070f2f4..387ab23ce 100644 --- a/src/main/java/appeng/items/tools/quartz/QuartzCuttingKnifeItem.java +++ b/src/main/java/appeng/items/tools/quartz/QuartzCuttingKnifeItem.java @@ -72,10 +72,12 @@ public class QuartzCuttingKnifeItem extends AEBaseItem implements IGuiItem { @Override public ItemStack getContainerItem(final ItemStack itemStack) { - ItemStack copy = itemStack.copy(); - copy.setDamage(itemStack.getDamage() + 1); - - return copy; + ItemStack damagedStack = itemStack.copy(); + if (damagedStack.attemptDamageItem(1, random, null)) { + return ItemStack.EMPTY; + } else { + return damagedStack; + } } @Override From 2ac27fd9ce0208686ad08de89f3a4f40d1404b82 Mon Sep 17 00:00:00 2001 From: yueh Date: Fri, 24 Jul 2020 22:39:38 +0200 Subject: [PATCH 07/18] Fixes patterns always returning a recipe. (#4495) --- src/main/java/appeng/helpers/CraftingPatternDetails.java | 2 +- src/main/java/appeng/items/misc/EncodedPatternItem.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/appeng/helpers/CraftingPatternDetails.java b/src/main/java/appeng/helpers/CraftingPatternDetails.java index b92dcad17..b02de8b9e 100644 --- a/src/main/java/appeng/helpers/CraftingPatternDetails.java +++ b/src/main/java/appeng/helpers/CraftingPatternDetails.java @@ -109,7 +109,7 @@ public class CraftingPatternDetails implements ICraftingPatternDetails, Comparab this.standardRecipe = null; this.correctOutput = ItemStack.EMPTY; - for (int x = 0; x < 3; x++) { + for (int x = 0; x < products.size(); x++) { final IAEItemStack ais = products.get(x); final ItemStack gs = ais.createItemStack(); diff --git a/src/main/java/appeng/items/misc/EncodedPatternItem.java b/src/main/java/appeng/items/misc/EncodedPatternItem.java index 9009a35ff..b14916f66 100644 --- a/src/main/java/appeng/items/misc/EncodedPatternItem.java +++ b/src/main/java/appeng/items/misc/EncodedPatternItem.java @@ -226,7 +226,9 @@ public class EncodedPatternItem extends AEBaseItem { final CompoundNBT tag = itemStack.getTag(); Preconditions.checkArgument(tag != null, "itemStack missing a NBT tag"); - return new ResourceLocation(tag.getString(NBT_RECIPE_ID)); + return tag.contains(NBT_RECIPE_ID, Constants.NBT.TAG_STRING) + ? new ResourceLocation(tag.getString(NBT_RECIPE_ID)) + : null; } public List getIngredients(ItemStack itemStack) { From 3a4b171443437376e65593b5ef8316e131fa994b Mon Sep 17 00:00:00 2001 From: yueh Date: Sat, 25 Jul 2020 16:05:58 +0200 Subject: [PATCH 08/18] Fixes #4468: Default to ae serverside (#4496) --- src/main/java/appeng/core/AEConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/appeng/core/AEConfig.java b/src/main/java/appeng/core/AEConfig.java index 0783f11a7..b9c829f50 100644 --- a/src/main/java/appeng/core/AEConfig.java +++ b/src/main/java/appeng/core/AEConfig.java @@ -96,7 +96,7 @@ public final class AEConfig { private boolean useColoredCraftingStatus; private boolean disableColoredCableRecipesInJEI; private int craftingCalculationTimePerTick; - private PowerUnits selectedPowerUnit; + private PowerUnits selectedPowerUnit = PowerUnits.AE; // GUI Buttons private final int[] craftByStacks = new int[4]; From 5b82e592649468d2ecf87ed9c9afde9cd8c295ea Mon Sep 17 00:00:00 2001 From: yueh Date: Sun, 26 Jul 2020 12:42:48 +0200 Subject: [PATCH 09/18] Removed superfluous crash enhancement (#4498) --- src/main/java/appeng/core/AppEng.java | 4 -- .../core/crash/ModCrashEnhancement.java | 38 ------------------- 2 files changed, 42 deletions(-) delete mode 100644 src/main/java/appeng/core/crash/ModCrashEnhancement.java diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index aab74c841..94dcafd6d 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -44,7 +44,6 @@ import net.minecraftforge.client.model.geometry.IModelGeometry; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.ModDimension; import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.CrashReportExtender; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.client.registry.RenderingRegistry; @@ -79,7 +78,6 @@ import appeng.client.render.model.MemoryCardModel; import appeng.client.render.model.SkyCompassModel; import appeng.client.render.model.UVLModelLoader; import appeng.client.render.spatial.SpatialPylonModel; -import appeng.core.crash.ModCrashEnhancement; import appeng.core.features.registries.PartModels; import appeng.core.stats.AdvancementTriggers; import appeng.core.sync.network.NetworkHandler; @@ -117,8 +115,6 @@ public final class AppEng { proxy = DistExecutor.safeRunForDist(() -> ClientHelper::new, () -> ServerHelper::new); - CrashReportExtender.registerCrashCallable(new ModCrashEnhancement()); - CreativeTab.init(); new FacadeItemGroup(); // This call has a side-effect (adding it to the creative screen) diff --git a/src/main/java/appeng/core/crash/ModCrashEnhancement.java b/src/main/java/appeng/core/crash/ModCrashEnhancement.java deleted file mode 100644 index a5c078288..000000000 --- a/src/main/java/appeng/core/crash/ModCrashEnhancement.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.core.crash; - -import net.minecraftforge.fml.common.ICrashCallable; -import net.minecraftforge.versions.forge.ForgeVersion; - -import appeng.core.AEConfig; - -public class ModCrashEnhancement implements ICrashCallable { - - @Override - public String getLabel() { - return "AE2 Version"; - } - - @Override - public String call() throws Exception { - return AEConfig.CHANNEL + ' ' + AEConfig.VERSION + " for Forge " + ForgeVersion.getVersion(); - } - -} From b6110e4f4a825cf9cdac8054676b99f3772e8f48 Mon Sep 17 00:00:00 2001 From: yueh Date: Sun, 26 Jul 2020 15:27:32 +0200 Subject: [PATCH 10/18] Remove all maven repos except modmaven (#4501) Also upgrades gradle to 4.10.3 --- .github/workflows/branches.yml | 2 + .github/workflows/master.yml | 2 + .github/workflows/pull_requests.yml | 2 + gradle/scripts/dependencies.gradle | 45 ----------------------- gradle/wrapper/gradle-wrapper.jar | Bin 54413 -> 54413 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- 6 files changed, 7 insertions(+), 46 deletions(-) diff --git a/.github/workflows/branches.yml b/.github/workflows/branches.yml index 3a9a3a2f0..4ac445b70 100644 --- a/.github/workflows/branches.yml +++ b/.github/workflows/branches.yml @@ -21,6 +21,8 @@ jobs: with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + - name: Clean gradle + run: ./gradlew clean --no-daemon - name: Validate no assets run: test ! -d ./src/generated - name: Generate assets diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 15e5c9089..d55923846 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -21,6 +21,8 @@ jobs: with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + - name: Clean gradle + run: ./gradlew clean --no-daemon - name: Validate no assets run: test ! -d ./src/generated - name: Generate assets diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml index 22a4cf40f..397ea6c5d 100644 --- a/.github/workflows/pull_requests.yml +++ b/.github/workflows/pull_requests.yml @@ -21,6 +21,8 @@ jobs: with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + - name: Clean gradle + run: ./gradlew clean --no-daemon - name: Validate no assets run: test ! -d ./src/generated - name: Generate assets diff --git a/gradle/scripts/dependencies.gradle b/gradle/scripts/dependencies.gradle index b24a7ea5d..268110003 100644 --- a/gradle/scripts/dependencies.gradle +++ b/gradle/scripts/dependencies.gradle @@ -23,51 +23,6 @@ repositories { name 'modmaven' url "https://modmaven.k-4u.nl/" } - - maven { - name "Mobius" - url "http://mobiusstrip.eu/maven" - } - - maven { - name = "JEI repo" - url "http://dvs1.progwml6.com/files/maven" - } - - maven { - name = "Tesla repo" - url "http://maven.mcmoddev.com" - } - - maven { - name = "IC2 repo" - url = "http://maven.ic2.player.to" - } - - maven { - name = "CoFH Maven" - url = "http://maven.covers1624.net" - } - - maven { // TheOneProbe - name 'tterrag maven' - url "http://maven.tterrag.com/" - } - - maven { - name 'mcjty' - url "http://maven.k-4u.nl/" - } - - maven { // CraftTweaker - name 'jared maven' - url "http://maven.blamejared.com/" - } - - maven { - name = "CurseForge" - url = "https://minecraft.curseforge.com/api/maven/" - } } dependencies { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 1948b9074f1016d15d505d185bc3f73deb82d8c8..0d4a9516871afd710a9d84d89e31ba77745607bd 100644 GIT binary patch delta 64 zcmeBO$=th=d4f61&s)=~CR#_bek%G{#5nn2s`SP!L5H|l7y`W6IVzO3lP3!t_6IB4 PoP7A601H^i^@;}ochnli delta 64 zcmeBO$=th=d4f5M=jU(k6RjgzKNNi|Vw`+1ReIx=phH{?3<2Kk9Pfm6L?#Oy_6IB4 PoP7A601H^i^@;}oU3MB9 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a95009c3b..290541c73 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 0528879833bf3f0987b936aa38ef674d8b5aa059 Mon Sep 17 00:00:00 2001 From: yueh Date: Sun, 26 Jul 2020 15:28:18 +0200 Subject: [PATCH 11/18] Moved datagens to appeng.datagen (#4502) --- .../appeng/{forge/data => datagen}/AE2DataGenerators.java | 6 +++--- .../{forge/data => datagen}/providers/IAE2DataProvider.java | 2 +- .../data => datagen}/providers/loot/BlockDropProvider.java | 4 ++-- .../providers/recipes/SlabStairRecipes.java | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) rename src/main/java/appeng/{forge/data => datagen}/AE2DataGenerators.java (82%) rename src/main/java/appeng/{forge/data => datagen}/providers/IAE2DataProvider.java (92%) rename src/main/java/appeng/{forge/data => datagen}/providers/loot/BlockDropProvider.java (97%) rename src/main/java/appeng/{forge/data => datagen}/providers/recipes/SlabStairRecipes.java (97%) diff --git a/src/main/java/appeng/forge/data/AE2DataGenerators.java b/src/main/java/appeng/datagen/AE2DataGenerators.java similarity index 82% rename from src/main/java/appeng/forge/data/AE2DataGenerators.java rename to src/main/java/appeng/datagen/AE2DataGenerators.java index f5ebd256d..f494b1d1f 100644 --- a/src/main/java/appeng/forge/data/AE2DataGenerators.java +++ b/src/main/java/appeng/datagen/AE2DataGenerators.java @@ -1,4 +1,4 @@ -package appeng.forge.data; +package appeng.datagen; import net.minecraft.data.DataGenerator; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -6,8 +6,8 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.GatherDataEvent; import appeng.core.AppEng; -import appeng.forge.data.providers.loot.BlockDropProvider; -import appeng.forge.data.providers.recipes.SlabStairRecipes; +import appeng.datagen.providers.loot.BlockDropProvider; +import appeng.datagen.providers.recipes.SlabStairRecipes; @Mod.EventBusSubscriber(modid = AppEng.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) public class AE2DataGenerators { diff --git a/src/main/java/appeng/forge/data/providers/IAE2DataProvider.java b/src/main/java/appeng/datagen/providers/IAE2DataProvider.java similarity index 92% rename from src/main/java/appeng/forge/data/providers/IAE2DataProvider.java rename to src/main/java/appeng/datagen/providers/IAE2DataProvider.java index e1b5ac5ae..9fdd1ac8c 100644 --- a/src/main/java/appeng/forge/data/providers/IAE2DataProvider.java +++ b/src/main/java/appeng/datagen/providers/IAE2DataProvider.java @@ -1,4 +1,4 @@ -package appeng.forge.data.providers; +package appeng.datagen.providers; import net.minecraft.data.IDataProvider; diff --git a/src/main/java/appeng/forge/data/providers/loot/BlockDropProvider.java b/src/main/java/appeng/datagen/providers/loot/BlockDropProvider.java similarity index 97% rename from src/main/java/appeng/forge/data/providers/loot/BlockDropProvider.java rename to src/main/java/appeng/datagen/providers/loot/BlockDropProvider.java index aafba126f..fdee9537a 100644 --- a/src/main/java/appeng/forge/data/providers/loot/BlockDropProvider.java +++ b/src/main/java/appeng/datagen/providers/loot/BlockDropProvider.java @@ -1,4 +1,4 @@ -package appeng.forge.data.providers.loot; +package appeng.datagen.providers.loot; import java.io.IOException; import java.nio.file.Path; @@ -33,7 +33,7 @@ import net.minecraftforge.fml.event.lifecycle.GatherDataEvent; import net.minecraftforge.registries.ForgeRegistries; import appeng.core.AppEng; -import appeng.forge.data.providers.IAE2DataProvider; +import appeng.datagen.providers.IAE2DataProvider; public class BlockDropProvider extends BlockLootTables implements IAE2DataProvider { private Map> overrides = ImmutableMap.>builder() diff --git a/src/main/java/appeng/forge/data/providers/recipes/SlabStairRecipes.java b/src/main/java/appeng/datagen/providers/recipes/SlabStairRecipes.java similarity index 97% rename from src/main/java/appeng/forge/data/providers/recipes/SlabStairRecipes.java rename to src/main/java/appeng/datagen/providers/recipes/SlabStairRecipes.java index d2be6168d..917c3d95d 100644 --- a/src/main/java/appeng/forge/data/providers/recipes/SlabStairRecipes.java +++ b/src/main/java/appeng/datagen/providers/recipes/SlabStairRecipes.java @@ -1,4 +1,4 @@ -package appeng.forge.data.providers.recipes; +package appeng.datagen.providers.recipes; import java.util.function.Consumer; @@ -15,7 +15,7 @@ import net.minecraft.util.ResourceLocation; import appeng.api.definitions.IBlockDefinition; import appeng.core.AppEng; -import appeng.forge.data.providers.IAE2DataProvider; +import appeng.datagen.providers.IAE2DataProvider; public class SlabStairRecipes extends RecipeProvider implements IAE2DataProvider { From 774f88ee9060c9574115efb0620768250c8cbfa5 Mon Sep 17 00:00:00 2001 From: yueh Date: Sun, 26 Jul 2020 15:28:52 +0200 Subject: [PATCH 12/18] Clear searchfield on rightclick (#4503) --- src/main/java/appeng/client/gui/widgets/AETextField.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/appeng/client/gui/widgets/AETextField.java b/src/main/java/appeng/client/gui/widgets/AETextField.java index b12973900..8265d3e4e 100644 --- a/src/main/java/appeng/client/gui/widgets/AETextField.java +++ b/src/main/java/appeng/client/gui/widgets/AETextField.java @@ -60,7 +60,9 @@ public class AETextField extends TextFieldWidget { @Override public boolean mouseClicked(final double xPos, final double yPos, final int button) { - if (!super.mouseClicked(xPos, yPos, button)) { + // super will always return false, if button is != 0, however super should still + // be called. + if (!super.mouseClicked(xPos, yPos, button) && button == 0) { return false; } From 59e40ccbd984d4e3930fd2298917f07045bae371 Mon Sep 17 00:00:00 2001 From: shartte Date: Sun, 26 Jul 2020 16:30:53 +0200 Subject: [PATCH 13/18] Fixes mouse handling for right-clicks to clear the search box and middle-click for crafting. (#4505) --- .../gui/implementations/MEMonitorableScreen.java | 15 +++++++++------ .../appeng/client/gui/widgets/AETextField.java | 16 ---------------- .../java/appeng/debug/ChunkLoaderTileEntity.java | 2 ++ .../fluids/client/gui/FluidTerminalScreen.java | 16 ++++++++++------ 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java b/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java index edeb0eb22..2069dd326 100644 --- a/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java +++ b/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java @@ -295,12 +295,15 @@ public class MEMonitorableScreen extends AEBas @Override public boolean mouseClicked(final double xCoord, final double yCoord, final int btn) { if (this.searchField.mouseClicked(xCoord, yCoord, btn)) { - if (btn == 1 && this.searchField.isMouseOver(xCoord, yCoord)) { - this.searchField.setText(""); - this.repo.setSearchString(""); - this.repo.updateView(); - this.setScrollBar(); - } + return true; + } + + // Right-clicking on the search field should clear it + if (this.searchField.isMouseOver(xCoord, yCoord) && btn == 1) { + this.searchField.setText(""); + this.repo.setSearchString(""); + this.repo.updateView(); + this.setScrollBar(); return true; } diff --git a/src/main/java/appeng/client/gui/widgets/AETextField.java b/src/main/java/appeng/client/gui/widgets/AETextField.java index 8265d3e4e..89e146d28 100644 --- a/src/main/java/appeng/client/gui/widgets/AETextField.java +++ b/src/main/java/appeng/client/gui/widgets/AETextField.java @@ -58,22 +58,6 @@ public class AETextField extends TextFieldWidget { this._fontPad = (int) fontRenderer.getCharWidth('_'); } - @Override - public boolean mouseClicked(final double xPos, final double yPos, final int button) { - // super will always return false, if button is != 0, however super should still - // be called. - if (!super.mouseClicked(xPos, yPos, button) && button == 0) { - return false; - } - - final boolean requiresFocus = this.isMouseOver(xPos, yPos); - if (!this.isFocused()) { - this.setFocused2(requiresFocus); - } - - return true; - } - public void selectAll() { this.setCursorPosition(0); this.setSelectionPos(this.getMaxStringLength()); diff --git a/src/main/java/appeng/debug/ChunkLoaderTileEntity.java b/src/main/java/appeng/debug/ChunkLoaderTileEntity.java index 7c85bd99c..9cc3a93bd 100644 --- a/src/main/java/appeng/debug/ChunkLoaderTileEntity.java +++ b/src/main/java/appeng/debug/ChunkLoaderTileEntity.java @@ -46,6 +46,8 @@ public class ChunkLoaderTileEntity extends AEBaseTileEntity implements ITickable @Override public void remove() { + super.remove(); + World world = getWorld(); if (world instanceof ServerWorld) { ChunkPos chunkPos = new ChunkPos(getPos()); diff --git a/src/main/java/appeng/fluids/client/gui/FluidTerminalScreen.java b/src/main/java/appeng/fluids/client/gui/FluidTerminalScreen.java index 2535eb054..5e363b97c 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidTerminalScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidTerminalScreen.java @@ -266,12 +266,15 @@ public class FluidTerminalScreen extends AEBaseMEScreen @Override public boolean mouseClicked(final double xCoord, final double yCoord, final int btn) { if (this.searchField.mouseClicked(xCoord, yCoord, btn)) { - if (btn == 1 && this.searchField.isMouseOver(xCoord, yCoord)) { - this.searchField.setText(""); - this.repo.setSearchString(""); - this.repo.updateView(); - this.setScrollBar(); - } + return true; + } + + // Right-clicking on the search field should clear it + if (this.searchField.isMouseOver(xCoord, yCoord) && btn == 1) { + this.searchField.setText(""); + this.repo.setSearchString(""); + this.repo.updateView(); + this.setScrollBar(); return true; } @@ -332,4 +335,5 @@ public class FluidTerminalScreen extends AEBaseMEScreen protected String getBackground() { return "guis/terminal.png"; } + } From 7e89317dd5bffb1ed55fdd67aaa02c88872f47b3 Mon Sep 17 00:00:00 2001 From: shartte Date: Sun, 26 Jul 2020 22:25:18 +0200 Subject: [PATCH 14/18] Fix substitutions not being correctly recognized. (#4507) --- src/main/java/appeng/items/misc/EncodedPatternItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/appeng/items/misc/EncodedPatternItem.java b/src/main/java/appeng/items/misc/EncodedPatternItem.java index b14916f66..d1bcdb0e2 100644 --- a/src/main/java/appeng/items/misc/EncodedPatternItem.java +++ b/src/main/java/appeng/items/misc/EncodedPatternItem.java @@ -281,7 +281,7 @@ public class EncodedPatternItem extends AEBaseItem { Preconditions.checkArgument(tag != null, "itemStack missing a NBT tag"); - return getCraftingRecipeId(itemStack) == null && tag.getBoolean(NBT_SUBSITUTE); + return getCraftingRecipeId(itemStack) != null && tag.getBoolean(NBT_SUBSITUTE); } /** From 79e9a3913ac620da0f33eab7d1f8517d4c24ff89 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Sun, 26 Jul 2020 23:28:49 +0200 Subject: [PATCH 15/18] Update README.md to reflect that the data generation needs to be run. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6d06566d6..d148615c6 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ However the dependency might need to be wrapped in `fg.deobf()` like `runtimeOnl 1. Clone this repository via - SSH `git clone git@github.com:AppliedEnergistics/Applied-Energistics-2.git` or - HTTPS `git clone https://github.com/AppliedEnergistics/Applied-Energistics-2.git` -2. Build using the gradle `build` task. Jar will be in `build/libs` +2. Build using the `gradlew runData build` command. Jar will be in `build/libs` 3. For core developer: Setup IDE - IntelliJ: Import as gradle project - Eclipse: Import as gradle project or execute gradle task `eclipse` and potentially `genEclipseRuns` From 6cb6c214951d91ff3914cd5461bb48934ce43ebe Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Sun, 26 Jul 2020 23:29:34 +0200 Subject: [PATCH 16/18] Mention spotlessApply. --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d148615c6..daf3b6c0b 100644 --- a/README.md +++ b/README.md @@ -132,12 +132,13 @@ Here are a few things to keep in mind that will help get your PR approved. * SSH `git clone git@github.com:/Applied-Energistics-2.git` or * HTTPS `git clone https://github.com//Applied-Energistics-2.git` 3. Change code base -4. Add changes to git `git add -A` -5. Commit changes to your clone `git commit -m ""` -6. Push to your fork `git push` -7. Create a Pull-Request on GitHub -8. Wait for review -9. Squash commits for cleaner history +4. Run `gradlew spotlessApply` to apply automatic code formatting +5. Add changes to git `git add -A` +6. Commit changes to your clone `git commit -m ""` +7. Push to your fork `git push` +8. Create a Pull-Request on GitHub +9. Wait for review +10. Squash commits for cleaner history If you are only doing single file pull requests, GitHub supports using a quick way without the need of cloning your fork. Also read up about [synching](https://help.github.com/articles/syncing-a-fork) if you plan to contribute on regular basis. From 662dbca3e1846494b0d9178ce57e8adff082a599 Mon Sep 17 00:00:00 2001 From: yueh Date: Mon, 27 Jul 2020 11:21:06 +0200 Subject: [PATCH 17/18] Fixes #4508: Correctly construct the sparse lists. (#4511) * Fixes #4508: Correctly construct the sparse lists. Also renamed all uncondensed getters to sparse and all condensed to the simple ones. * Apply suggestions from code review Co-authored-by: shartte * Streamlined collapsing the sparse lists * Extracted helper to condense stacks * Sort lists desc by stack size Co-authored-by: shartte --- .../crafting/ICraftingPatternDetails.java | 67 ++++++-- .../implementations/PatternTermContainer.java | 21 +-- .../appeng/crafting/CraftingTreeNode.java | 4 +- .../appeng/crafting/CraftingTreeProcess.java | 22 +-- .../helpers/CraftingPatternDetails.java | 145 ++++++++---------- .../appeng/items/misc/EncodedPatternItem.java | 7 +- .../implementations/CraftingCPUCluster.java | 14 +- .../parts/reporting/PatternTerminalPart.java | 8 +- 8 files changed, 152 insertions(+), 136 deletions(-) diff --git a/src/api/java/appeng/api/networking/crafting/ICraftingPatternDetails.java b/src/api/java/appeng/api/networking/crafting/ICraftingPatternDetails.java index f2ac98821..8a82fa609 100644 --- a/src/api/java/appeng/api/networking/crafting/ICraftingPatternDetails.java +++ b/src/api/java/appeng/api/networking/crafting/ICraftingPatternDetails.java @@ -23,6 +23,8 @@ package appeng.api.networking.crafting; +import java.util.List; + import net.minecraft.inventory.CraftingInventory; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -60,24 +62,65 @@ public interface ICraftingPatternDetails { boolean isCraftable(); /** + * Equal itemstacks will be aggregated into one, respectively 3*64 will be + * returned as one stack of 192, up to 576 of a single type. + *

+ * This should be the preferred way to deal with the list of inputs. + *

+ * The list will be sorted in descending order by stack size. However there is + * no guarantee about maintaining the placement order of the inputs in case of + * equal values. + * + * @return an immutable list of inputs without nulls + */ + List getInputs(); + + /** + * Equal itemstacks will be aggregated into one, respectively 2*32 will be + * returned as one stack of 64, up to 192 of a single type. + *

+ * This should be the preferred way to deal with the list of outputs. + *

+ * + * The list will be sorted in descending order by stack size. However there is + * no guarantee about maintaining the placement order of the outputs in case of + * equal values. + * + * @return an immutable list of outputs without nulls + */ + List getOutputs(); + + /** + * A sparse list representing the placement order of a crafting grid, left to + * right, then top to bottom. + *

+ * Only use when absolutely necessary, always prefer + * {@link ICraftingPatternDetails#getInputs()} + *

+ * This will contain exactly 9 entries. + *

+ * This can return a copy from the internal structure, so there are no + * guarantees about modifications. + * * @return a list of the inputs, will include nulls. */ - IAEItemStack[] getInputs(); - - /** - * @return a list of the inputs, will be clean - */ - IAEItemStack[] getCondensedInputs(); - - /** - * @return a list of the outputs, will be clean - */ - IAEItemStack[] getCondensedOutputs(); + IAEItemStack[] getSparseInputs(); /** + * A sparse list representing the placement order of the respective output + * slots. + *

+ * Only use when absolutely necessary, always prefer + * {@link ICraftingPatternDetails#getOutputs()} + *

+ * This will either contain 1 entry for crafting patterns or 3 for processing. + *

+ * This can return a copy from the internal structure, so there are no + * guarantees about modifications. + * * @return a list of the outputs, will include nulls. */ - IAEItemStack[] getOutputs(); + IAEItemStack[] getSparseOutputs(); /** * @return if this pattern is enabled to support substitutions. diff --git a/src/main/java/appeng/container/implementations/PatternTermContainer.java b/src/main/java/appeng/container/implementations/PatternTermContainer.java index 22fd63e5b..23f8d579b 100644 --- a/src/main/java/appeng/container/implementations/PatternTermContainer.java +++ b/src/main/java/appeng/container/implementations/PatternTermContainer.java @@ -18,9 +18,6 @@ package appeng.container.implementations; -import java.util.ArrayList; -import java.util.List; - import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.ServerPlayerEntity; @@ -264,21 +261,13 @@ public class PatternTermContainer extends MEMonitorableContainer return new ItemStack[] { out }; } } else { - final List list = new ArrayList<>(3); - boolean hasValue = false; + final ItemStack[] list = new ItemStack[3]; - for (final OptionalFakeSlot outputSlot : this.outputSlots) { - final ItemStack out = outputSlot.getStack(); - - if (!out.isEmpty() && out.getCount() > 0) { - list.add(out); - hasValue = true; - } - } - - if (hasValue) { - return list.toArray(new ItemStack[list.size()]); + for (int i = 0; i < this.outputSlots.length; i++) { + final ItemStack out = this.outputSlots[i].getStack(); + list[i] = out; } + return list; } return null; diff --git a/src/main/java/appeng/crafting/CraftingTreeNode.java b/src/main/java/appeng/crafting/CraftingTreeNode.java index 67b5382d1..5b636d5dd 100644 --- a/src/main/java/appeng/crafting/CraftingTreeNode.java +++ b/src/main/java/appeng/crafting/CraftingTreeNode.java @@ -85,7 +85,7 @@ public class CraftingTreeNode { } boolean notRecursive(final ICraftingPatternDetails details) { - IAEItemStack[] o = details.getCondensedOutputs(); + Collection o = details.getOutputs(); for (final IAEItemStack i : o) { if (i.equals(this.what)) { @@ -93,7 +93,7 @@ public class CraftingTreeNode { } } - o = details.getCondensedInputs(); + o = details.getInputs(); for (final IAEItemStack i : o) { if (i.equals(this.what)) { diff --git a/src/main/java/appeng/crafting/CraftingTreeProcess.java b/src/main/java/appeng/crafting/CraftingTreeProcess.java index 31019c314..6b77b480b 100644 --- a/src/main/java/appeng/crafting/CraftingTreeProcess.java +++ b/src/main/java/appeng/crafting/CraftingTreeProcess.java @@ -64,10 +64,10 @@ public class CraftingTreeProcess { final World world = job.getWorld(); if (details.isCraftable()) { - final IAEItemStack[] list = details.getInputs(); + final IAEItemStack[] list = details.getSparseInputs(); final CraftingInventory ic = new CraftingInventory(new ContainerNull(), 3, 3); - final IAEItemStack[] is = details.getInputs(); + final IAEItemStack[] is = details.getSparseInputs(); for (int x = 0; x < ic.getSizeInventory(); x++) { ic.setInventorySlotContents(x, is[x] == null ? ItemStack.EMPTY : is[x].createItemStack()); } @@ -82,11 +82,11 @@ public class CraftingTreeProcess { } } - for (final IAEItemStack part : details.getCondensedInputs()) { + for (final IAEItemStack part : details.getInputs()) { final ItemStack g = part.createItemStack(); boolean isAnInput = false; - for (final IAEItemStack a : details.getCondensedOutputs()) { + for (final IAEItemStack a : details.getOutputs()) { if (!g.isEmpty() && a != null && a.equals(g)) { isAnInput = true; } @@ -114,7 +114,7 @@ public class CraftingTreeProcess { } else { // this is minor different then below, this slot uses the pattern, but kinda // fudges it. - for (final IAEItemStack part : details.getCondensedInputs()) { + for (final IAEItemStack part : details.getInputs()) { for (int x = 0; x < list.length; x++) { final IAEItemStack comparePart = list[x]; if (part != null && part.equals(comparePart)) { @@ -127,11 +127,11 @@ public class CraftingTreeProcess { } } } else { - for (final IAEItemStack part : details.getCondensedInputs()) { + for (final IAEItemStack part : details.getInputs()) { final ItemStack g = part.createItemStack(); boolean isAnInput = false; - for (final IAEItemStack a : details.getCondensedOutputs()) { + for (final IAEItemStack a : details.getOutputs()) { if (!g.isEmpty() && a != null && a.equals(g)) { isAnInput = true; } @@ -142,7 +142,7 @@ public class CraftingTreeProcess { } } - for (final IAEItemStack part : details.getCondensedInputs()) { + for (final IAEItemStack part : details.getInputs()) { this.nodes.put(new CraftingTreeNode(cc, job, part.copy(), this, -1, depth + 1), part.getStackSize()); } } @@ -208,7 +208,7 @@ public class CraftingTreeProcess { // assume its possible. // add crafting results.. - for (final IAEItemStack out : this.details.getCondensedOutputs()) { + for (final IAEItemStack out : this.details.getOutputs()) { final IAEItemStack o = out.copy(); o.setStackSize(o.getStackSize() * i); inv.injectItems(o, Actionable.MODULATE, src); @@ -227,7 +227,7 @@ public class CraftingTreeProcess { } IAEItemStack getAmountCrafted(IAEItemStack what2) { - for (final IAEItemStack is : this.details.getCondensedOutputs()) { + for (final IAEItemStack is : this.details.getOutputs()) { if (is.equals(what2)) { what2 = what2.copy(); what2.setStackSize(is.getStackSize()); @@ -236,7 +236,7 @@ public class CraftingTreeProcess { } // more fuzzy! - for (final IAEItemStack is : this.details.getCondensedOutputs()) { + for (final IAEItemStack is : this.details.getOutputs()) { if (is.getItem() == what2.getItem() && (is.getItem().isDamageable() || is.getItemDamage() == what2.getItemDamage())) { what2 = is.copy(); diff --git a/src/main/java/appeng/helpers/CraftingPatternDetails.java b/src/main/java/appeng/helpers/CraftingPatternDetails.java index b02de8b9e..1a8a52174 100644 --- a/src/main/java/appeng/helpers/CraftingPatternDetails.java +++ b/src/main/java/appeng/helpers/CraftingPatternDetails.java @@ -19,13 +19,17 @@ package appeng.helpers; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collection; +import java.util.Comparator; import java.util.HashSet; import java.util.List; -import java.util.Map; +import java.util.Objects; import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import net.minecraft.inventory.CraftingInventory; import net.minecraft.item.Item; @@ -46,14 +50,21 @@ import appeng.util.Platform; public class CraftingPatternDetails implements ICraftingPatternDetails, Comparable { + private static final int ALL_INPUT_LIMIT = 9; + private static final int CRAFTING_OUTPUT_LIMIT = 1; + private static final int PROCESSING_OUTPUT_LIMIT = 3; + + private static final Comparator COMPARE_BY_STACKSIZE = (left, right) -> Long + .compare(right.getStackSize(), left.getStackSize()); + private final CraftingInventory crafting = new CraftingInventory(new ContainerNull(), 3, 3); private final CraftingInventory testFrame = new CraftingInventory(new ContainerNull(), 3, 3); private final ItemStack correctOutput; private final ICraftingRecipe standardRecipe; - private final IAEItemStack[] condensedInputs; - private final IAEItemStack[] condensedOutputs; - private final IAEItemStack[] inputs; - private final IAEItemStack[] outputs; + private final List inputs; + private final List outputs; + private final IAEItemStack[] sparseInputs; + private final IAEItemStack[] sparseOutputs; private final boolean isCraftable; private final boolean canSubstitute; private final Set failCache = new HashSet<>(); @@ -79,7 +90,7 @@ public class CraftingPatternDetails implements ICraftingPatternDetails, Comparab final List in = new ArrayList<>(); final List out = new ArrayList<>(); - for (int x = 0; x < 9; x++) { + for (int x = 0; x < ALL_INPUT_LIMIT; x++) { final IAEItemStack ais = ingredients.get(x); final ItemStack gs = ais != null ? ais.createItemStack() : ItemStack.EMPTY; @@ -109,70 +120,19 @@ public class CraftingPatternDetails implements ICraftingPatternDetails, Comparab this.standardRecipe = null; this.correctOutput = ItemStack.EMPTY; - for (int x = 0; x < products.size(); x++) { + for (int x = 0; x < PROCESSING_OUTPUT_LIMIT; x++) { final IAEItemStack ais = products.get(x); - final ItemStack gs = ais.createItemStack(); - if (!gs.isEmpty()) { - out.add(ais.copy()); - } + out.add(ais != null ? ais.copy() : null); } } - this.inputs = in.toArray(new IAEItemStack[0]); - this.outputs = out.toArray(new IAEItemStack[0]); + final int outputLength = this.isCraftable ? CRAFTING_OUTPUT_LIMIT : PROCESSING_OUTPUT_LIMIT; + this.sparseInputs = in.toArray(new IAEItemStack[ALL_INPUT_LIMIT]); + this.sparseOutputs = out.toArray(new IAEItemStack[outputLength]); - final Map tmpOutputs = new HashMap<>(); - - for (final IAEItemStack io : this.outputs) { - if (io == null) { - continue; - } - - final IAEItemStack g = tmpOutputs.get(io); - - if (g == null) { - tmpOutputs.put(io, io.copy()); - } else { - g.add(io); - } - } - - final Map tmpInputs = new HashMap<>(); - - for (final IAEItemStack io : this.inputs) { - if (io == null) { - continue; - } - - final IAEItemStack g = tmpInputs.get(io); - - if (g == null) { - tmpInputs.put(io, io.copy()); - } else { - g.add(io); - } - } - - if (tmpOutputs.isEmpty() || tmpInputs.isEmpty()) { - throw new IllegalStateException("No pattern here!"); - } - - this.condensedInputs = new IAEItemStack[tmpInputs.size()]; - int offset = 0; - - for (final IAEItemStack io : tmpInputs.values()) { - this.condensedInputs[offset] = io; - offset++; - } - - offset = 0; - this.condensedOutputs = new IAEItemStack[tmpOutputs.size()]; - - for (final IAEItemStack io : tmpOutputs.values()) { - this.condensedOutputs[offset] = io; - offset++; - } + this.inputs = this.condenseStacks(in); + this.outputs = this.condenseStacks(out); } private void markItemAs(final int slotIndex, final ItemStack i, final TestStatus b) { @@ -213,8 +173,8 @@ public class CraftingPatternDetails implements ICraftingPatternDetails, Comparab this.testFrame.setInventorySlotContents(slotIndex, i); // If we cannot substitute, the items must match exactly - if (!canSubstitute && slotIndex < inputs.length) { - if (!inputs[slotIndex].isSameType(i)) { + if (!canSubstitute && slotIndex < sparseInputs.length) { + if (!sparseInputs[slotIndex].isSameType(i)) { this.markItemAs(slotIndex, i, TestStatus.DECLINE); return false; } @@ -240,25 +200,25 @@ public class CraftingPatternDetails implements ICraftingPatternDetails, Comparab } @Override - public IAEItemStack[] getInputs() { + public IAEItemStack[] getSparseInputs() { + return this.sparseInputs; + } + + @Override + public List getInputs() { return this.inputs; } @Override - public IAEItemStack[] getCondensedInputs() { - return this.condensedInputs; - } - - @Override - public IAEItemStack[] getCondensedOutputs() { - return this.condensedOutputs; - } - - @Override - public IAEItemStack[] getOutputs() { + public List getOutputs() { return this.outputs; } + @Override + public IAEItemStack[] getSparseOutputs() { + return this.sparseOutputs; + } + @Override public boolean canSubstitute() { return this.canSubstitute; @@ -276,8 +236,8 @@ public class CraftingPatternDetails implements ICraftingPatternDetails, Comparab } } - if (this.outputs != null && this.outputs.length > 0) { - return this.outputs[0].createItemStack(); + if (this.sparseOutputs != null && this.sparseOutputs.length > 0) { + return this.sparseOutputs[0].createItemStack(); } return ItemStack.EMPTY; @@ -344,6 +304,29 @@ public class CraftingPatternDetails implements ICraftingPatternDetails, Comparab return false; } + /** + * Merges all equal entries into a single one while adding their total stack + * sizes. + * + * @throws IllegalStateException if the result would be empty. + * + * @param collection the collection to condense + * + * @return a non empty list of condensed stacks. + */ + private List condenseStacks(Collection collection) { + final List merged = collection.stream().filter(Objects::nonNull) + .collect(Collectors.toMap(Function.identity(), IAEItemStack::copy, + (left, right) -> left.setStackSize(left.getStackSize() + right.getStackSize()))) + .values().stream().sorted(COMPARE_BY_STACKSIZE).collect(ImmutableList.toImmutableList()); + + if (merged.isEmpty()) { + throw new IllegalStateException("No pattern here!"); + } + + return merged; + } + private enum TestStatus { ACCEPT, DECLINE, TEST } diff --git a/src/main/java/appeng/items/misc/EncodedPatternItem.java b/src/main/java/appeng/items/misc/EncodedPatternItem.java index d1bcdb0e2..bb6d90d10 100644 --- a/src/main/java/appeng/items/misc/EncodedPatternItem.java +++ b/src/main/java/appeng/items/misc/EncodedPatternItem.java @@ -19,6 +19,7 @@ package appeng.items.misc; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.WeakHashMap; @@ -155,8 +156,8 @@ public class EncodedPatternItem extends AEBaseItem { final boolean isCrafting = details.isCraftable(); final boolean substitute = details.canSubstitute(); - final IAEItemStack[] in = details.getCondensedInputs(); - final IAEItemStack[] out = details.getCondensedOutputs(); + final Collection in = details.getInputs(); + final Collection out = details.getOutputs(); final ITextComponent label = (isCrafting ? GuiText.Crafts.textComponent() : GuiText.Creates.textComponent()) .appendText(": "); @@ -208,7 +209,7 @@ public class EncodedPatternItem extends AEBaseItem { final ICraftingPatternDetails details = Api.instance().crafting().decodePattern(item, w); - out = details != null ? details.getOutputs()[0].createItemStack() : ItemStack.EMPTY; + out = details != null ? details.getOutputs().get(0).createItemStack() : ItemStack.EMPTY; SIMPLE_CACHE.put(item, out); return out; diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java index 00b404b19..45fe9fcba 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java @@ -429,7 +429,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { return null; } - private boolean canCraft(final ICraftingPatternDetails details, final IAEItemStack[] condensedInputs) { + private boolean canCraft(final ICraftingPatternDetails details, final Collection condensedInputs) { for (IAEItemStack g : condensedInputs) { if (details.isCraftable()) { @@ -557,7 +557,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { final ICraftingPatternDetails details = e.getKey(); - if (this.canCraft(details, details.getCondensedInputs())) { + if (this.canCraft(details, details.getInputs())) { CraftingInventory ic = null; for (final ICraftingMedium m : cc.getMediums(e.getKey())) { @@ -567,7 +567,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { if (!m.isBusy()) { if (ic == null) { - final IAEItemStack[] input = details.getInputs(); + final IAEItemStack[] input = details.getSparseInputs(); double sum = 0; for (final IAEItemStack anInput : input) { @@ -663,7 +663,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { this.somethingChanged = true; this.remainingOperations--; - for (final IAEItemStack out : details.getCondensedOutputs()) { + for (final IAEItemStack out : details.getOutputs()) { this.postChange(out, this.machineSrc); this.waitingFor.add(out.copy()); this.postCraftingStatusChange(out.copy()); @@ -896,7 +896,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { break; case PENDING: for (final Entry t : this.tasks.entrySet()) { - for (IAEItemStack ais : t.getKey().getCondensedOutputs()) { + for (IAEItemStack ais : t.getKey().getOutputs()) { ais = ais.copy(); ais.setStackSize(ais.getStackSize() * t.getValue().value); list.add(ais); @@ -915,7 +915,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { } for (final Entry t : this.tasks.entrySet()) { - for (IAEItemStack ais : t.getKey().getCondensedOutputs()) { + for (IAEItemStack ais : t.getKey().getOutputs()) { ais = ais.copy(); ais.setStackSize(ais.getStackSize() * t.getValue().value); list.add(ais); @@ -960,7 +960,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { is.setStackSize(0); for (final Entry t : this.tasks.entrySet()) { - for (final IAEItemStack ais : t.getKey().getCondensedOutputs()) { + for (final IAEItemStack ais : t.getKey().getOutputs()) { if (ais.equals(is)) { is.setStackSize(is.getStackSize() + ais.getStackSize() * t.getValue().value); } diff --git a/src/main/java/appeng/parts/reporting/PatternTerminalPart.java b/src/main/java/appeng/parts/reporting/PatternTerminalPart.java index 4576b158d..783040e2d 100644 --- a/src/main/java/appeng/parts/reporting/PatternTerminalPart.java +++ b/src/main/java/appeng/parts/reporting/PatternTerminalPart.java @@ -113,13 +113,13 @@ public class PatternTerminalPart extends AbstractTerminalPart { this.setCraftingRecipe(details.isCraftable()); this.setSubstitution(details.canSubstitute()); - for (int x = 0; x < this.crafting.getSlots() && x < details.getInputs().length; x++) { - final IAEItemStack item = details.getInputs()[x]; + for (int x = 0; x < this.crafting.getSlots() && x < details.getSparseInputs().length; x++) { + final IAEItemStack item = details.getSparseInputs()[x]; this.crafting.setStackInSlot(x, item == null ? ItemStack.EMPTY : item.createItemStack()); } - for (int x = 0; x < this.output.getSlots() && x < details.getOutputs().length; x++) { - final IAEItemStack item = details.getOutputs()[x]; + for (int x = 0; x < this.output.getSlots() && x < details.getSparseOutputs().length; x++) { + final IAEItemStack item = details.getSparseOutputs()[x]; this.output.setStackInSlot(x, item == null ? ItemStack.EMPTY : item.createItemStack()); } } From 56ecda5173136282484805417e2fc505c5c97631 Mon Sep 17 00:00:00 2001 From: yueh Date: Wed, 22 Jul 2020 16:44:42 +0200 Subject: [PATCH 18/18] 1.16 port --- gradle.properties | 16 ++-- gradle/scripts/dependencies.gradle | 2 +- .../java/appeng/api/features/IWorldGen.java | 2 +- .../items/ISpatialStorageCell.java | 2 +- src/api/java/appeng/api/parts/IPart.java | 10 +-- src/api/java/appeng/api/parts/IPartHost.java | 4 +- .../appeng/api/storage/ISpatialDimension.java | 2 +- .../appeng/api/util/DimensionalCoord.java | 11 +-- .../block/AEBaseBlockItemChargeable.java | 13 ++-- .../java/appeng/block/misc/ChargerBlock.java | 4 +- .../appeng/block/misc/QuartzFixtureBlock.java | 4 +- .../block/networking/CableBusBlock.java | 18 ++--- .../block/networking/CableBusColor.java | 4 +- .../block/networking/ControllerBlock.java | 4 +- .../block/networking/WirelessBlock.java | 2 +- .../block/paint/PaintSplotchesBakedModel.java | 12 +-- .../block/paint/PaintSplotchesModel.java | 6 +- .../appeng/block/qnb/QnbFormedBakedModel.java | 18 ++--- .../java/appeng/block/qnb/QnbFormedModel.java | 6 +- .../block/spatial/MatrixFrameBlock.java | 2 +- .../java/appeng/block/storage/ChestBlock.java | 2 +- .../appeng/block/storage/DriveSlotState.java | 2 +- src/main/java/appeng/client/ClientHelper.java | 6 +- .../appeng/client/gui/AEBaseMEScreen.java | 19 +++-- .../java/appeng/client/gui/AEBaseScreen.java | 74 +++++++++++-------- .../gui/implementations/AESubScreen.java | 6 +- .../implementations/CellWorkbenchScreen.java | 4 +- .../gui/implementations/ChestScreen.java | 12 +-- .../gui/implementations/CondenserScreen.java | 12 +-- .../implementations/CraftAmountScreen.java | 14 ++-- .../implementations/CraftConfirmScreen.java | 41 +++++----- .../implementations/CraftingCPUScreen.java | 30 ++++---- .../implementations/CraftingStatusScreen.java | 14 ++-- .../implementations/CraftingTermScreen.java | 11 ++- .../gui/implementations/DriveScreen.java | 16 ++-- .../implementations/FormationPlaneScreen.java | 10 ++- .../gui/implementations/GrinderScreen.java | 10 ++- .../gui/implementations/IOPortScreen.java | 15 ++-- .../gui/implementations/InscriberScreen.java | 16 ++-- .../gui/implementations/InterfaceScreen.java | 16 ++-- .../InterfaceTerminalScreen.java | 15 ++-- .../implementations/LevelEmitterScreen.java | 17 +++-- .../implementations/MEMonitorableScreen.java | 22 +++--- .../MolecularAssemblerScreen.java | 15 ++-- .../implementations/NetworkStatusScreen.java | 36 +++++---- .../implementations/NetworkToolScreen.java | 13 +++- .../implementations/NumberEntryWidget.java | 27 ++++--- .../implementations/PatternTermScreen.java | 15 ++-- .../gui/implementations/PriorityScreen.java | 14 ++-- .../client/gui/implementations/QNBScreen.java | 13 +++- .../implementations/QuartzKnifeScreen.java | 19 +++-- .../SecurityStationScreen.java | 8 +- .../gui/implementations/SkyChestScreen.java | 13 +++- .../implementations/SpatialIOPortScreen.java | 26 ++++--- .../gui/implementations/StorageBusScreen.java | 12 ++- .../implementations/UpgradeableScreen.java | 13 +++- .../VibrationChamberScreen.java | 17 +++-- .../gui/implementations/WirelessScreen.java | 14 ++-- .../client/gui/widgets/AETextField.java | 23 +++--- .../client/gui/widgets/CustomSlotWidget.java | 7 +- .../appeng/client/gui/widgets/ITooltip.java | 4 +- .../appeng/client/gui/widgets/IconButton.java | 6 +- .../appeng/client/gui/widgets/NumberBox.java | 3 +- .../client/gui/widgets/ProgressBar.java | 25 ++++--- .../appeng/client/gui/widgets/TabButton.java | 12 +-- .../client/gui/widgets/ToggleButton.java | 13 ++-- .../render/ColorableTileBlockColor.java | 4 +- .../DummyFluidDispatcherBakedModel.java | 14 ++-- .../client/render/DummyFluidItemModel.java | 6 +- .../appeng/client/render/FacadeItemModel.java | 6 +- .../client/render/FacingToRotation.java | 12 +-- .../client/render/SpatialSkyRender.java | 2 +- .../client/render/StackSizeRenderer.java | 4 +- .../client/render/StaticBlockColor.java | 4 +- .../client/render/TesrRenderHelper.java | 2 +- .../client/render/cablebus/CableBuilder.java | 13 ++-- .../cablebus/CableBusBreakingParticle.java | 6 +- .../client/render/cablebus/CableBusModel.java | 8 +- .../render/cablebus/CableBusRenderState.java | 8 +- .../client/render/cablebus/CableCoreType.java | 6 +- .../client/render/cablebus/CubeBuilder.java | 2 +- .../render/cablebus/FacadeBlockAccess.java | 12 +-- .../client/render/cablebus/FacadeBuilder.java | 6 +- .../cablebus/P2PTunnelFrequencyModel.java | 8 +- .../client/render/cablebus/QuadRotator.java | 4 +- .../render/cablebus/SmartCableTextures.java | 8 +- .../render/crafting/CraftingCubeModel.java | 42 +++++------ .../crafting/EncodedPatternBakedModel.java | 2 +- .../render/crafting/EncodedPatternModel.java | 6 +- .../client/render/effects/CraftingFx.java | 15 ++-- .../client/render/effects/EnergyFx.java | 6 +- .../effects/LightningArcParticleData.java | 10 +-- .../client/render/effects/LightningFX.java | 22 +++--- .../client/render/effects/MatterCannonFX.java | 6 +- .../client/render/effects/VibrantFX.java | 6 +- .../render/model/AutoRotatingBakedModel.java | 12 +-- .../render/model/BiometricCardModel.java | 8 +- .../render/model/ColorApplicatorModel.java | 12 +-- .../client/render/model/DriveBakedModel.java | 4 +- .../client/render/model/DriveModel.java | 6 +- .../client/render/model/GlassBakedModel.java | 37 +++++----- .../client/render/model/GlassModel.java | 8 +- .../render/model/MatrixVertexTransformer.java | 4 +- .../client/render/model/MemoryCardModel.java | 7 +- .../client/render/model/RenderHelper.java | 32 ++++---- .../render/model/SkyCompassBakedModel.java | 4 +- .../client/render/model/SkyCompassModel.java | 6 +- .../client/render/model/UVLModelLoader.java | 8 +- .../render/renderable/ItemRenderable.java | 2 +- .../render/spatial/SpatialPylonModel.java | 10 +-- .../client/render/tesr/CellLedRenderer.java | 2 +- .../appeng/client/render/tesr/CrankTESR.java | 2 +- .../tesr/DriveLedTileEntityRenderer.java | 2 +- .../client/render/tesr/InscriberTESR.java | 6 +- .../client/render/tesr/SkyChestTESR.java | 12 +-- src/main/java/appeng/core/AEConfig.java | 5 +- src/main/java/appeng/core/Registration.java | 12 +-- .../registries/MovableTileRegistry.java | 6 +- .../features/registries/WorldGenRegistry.java | 2 +- .../appeng/core/localization/GuiText.java | 5 +- .../core/sync/network/NetworkHandler.java | 2 +- .../appeng/core/sync/network/TargetPoint.java | 2 +- .../appeng/core/sync/packets/ClickPacket.java | 6 +- .../java/appeng/core/worlddata/WorldData.java | 2 +- .../providers/loot/BlockDropProvider.java | 22 +++--- .../appeng/debug/DebugPartPlacerItem.java | 4 +- .../java/appeng/debug/ReplicatorCardItem.java | 2 +- .../appeng/entity/TinyTNTPrimedEntity.java | 2 +- .../appeng/entity/TinyTNTPrimedRenderer.java | 2 +- .../client/gui/FluidFormationPlaneScreen.java | 2 +- .../client/gui/FluidInterfaceScreen.java | 19 +++-- .../client/gui/FluidLevelEmitterScreen.java | 15 ++-- .../client/gui/FluidStorageBusScreen.java | 10 ++- .../client/gui/FluidTerminalScreen.java | 20 ++--- .../client/gui/widgets/FluidSlotWidget.java | 12 +-- .../client/gui/widgets/FluidTankWidget.java | 21 +++--- .../parts/FluidAnnihilationPlanePart.java | 7 +- .../fluids/parts/FluidFormationPlanePart.java | 4 +- .../fluids/parts/FluidInterfacePart.java | 4 +- .../fluids/parts/FluidLevelEmitterPart.java | 4 +- .../fluids/parts/FluidStorageBusPart.java | 4 +- .../fluids/parts/SharedFluidBusPart.java | 4 +- src/main/java/appeng/helpers/AEMaterials.java | 8 +- .../java/appeng/helpers/DualityInterface.java | 6 +- src/main/java/appeng/helpers/Splotch.java | 4 +- .../modules/jei/CondenserCategory.java | 22 +++--- .../theoneprobe/part/ChannelInfoProvider.java | 3 +- .../part/P2PStateInfoProvider.java | 14 ++-- .../theoneprobe/part/PartAccessor.java | 4 +- .../part/PowerStateInfoProvider.java | 13 ++-- .../part/StorageMonitorInfoProvider.java | 11 +-- .../theoneprobe/tile/ChargerInfoProvider.java | 3 +- .../tile/CraftingMonitorInfoProvider.java | 4 +- .../tile/PowerStateInfoProvider.java | 6 +- .../tile/PowerStorageInfoProvider.java | 5 +- .../appeng/items/misc/EncodedPatternItem.java | 39 +++++----- .../java/appeng/items/parts/FacadeItem.java | 4 +- .../items/storage/SpatialStorageCellItem.java | 2 +- .../appeng/items/tools/BiometricCardItem.java | 12 +-- .../appeng/items/tools/MemoryCardItem.java | 10 +-- .../tools/powered/ColorApplicatorItem.java | 14 ++-- .../items/tools/powered/MatterCannonItem.java | 54 +++++++------- .../items/tools/quartz/QuartzHoeItem.java | 2 +- .../java/appeng/me/cluster/IAECluster.java | 1 - .../java/appeng/me/cluster/MBCalculator.java | 4 +- .../implementations/CraftingCPUCluster.java | 23 +++++- .../implementations/QuantumCluster.java | 2 +- src/main/java/appeng/parts/AEBasePart.java | 10 +-- .../java/appeng/parts/CableBusContainer.java | 8 +- .../java/appeng/parts/ICableBusContainer.java | 8 +- .../appeng/parts/NullCableBusContainer.java | 8 +- src/main/java/appeng/parts/PartPlacement.java | 8 +- .../automation/AnnihilationPlanePart.java | 6 +- .../parts/automation/ExportBusPart.java | 4 +- .../parts/automation/FormationPlanePart.java | 4 +- .../parts/automation/ImportBusPart.java | 4 +- .../parts/automation/LevelEmitterPart.java | 4 +- .../appeng/parts/automation/PlaneModel.java | 18 ++--- .../appeng/parts/misc/CableAnchorPart.java | 8 +- .../java/appeng/parts/misc/InterfacePart.java | 4 +- .../appeng/parts/misc/StorageBusPart.java | 4 +- .../java/appeng/parts/p2p/P2PTunnelPart.java | 6 +- .../parts/reporting/AbstractMonitorPart.java | 6 +- .../reporting/AbstractReportingPart.java | 4 +- .../parts/reporting/AbstractTerminalPart.java | 4 +- .../reporting/ConversionMonitorPart.java | 8 +- .../reporting/InterfaceTerminalPart.java | 4 +- .../subcommands/TestMeteoritesCommand.java | 15 ++-- .../server/subcommands/TestOreGenCommand.java | 9 ++- .../java/appeng/services/CompassService.java | 2 +- .../spatial/SpatialDimensionManager.java | 2 +- .../appeng/spatial/StorageCellDimension.java | 10 +-- .../spatial/StorageCellModDimension.java | 4 +- .../codechicken/lib/model/Quad.java | 2 +- .../transformers/QuadCornerKicker.java | 4 +- .../transformers/QuadMatrixTransformer.java | 4 +- .../java/appeng/tile/AEBaseInvTileEntity.java | 5 +- .../java/appeng/tile/AEBaseTileEntity.java | 8 +- .../crafting/CraftingMonitorTileEntity.java | 5 +- .../tile/crafting/CraftingTileEntity.java | 4 +- .../MolecularAssemblerTileEntity.java | 7 +- .../tile/grid/AENetworkInvTileEntity.java | 5 +- .../tile/grid/AENetworkPowerTileEntity.java | 5 +- .../appeng/tile/grid/AENetworkTileEntity.java | 5 +- .../tile/misc/CellWorkbenchTileEntity.java | 5 +- .../appeng/tile/misc/CondenserTileEntity.java | 5 +- .../appeng/tile/misc/InscriberTileEntity.java | 5 +- .../appeng/tile/misc/InterfaceTileEntity.java | 5 +- .../tile/misc/PaintSplotchesTileEntity.java | 8 +- .../tile/misc/SecurityStationTileEntity.java | 5 +- .../tile/misc/VibrationChamberTileEntity.java | 5 +- .../tile/networking/CableBusTileEntity.java | 9 ++- .../tile/networking/EnergyCellTileEntity.java | 5 +- .../powersink/AEBasePoweredTileEntity.java | 5 +- .../tile/spatial/SpatialIOPortTileEntity.java | 5 +- .../appeng/tile/storage/ChestTileEntity.java | 34 +++++++-- .../appeng/tile/storage/DriveTileEntity.java | 5 +- .../appeng/tile/storage/IOPortTileEntity.java | 5 +- src/main/java/appeng/util/LookDirection.java | 12 +-- src/main/java/appeng/util/Platform.java | 16 ++-- .../worldgen/ChargedQuartzOreConfig.java | 4 +- .../worldgen/ChargedQuartzOreFeature.java | 11 ++- .../meteorite/MeteoriteStructure.java | 18 ++--- .../meteorite/MeteoriteStructureStart.java | 8 +- .../meteorite/debug/MeteoriteSpawner.java | 4 +- 225 files changed, 1214 insertions(+), 969 deletions(-) diff --git a/gradle.properties b/gradle.properties index a60f97115..e5394e1e1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,24 +8,24 @@ artifact_basename=appliedenergistics2 ######################################################### # Minecraft Versions # ######################################################### -minecraft_release=1.15 -minecraft_version=1.15.2 -mcp_mappings=20200715-1.15.1 -forge_version=31.2.31 +minecraft_release=1.16 +minecraft_version=1.16.1 +mcp_mappings=20200707-1.16.1 +forge_version=32.0.71 ######################################################### # Provided APIs # ######################################################### -jei_version=6.0.2.12 -top_version=2.0.4-5 +jei_version=7.0.0.6 +top_version=3.0.1-beta-4 hwyla_version=1.10.8-B72_1.15.2 ctm_version=MC1.15.2-1.1.0.9 ######################################################### # Deployment # ######################################################### -website_version=1.15.2 -curse_versions=1.15.2 +website_version=1.16.1 +curse_versions=1.16.1 curseforge_project=223794 ######################################################### diff --git a/gradle/scripts/dependencies.gradle b/gradle/scripts/dependencies.gradle index 268110003..064d84dde 100644 --- a/gradle/scripts/dependencies.gradle +++ b/gradle/scripts/dependencies.gradle @@ -35,7 +35,7 @@ dependencies { // Runtime, Mods runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}") runtimeOnly fg.deobf("mcjty.theoneprobe:TheOneProbe-${minecraft_release}:${minecraft_release}-${top_version}") - runtimeOnly fg.deobf("team.chisel.ctm:CTM:${ctm_version}") + //runtimeOnly fg.deobf("team.chisel.ctm:CTM:${ctm_version}") // unit test dependencies testCompile "junit:junit:4.13" diff --git a/src/api/java/appeng/api/features/IWorldGen.java b/src/api/java/appeng/api/features/IWorldGen.java index a03fe81d4..d49bacefc 100644 --- a/src/api/java/appeng/api/features/IWorldGen.java +++ b/src/api/java/appeng/api/features/IWorldGen.java @@ -24,8 +24,8 @@ package appeng.api.features; import net.minecraft.util.ResourceLocation; +import net.minecraft.world.Dimension; import net.minecraft.world.IWorld; -import net.minecraft.world.dimension.Dimension; public interface IWorldGen { diff --git a/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java b/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java index afbca3f53..3db725057 100644 --- a/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java +++ b/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java @@ -25,8 +25,8 @@ package appeng.api.implementations.items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.world.DimensionType; import net.minecraft.world.World; -import net.minecraft.world.dimension.DimensionType; import appeng.api.implementations.TransitionResult; import appeng.api.util.WorldCoord; diff --git a/src/api/java/appeng/api/parts/IPart.java b/src/api/java/appeng/api/parts/IPart.java index b0ce31f81..c6c0c2607 100644 --- a/src/api/java/appeng/api/parts/IPart.java +++ b/src/api/java/appeng/api/parts/IPart.java @@ -42,7 +42,7 @@ import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; @@ -221,7 +221,7 @@ public interface IPart extends ICustomCableConnection { * * @return if your activate method performed something. */ - boolean onActivate(PlayerEntity player, Hand hand, Vec3d pos); + boolean onActivate(PlayerEntity player, Hand hand, Vector3d pos); /** * Called when you right click the part, very similar to Block.onActivateBlock @@ -233,7 +233,7 @@ public interface IPart extends ICustomCableConnection { * @return if your activate method performed something, you should use false * unless you really need it. */ - boolean onShiftActivate(PlayerEntity player, Hand hand, Vec3d pos); + boolean onShiftActivate(PlayerEntity player, Hand hand, Vector3d pos); /** * Called when you left click the part, very similar to Block.onBlockClicked @@ -245,7 +245,7 @@ public interface IPart extends ICustomCableConnection { * @return if your activate method performed something, you should use false * unless you really need it. */ - default boolean onClicked(PlayerEntity player, Hand hand, Vec3d pos) { + default boolean onClicked(PlayerEntity player, Hand hand, Vector3d pos) { return false; } @@ -260,7 +260,7 @@ public interface IPart extends ICustomCableConnection { * @return if your activate method performed something, you should use false * unless you really need it. */ - default boolean onShiftClicked(PlayerEntity player, Hand hand, Vec3d pos) { + default boolean onShiftClicked(PlayerEntity player, Hand hand, Vector3d pos) { return false; } diff --git a/src/api/java/appeng/api/parts/IPartHost.java b/src/api/java/appeng/api/parts/IPartHost.java index 4291e047a..a34f918aa 100644 --- a/src/api/java/appeng/api/parts/IPartHost.java +++ b/src/api/java/appeng/api/parts/IPartHost.java @@ -30,7 +30,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.Hand; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import appeng.api.util.AEColor; import appeng.api.util.AEPartLocation; @@ -146,7 +146,7 @@ public interface IPartHost extends ICustomCableConnection { * * @return a new SelectedPart, this is never null. */ - SelectedPart selectPart(Vec3d pos); + SelectedPart selectPart(Vector3d pos); /** * can be used by parts to trigger the tile or part to save. diff --git a/src/api/java/appeng/api/storage/ISpatialDimension.java b/src/api/java/appeng/api/storage/ISpatialDimension.java index 18eb95c8b..c001e4f4b 100644 --- a/src/api/java/appeng/api/storage/ISpatialDimension.java +++ b/src/api/java/appeng/api/storage/ISpatialDimension.java @@ -24,7 +24,7 @@ import javax.annotation.Nullable; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; -import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.DimensionType; import net.minecraft.world.server.ServerWorld; public interface ISpatialDimension { diff --git a/src/api/java/appeng/api/util/DimensionalCoord.java b/src/api/java/appeng/api/util/DimensionalCoord.java index 0b0112d8f..c8626478c 100644 --- a/src/api/java/appeng/api/util/DimensionalCoord.java +++ b/src/api/java/appeng/api/util/DimensionalCoord.java @@ -25,8 +25,9 @@ package appeng.api.util; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.Dimension; +import net.minecraft.world.DimensionType; import net.minecraft.world.IWorld; -import net.minecraft.world.dimension.Dimension; /** * Represents a location in the Minecraft Universe @@ -34,7 +35,7 @@ import net.minecraft.world.dimension.Dimension; public class DimensionalCoord extends WorldCoord { private final IWorld world; - private final Dimension dimension; + private final DimensionType dimension; public DimensionalCoord(final DimensionalCoord coordinate) { super(coordinate.x, coordinate.y, coordinate.z); @@ -45,19 +46,19 @@ public class DimensionalCoord extends WorldCoord { public DimensionalCoord(final TileEntity tileEntity) { super(tileEntity); this.world = tileEntity.getWorld(); - this.dimension = this.world.getDimension(); + this.dimension = this.world.func_230315_m_(); } public DimensionalCoord(final IWorld world, final int x, final int y, final int z) { super(x, y, z); this.world = world; - this.dimension = world.getDimension(); + this.dimension = world.func_230315_m_(); } public DimensionalCoord(final IWorld world, final BlockPos pos) { super(pos); this.world = world; - this.dimension = world.getDimension(); + this.dimension = world.func_230315_m_(); } @Override diff --git a/src/main/java/appeng/block/AEBaseBlockItemChargeable.java b/src/main/java/appeng/block/AEBaseBlockItemChargeable.java index 988f201c1..6070ebf3c 100644 --- a/src/main/java/appeng/block/AEBaseBlockItemChargeable.java +++ b/src/main/java/appeng/block/AEBaseBlockItemChargeable.java @@ -25,7 +25,6 @@ import net.minecraft.block.Block; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.World; @@ -45,12 +44,12 @@ public class AEBaseBlockItemChargeable extends AEBaseBlockItem implements IAEIte public AEBaseBlockItemChargeable(Block id, Properties props) { super(id, props); - addPropertyOverride(new ResourceLocation("appliedenergistics2:fill_level"), (is, world, entity) -> { + /*addPropertyOverride(new ResourceLocation("appliedenergistics2:fill_level"), (is, world, entity) -> { double curPower = getAECurrentPower(is); double maxPower = getAEMaxPower(is); return (int) Math.round(100 * curPower / maxPower); - }); + });*/ } @Override @@ -68,10 +67,10 @@ public class AEBaseBlockItemChargeable extends AEBaseBlockItem implements IAEIte final double percent = internalCurrentPower / internalMaxPower; - lines.add(GuiText.StoredEnergy.textComponent() - .appendText(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) - .appendSibling(new TranslationTextComponent(PowerUnits.AE.unlocalizedName)) - .appendText(" - " + MessageFormat.format("{0,number,#.##%}", percent))); + lines.add(GuiText.StoredEnergy.textComponent().deepCopy() + .func_240702_b_(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) + .func_230529_a_(new TranslationTextComponent(PowerUnits.AE.unlocalizedName)) + .func_240702_b_(" - " + MessageFormat.format("{0,number,#.##%}", percent))); } } diff --git a/src/main/java/appeng/block/misc/ChargerBlock.java b/src/main/java/appeng/block/misc/ChargerBlock.java index 913ea3b9f..521ffb908 100644 --- a/src/main/java/appeng/block/misc/ChargerBlock.java +++ b/src/main/java/appeng/block/misc/ChargerBlock.java @@ -29,8 +29,6 @@ import org.apache.commons.lang3.tuple.Pair; import net.minecraft.block.BlockState; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.TransformationMatrix; -import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.entity.player.PlayerEntity; @@ -44,6 +42,8 @@ import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; +import net.minecraft.util.math.vector.TransformationMatrix; +import net.minecraft.util.math.vector.Vector3f; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; diff --git a/src/main/java/appeng/block/misc/QuartzFixtureBlock.java b/src/main/java/appeng/block/misc/QuartzFixtureBlock.java index b90e3c86b..8e2f1ea69 100644 --- a/src/main/java/appeng/block/misc/QuartzFixtureBlock.java +++ b/src/main/java/appeng/block/misc/QuartzFixtureBlock.java @@ -80,8 +80,8 @@ public class QuartzFixtureBlock extends AEBaseBlock implements IOrientableBlock public static final BooleanProperty ODD = BooleanProperty.create("odd"); public QuartzFixtureBlock() { - super(defaultProps(Material.MISCELLANEOUS).doesNotBlockMovement().hardnessAndResistance(0).lightValue(14) - .sound(SoundType.GLASS).notSolid()); + super(defaultProps(Material.MISCELLANEOUS).doesNotBlockMovement().hardnessAndResistance(0) + .setLightLevel((b) -> 14).sound(SoundType.GLASS).notSolid()); this.setDefaultState(getDefaultState().with(FACING, Direction.UP).with(ODD, false)); } diff --git a/src/main/java/appeng/block/networking/CableBusBlock.java b/src/main/java/appeng/block/networking/CableBusBlock.java index edb101ef9..2affc7c56 100644 --- a/src/main/java/appeng/block/networking/CableBusBlock.java +++ b/src/main/java/appeng/block/networking/CableBusBlock.java @@ -33,7 +33,7 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.fluid.IFluidState; +import net.minecraft.fluid.FluidState; import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.DyeColor; import net.minecraft.item.ItemGroup; @@ -47,10 +47,10 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.RayTraceResult.Type; -import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorld; import net.minecraft.world.IWorldReader; @@ -146,7 +146,7 @@ public class CableBusBlock extends AEBaseTileBlock implement @Override public boolean removedByPlayer(BlockState state, World world, BlockPos pos, PlayerEntity player, - boolean willHarvest, IFluidState fluid) { + boolean willHarvest, FluidState fluid) { if (player.abilities.isCreativeMode) { final AEBaseTileEntity tile = this.getTileEntity(world, pos); if (tile != null) { @@ -171,7 +171,7 @@ public class CableBusBlock extends AEBaseTileBlock implement @Override public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, PlayerEntity player) { - final Vec3d v3 = target.getHitVec().subtract(pos.getX(), pos.getY(), pos.getZ()); + final Vector3d v3 = target.getHitVec().subtract(pos.getX(), pos.getY(), pos.getZ()); final SelectedPart sp = this.cb(world, pos).selectPart(v3); if (sp.part != null) { @@ -223,7 +223,7 @@ public class CableBusBlock extends AEBaseTileBlock implement // FIXME: Check how this looks, probably like shit, maybe provide parts the // ability to supply particle textures??? effectRenderer - .addEffect(new CableBusBreakingParticle(world, x, y, z, texture).multiplyParticleScaleBy(0.8F)); + .addEffect(new CableBusBreakingParticle(world, x, y, z, texture).multipleParticleScaleBy(0.8F)); } return true; @@ -313,7 +313,7 @@ public class CableBusBlock extends AEBaseTileBlock implement if (rtr instanceof BlockRayTraceResult) { BlockRayTraceResult brtr = (BlockRayTraceResult) rtr; if (brtr.getPos().equals(pos)) { - final Vec3d hitVec = rtr.getHitVec().subtract(new Vec3d(pos)); + final Vector3d hitVec = rtr.getHitVec().subtract(new Vector3d(pos.getX(), pos.getY(), pos.getZ())); if (this.cb(worldIn, pos).clicked(player, Hand.MAIN_HAND, hitVec)) { NetworkHandler.instance().sendToServer(new ClickPacket(pos, brtr.getFace(), (float) hitVec.x, @@ -324,7 +324,7 @@ public class CableBusBlock extends AEBaseTileBlock implement } } - public void onBlockClickPacket(World worldIn, BlockPos pos, PlayerEntity playerIn, Hand hand, Vec3d hitVec) { + public void onBlockClickPacket(World worldIn, BlockPos pos, PlayerEntity playerIn, Hand hand, Vector3d hitVec) { this.cb(worldIn, pos).clicked(playerIn, hand, hitVec); } @@ -332,8 +332,8 @@ public class CableBusBlock extends AEBaseTileBlock implement public ActionResultType onActivated(final World w, final BlockPos pos, final PlayerEntity player, final Hand hand, final @Nullable ItemStack heldItem, final BlockRayTraceResult hit) { // Transform from world into block space - Vec3d hitVec = hit.getHitVec(); - Vec3d hitInBlock = new Vec3d(hitVec.x - pos.getX(), hitVec.y - pos.getY(), hitVec.z - pos.getZ()); + Vector3d hitVec = hit.getHitVec(); + Vector3d hitInBlock = new Vector3d(hitVec.x - pos.getX(), hitVec.y - pos.getY(), hitVec.z - pos.getZ()); return this.cb(w, pos).activate(player, hand, hitInBlock) ? ActionResultType.SUCCESS : ActionResultType.PASS; } diff --git a/src/main/java/appeng/block/networking/CableBusColor.java b/src/main/java/appeng/block/networking/CableBusColor.java index 41e701202..206fbe275 100644 --- a/src/main/java/appeng/block/networking/CableBusColor.java +++ b/src/main/java/appeng/block/networking/CableBusColor.java @@ -24,7 +24,7 @@ import net.minecraft.block.BlockState; import net.minecraft.client.renderer.color.IBlockColor; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILightReader; +import net.minecraft.world.IBlockDisplayReader; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -40,7 +40,7 @@ import appeng.tile.networking.CableBusTileEntity; public class CableBusColor implements IBlockColor { @Override - public int getColor(BlockState state, @Nullable ILightReader worldIn, @Nullable BlockPos pos, int color) { + public int getColor(BlockState state, @Nullable IBlockDisplayReader worldIn, @Nullable BlockPos pos, int color) { AEColor busColor = AEColor.TRANSPARENT; diff --git a/src/main/java/appeng/block/networking/ControllerBlock.java b/src/main/java/appeng/block/networking/ControllerBlock.java index afb5fc2c3..e46b82c9a 100644 --- a/src/main/java/appeng/block/networking/ControllerBlock.java +++ b/src/main/java/appeng/block/networking/ControllerBlock.java @@ -38,7 +38,7 @@ public class ControllerBlock extends AEBaseTileBlock { offline, online, conflicted; @Override - public String getName() { + public String getString() { return this.name(); } @@ -54,7 +54,7 @@ public class ControllerBlock extends AEBaseTileBlock { block, column_x, column_y, column_z, inside_a, inside_b; @Override - public String getName() { + public String getString() { return this.name(); } diff --git a/src/main/java/appeng/block/networking/WirelessBlock.java b/src/main/java/appeng/block/networking/WirelessBlock.java index f1bdbc8fe..f66b84161 100644 --- a/src/main/java/appeng/block/networking/WirelessBlock.java +++ b/src/main/java/appeng/block/networking/WirelessBlock.java @@ -50,7 +50,7 @@ public class WirelessBlock extends AEBaseTileBlock { OFF, ON, HAS_CHANNEL; @Override - public String getName() { + public String getString() { return this.name().toLowerCase(); } } diff --git a/src/main/java/appeng/block/paint/PaintSplotchesBakedModel.java b/src/main/java/appeng/block/paint/PaintSplotchesBakedModel.java index 7d6cd06dd..0e1cd2721 100644 --- a/src/main/java/appeng/block/paint/PaintSplotchesBakedModel.java +++ b/src/main/java/appeng/block/paint/PaintSplotchesBakedModel.java @@ -15,7 +15,7 @@ import com.google.common.collect.ImmutableList; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.Direction; @@ -35,16 +35,16 @@ import appeng.tile.misc.PaintSplotchesTileEntity; */ class PaintSplotchesBakedModel implements IDynamicBakedModel { - private static final Material TEXTURE_PAINT1 = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_PAINT1 = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/paint1")); - private static final Material TEXTURE_PAINT2 = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_PAINT2 = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/paint2")); - private static final Material TEXTURE_PAINT3 = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_PAINT3 = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/paint3")); private final TextureAtlasSprite[] textures; - PaintSplotchesBakedModel(Function bakedTextureGetter) { + PaintSplotchesBakedModel(Function bakedTextureGetter) { this.textures = new TextureAtlasSprite[] { bakedTextureGetter.apply(TEXTURE_PAINT1), bakedTextureGetter.apply(TEXTURE_PAINT2), bakedTextureGetter.apply(TEXTURE_PAINT3) }; } @@ -171,7 +171,7 @@ class PaintSplotchesBakedModel implements IDynamicBakedModel { return false; } - static List getRequiredTextures() { + static List getRequiredTextures() { return ImmutableList.of(TEXTURE_PAINT1, TEXTURE_PAINT2, TEXTURE_PAINT3); } } diff --git a/src/main/java/appeng/block/paint/PaintSplotchesModel.java b/src/main/java/appeng/block/paint/PaintSplotchesModel.java index 85d2a095b..ae1eaffdf 100644 --- a/src/main/java/appeng/block/paint/PaintSplotchesModel.java +++ b/src/main/java/appeng/block/paint/PaintSplotchesModel.java @@ -11,8 +11,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.IModelConfiguration; @@ -22,13 +22,13 @@ public class PaintSplotchesModel implements IModelGeometry @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { return new PaintSplotchesBakedModel(spriteGetter); } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return PaintSplotchesBakedModel.getRequiredTextures(); } diff --git a/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java b/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java index e189d1bf8..bdc0b44ac 100644 --- a/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java +++ b/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java @@ -17,7 +17,7 @@ import net.minecraft.block.BlockState; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.Direction; @@ -32,17 +32,17 @@ import appeng.tile.qnb.QuantumBridgeTileEntity; class QnbFormedBakedModel implements IDynamicBakedModel { - private static final Material TEXTURE_LINK = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_LINK = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/quantum_link")); - private static final Material TEXTURE_RING = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_RING = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/quantum_ring")); - private static final Material TEXTURE_RING_LIGHT = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_RING_LIGHT = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/quantum_ring_light")); - private static final Material TEXTURE_RING_LIGHT_CORNER = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_RING_LIGHT_CORNER = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/quantum_ring_light_corner")); - private static final Material TEXTURE_CABLE_GLASS = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_CABLE_GLASS = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "part/cable/glass/transparent")); - private static final Material TEXTURE_COVERED_CABLE = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_COVERED_CABLE = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "part/cable/covered/transparent")); private static final float DEFAULT_RENDER_MIN = 2.0f; @@ -65,7 +65,7 @@ class QnbFormedBakedModel implements IDynamicBakedModel { private final TextureAtlasSprite lightTexture; private final TextureAtlasSprite lightCornerTexture; - public QnbFormedBakedModel(IBakedModel baseModel, Function bakedTextureGetter) { + public QnbFormedBakedModel(IBakedModel baseModel, Function bakedTextureGetter) { this.baseModel = baseModel; this.linkTexture = bakedTextureGetter.apply(TEXTURE_LINK); this.ringTexture = bakedTextureGetter.apply(TEXTURE_RING); @@ -220,7 +220,7 @@ class QnbFormedBakedModel implements IDynamicBakedModel { return this.baseModel.getOverrides(); } - public static List getRequiredTextures() { + public static List getRequiredTextures() { return ImmutableList.of(TEXTURE_LINK, TEXTURE_RING, TEXTURE_CABLE_GLASS, TEXTURE_COVERED_CABLE, TEXTURE_RING_LIGHT, TEXTURE_RING_LIGHT_CORNER); } diff --git a/src/main/java/appeng/block/qnb/QnbFormedModel.java b/src/main/java/appeng/block/qnb/QnbFormedModel.java index af4ac7a9a..d18e7c79f 100644 --- a/src/main/java/appeng/block/qnb/QnbFormedModel.java +++ b/src/main/java/appeng/block/qnb/QnbFormedModel.java @@ -11,8 +11,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.IModelConfiguration; @@ -26,14 +26,14 @@ public class QnbFormedModel implements IModelGeometry { @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { IBakedModel ringModel = bakery.getBakedModel(MODEL_RING, modelTransform, spriteGetter); return new QnbFormedBakedModel(ringModel, spriteGetter); } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return QnbFormedBakedModel.getRequiredTextures(); } diff --git a/src/main/java/appeng/block/spatial/MatrixFrameBlock.java b/src/main/java/appeng/block/spatial/MatrixFrameBlock.java index de8f58f6d..7fee2f631 100644 --- a/src/main/java/appeng/block/spatial/MatrixFrameBlock.java +++ b/src/main/java/appeng/block/spatial/MatrixFrameBlock.java @@ -46,7 +46,7 @@ import appeng.block.AEBaseBlock; */ public class MatrixFrameBlock extends AEBaseBlock { - private static final Material MATERIAL = new Material(MaterialColor.AIR, false, true, true, false, false, false, + private static final Material MATERIAL = new Material(MaterialColor.AIR, false, true, true, false, false, false, PushReaction.PUSH_ONLY); public MatrixFrameBlock() { diff --git a/src/main/java/appeng/block/storage/ChestBlock.java b/src/main/java/appeng/block/storage/ChestBlock.java index 2f8efe227..a95f9345f 100644 --- a/src/main/java/appeng/block/storage/ChestBlock.java +++ b/src/main/java/appeng/block/storage/ChestBlock.java @@ -81,7 +81,7 @@ public class ChestBlock extends AEBaseTileBlock { if (hit.getFace() == tg.getUp()) { if (!tg.openGui(p)) { - p.sendMessage(PlayerMessages.ChestCannotReadStorageCell.get()); + p.sendMessage(PlayerMessages.ChestCannotReadStorageCell.get(), p.getUniqueID()); } } else { ContainerOpener.openContainer(ChestContainer.TYPE, p, diff --git a/src/main/java/appeng/block/storage/DriveSlotState.java b/src/main/java/appeng/block/storage/DriveSlotState.java index 51d00f8ea..045ddc88e 100644 --- a/src/main/java/appeng/block/storage/DriveSlotState.java +++ b/src/main/java/appeng/block/storage/DriveSlotState.java @@ -53,7 +53,7 @@ public enum DriveSlotState implements IStringSerializable { } @Override - public String getName() { + public String getString() { return this.name; } diff --git a/src/main/java/appeng/client/ClientHelper.java b/src/main/java/appeng/client/ClientHelper.java index 94175608e..d2a58b5d7 100644 --- a/src/main/java/appeng/client/ClientHelper.java +++ b/src/main/java/appeng/client/ClientHelper.java @@ -30,7 +30,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.client.event.RenderLivingEvent; @@ -107,7 +107,7 @@ public class ClientHelper extends ServerHelper { this.spawnLightning(world, posX, posY, posZ); return; case LightningArc: - this.spawnLightningArc(world, posX, posY, posZ, (Vec3d) o); + this.spawnLightningArc(world, posX, posY, posZ, (Vector3d) o); return; default: } @@ -206,7 +206,7 @@ public class ClientHelper extends ServerHelper { } private void spawnLightningArc(final World world, final double posX, final double posY, final double posZ, - final Vec3d second) { + final Vector3d second) { final LightningFX fx = new LightningArcFX(world, posX, posY, posZ, second.x, second.y, second.z, 0.0f, 0.0f, 0.0f); Minecraft.getInstance().particles.addEffect(fx); diff --git a/src/main/java/appeng/client/gui/AEBaseMEScreen.java b/src/main/java/appeng/client/gui/AEBaseMEScreen.java index 8a9285dcc..8ff46836c 100644 --- a/src/main/java/appeng/client/gui/AEBaseMEScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseMEScreen.java @@ -22,10 +22,13 @@ import java.text.NumberFormat; import java.util.List; import java.util.Locale; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; import appeng.api.storage.data.IAEItemStack; @@ -41,14 +44,14 @@ public abstract class AEBaseMEScreen extends AEBaseSc } @Override - protected void renderTooltip(final ItemStack stack, final int x, final int y) { + protected void renderTooltip(MatrixStack matrixStack, final ItemStack stack, final int x, final int y) { final Slot s = this.getSlot(x, y); if (s instanceof SlotME && !stack.isEmpty()) { final int bigNumber = AEConfig.instance().isUseLargeFonts() ? 999 : 9999; IAEItemStack myStack = null; - final List currentToolTip = this.getTooltipFromItem(stack); + final List currentToolTip = this.getTooltipFromItem(stack); try { final SlotME theSlotField = (SlotME) s; @@ -63,7 +66,7 @@ public abstract class AEBaseMEScreen extends AEBaseSc .format(myStack.getStackSize()); final String format = String.format(local, formattedAmount); - currentToolTip.add(TextFormatting.GRAY + format); + currentToolTip.add(new StringTextComponent(TextFormatting.GRAY + format)); } if (myStack.getCountRequestable() > 0) { @@ -72,9 +75,9 @@ public abstract class AEBaseMEScreen extends AEBaseSc .format(myStack.getCountRequestable()); final String format = String.format(local, formattedAmount); - currentToolTip.add(format); + currentToolTip.add(new StringTextComponent(format)); } - this.renderTooltip(currentToolTip, x, y, this.font); + this.renderToolTip(matrixStack, currentToolTip, x, y, this.font); return; } else if (stack.getCount() > bigNumber) { @@ -82,14 +85,14 @@ public abstract class AEBaseMEScreen extends AEBaseSc final String formattedAmount = NumberFormat.getNumberInstance(Locale.US).format(stack.getCount()); final String format = String.format(local, formattedAmount); - currentToolTip.add(TextFormatting.GRAY + format); + currentToolTip.add(new StringTextComponent(TextFormatting.GRAY + format)); - this.renderTooltip(currentToolTip, x, y, this.font); + this.renderToolTip(matrixStack, currentToolTip, x, y, this.font); return; } } - super.renderTooltip(stack, x, y); + super.renderTooltip(matrixStack, stack, x, y); } } \ No newline at end of file diff --git a/src/main/java/appeng/client/gui/AEBaseScreen.java b/src/main/java/appeng/client/gui/AEBaseScreen.java index fe2166933..ac04cf754 100644 --- a/src/main/java/appeng/client/gui/AEBaseScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseScreen.java @@ -28,6 +28,7 @@ import java.util.concurrent.TimeUnit; import com.google.common.base.Preconditions; import com.google.common.base.Stopwatch; import com.google.common.collect.Lists; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import org.lwjgl.glfw.GLFW; @@ -54,6 +55,7 @@ import net.minecraft.inventory.container.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fml.client.gui.GuiUtils; @@ -126,51 +128,52 @@ public abstract class AEBaseScreen extends ContainerS } @Override - public void render(final int mouseX, final int mouseY, final float partialTicks) { - super.renderBackground(); - super.render(mouseX, mouseY, partialTicks); + public void render(MatrixStack matrixStack, final int mouseX, final int mouseY, final float partialTicks) { + super.renderBackground(matrixStack); + super.render(matrixStack, mouseX, mouseY, partialTicks); RenderSystem.pushMatrix(); RenderSystem.translatef(this.guiLeft, this.guiTop, 0.0F); RenderSystem.enableDepthTest(); for (final CustomSlotWidget c : this.guiSlots) { - this.drawGuiSlot(c, mouseX, mouseY, partialTicks); + this.drawGuiSlot(matrixStack, c, mouseX, mouseY, partialTicks); } RenderSystem.disableDepthTest(); for (final CustomSlotWidget c : this.guiSlots) { - this.drawTooltip(c, mouseX - this.guiLeft, mouseY - this.guiTop); + this.drawTooltip(matrixStack, c, mouseX - this.guiLeft, mouseY - this.guiTop); } RenderSystem.popMatrix(); RenderSystem.enableDepthTest(); - this.renderHoveredToolTip(mouseX, mouseY); + this.renderHoveredToolTip(matrixStack, mouseX, mouseY); for (final Object c : this.buttons) { if (c instanceof ITooltip) { - this.drawTooltip((ITooltip) c, mouseX, mouseY); + this.drawTooltip(matrixStack, (ITooltip) c, mouseX, mouseY); } } } - protected void drawGuiSlot(CustomSlotWidget slot, int mouseX, int mouseY, float partialTicks) { + protected void drawGuiSlot(MatrixStack matrixStack, CustomSlotWidget slot, int mouseX, int mouseY, + float partialTicks) { if (slot.isSlotEnabled()) { final int left = slot.xPos(); final int top = slot.yPos(); final int right = left + slot.getWidth(); final int bottom = top + slot.getHeight(); - slot.drawContent(getMinecraft(), mouseX, mouseY, partialTicks); + slot.drawContent(matrixStack, getMinecraft(), mouseX, mouseY, partialTicks); if (this.isPointInRegion(left, top, slot.getWidth(), slot.getHeight(), mouseX, mouseY) && slot.canClick(getPlayer())) { RenderSystem.colorMask(true, true, true, false); - this.fillGradient(left, top, right, bottom, -2130706433, -2130706433); + this.fillGradient(matrixStack, left, top, right, bottom, -2130706433, -2130706433); RenderSystem.colorMask(true, true, true, true); } } } - private void drawTooltip(ITooltip tooltip, int mouseX, int mouseY) { + private void drawTooltip(MatrixStack matrixStack, ITooltip tooltip, int mouseX, int mouseY) { final int x = tooltip.xPos(); // ((GuiImgButton) c).x; int y = tooltip.yPos(); // ((GuiImgButton) c).y; @@ -180,20 +183,18 @@ public abstract class AEBaseScreen extends ContainerS y = 15; } - final String msg = tooltip.getMessage(); - if (msg != null && !msg.isEmpty()) { - this.drawTooltip(x + 11, y + 4, msg); - } + final ITextComponent msg = tooltip.getMessage(); + this.drawTooltip(matrixStack, x + 11, y + 4, msg); } } } - protected void drawTooltip(int x, int y, String message) { + protected void drawTooltip(MatrixStack matrixStack, int x, int y, ITextComponent message) { String[] lines = message.split("\n"); - this.drawTooltip(x, y, Arrays.asList(lines)); + this.drawTooltip(matrixStack, x, y, Arrays.asList(lines)); } - protected void drawTooltip(int x, int y, List lines) { + protected void drawTooltip(MatrixStack matrixStack, int x, int y, List lines) { if (lines.isEmpty()) { return; } @@ -210,11 +211,11 @@ public abstract class AEBaseScreen extends ContainerS lines.set(i, TextFormatting.GRAY + lines.get(i)); } - this.renderTooltip(lines, x, y, this.font); + this.renderTooltip(matrixStack, lines, x, y, this.font); } @Override - protected final void drawGuiContainerForegroundLayer(final int x, final int y) { + protected final void drawGuiContainerForegroundLayer(MatrixStack matrixStack, final int x, final int y) { final int ox = this.guiLeft; // (width - xSize) / 2; final int oy = this.guiTop; // (height - ySize) / 2; RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); @@ -223,17 +224,18 @@ public abstract class AEBaseScreen extends ContainerS this.getScrollBar().draw(this); } - this.drawFG(ox, oy, x, y); + this.drawFG(matrixStack, ox, oy, x, y); } - public abstract void drawFG(int offsetX, int offsetY, int mouseX, int mouseY); + public abstract void drawFG(MatrixStack matrixStack, int offsetX, int offsetY, int mouseX, int mouseY); @Override - protected final void drawGuiContainerBackgroundLayer(final float f, final int x, final int y) { + protected final void drawGuiContainerBackgroundLayer(MatrixStack matrixStack, final float f, final int x, + final int y) { final int ox = this.guiLeft; // (width - xSize) / 2; final int oy = this.guiTop; // (height - ySize) / 2; RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); - this.drawBG(ox, oy, x, y, f); + this.drawBG(matrixStack, ox, oy, x, y, f); final List slots = this.getInventorySlots(); for (final Slot slot : slots) { @@ -556,7 +558,8 @@ public abstract class AEBaseScreen extends ContainerS return null; } - public abstract void drawBG(int offsetX, int offsetY, int mouseX, int mouseY, float partialTicks); + public abstract void drawBG(MatrixStack matrixStack, int offsetX, int offsetY, int mouseX, int mouseY, + float partialTicks); @Override public boolean mouseScrolled(double x, double y, double wheelDelta) { @@ -607,8 +610,8 @@ public abstract class AEBaseScreen extends ContainerS this.itemRenderer.zLevel = 0.0F; } - protected String getGuiDisplayName(final String in) { - return this.hasCustomInventoryName() ? this.getInventoryName() : in; + protected ITextComponent getGuiDisplayName(final ITextComponent in) { + return this.hasCustomInventoryName() ? new StringTextComponent(this.getInventoryName()) : in; } private boolean hasCustomInventoryName() { @@ -624,12 +627,12 @@ public abstract class AEBaseScreen extends ContainerS * hackery... */ @Override - public void drawSlot(Slot s) { + public void drawSlot(MatrixStack matrixStack, Slot s) { if (s instanceof SlotME) { try { if (!this.isPowered()) { - fill(s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111); + fill(matrixStack, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111); } // Annoying but easier than trying to splice into render item @@ -662,12 +665,13 @@ public abstract class AEBaseScreen extends ContainerS float blue = (fluidAttributes.getColor() & 255) / 255.0F; RenderSystem.color3f(red, green, blue); - blit(s.xPos, s.yPos, 0 /* FIXME: Validate this was previous the controls zindex */, 16, 16, sprite); + blit(matrixStack, s.xPos, s.yPos, 0 /* FIXME: Validate this was previous the controls zindex */, 16, 16, + sprite); RenderSystem.enableBlend(); this.fluidStackSizeRenderer.renderStackSize(this.font, fs, s.xPos, s.yPos); } else if (!this.isPowered()) { - fill(s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111); + fill(matrixStack, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111); } return; @@ -739,7 +743,7 @@ public abstract class AEBaseScreen extends ContainerS setBlitOffset(100); this.itemRenderer.zLevel = 100.0F; - fill(s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66ff6666); + fill(matrixStack, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66ff6666); setBlitOffset(0); this.itemRenderer.zLevel = 0.0F; @@ -796,4 +800,10 @@ public abstract class AEBaseScreen extends ContainerS } } + @Override + protected void func_230450_a_(MatrixStack p_230450_1_, float p_230450_2_, int p_230450_3_, int p_230450_4_) { + // TODO Auto-generated method stub + + } + } diff --git a/src/main/java/appeng/client/gui/implementations/AESubScreen.java b/src/main/java/appeng/client/gui/implementations/AESubScreen.java index f3fa77406..8f540759e 100644 --- a/src/main/java/appeng/client/gui/implementations/AESubScreen.java +++ b/src/main/java/appeng/client/gui/implementations/AESubScreen.java @@ -7,6 +7,7 @@ import javax.annotation.Nullable; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; import appeng.api.definitions.IDefinitions; import appeng.api.definitions.IParts; @@ -92,10 +93,11 @@ final class AESubScreen { return addBackButton(buttonAdder, x, y, null); } - public final TabButton addBackButton(Consumer buttonAdder, int x, int y, @Nullable String label) { + public final TabButton addBackButton(Consumer buttonAdder, int x, int y, + @Nullable ITextComponent label) { if (this.previousContainerType != null && !previousContainerIcon.isEmpty()) { if (label == null) { - label = previousContainerIcon.getDisplayName().getString(); + label = previousContainerIcon.getDisplayName(); } ItemRenderer itemRenderer = gui.getMinecraft().getItemRenderer(); TabButton button = new TabButton(gui.getGuiLeft() + x, gui.getGuiTop() + y, previousContainerIcon, label, diff --git a/src/main/java/appeng/client/gui/implementations/CellWorkbenchScreen.java b/src/main/java/appeng/client/gui/implementations/CellWorkbenchScreen.java index 14d7e0e2f..a746ec826 100644 --- a/src/main/java/appeng/client/gui/implementations/CellWorkbenchScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CellWorkbenchScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; import net.minecraft.util.text.ITextComponent; @@ -60,7 +62,7 @@ public class CellWorkbenchScreen extends UpgradeableScreen { public void init() { super.init(); - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), this.itemRenderer, btn -> openPriority())); } @@ -50,13 +52,13 @@ public class ChestScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.Chest.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Chest.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { this.bindTexture("guis/chest.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/CondenserScreen.java b/src/main/java/appeng/client/gui/implementations/CondenserScreen.java index 0853bfa88..7d2f52b6f 100644 --- a/src/main/java/appeng/client/gui/implementations/CondenserScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CondenserScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; @@ -49,21 +51,21 @@ public class CondenserScreen extends AEBaseScreen { this.container.getOutput()); this.addButton(new ProgressBar(this.container, "guis/condenser.png", 120 + this.guiLeft, 25 + this.guiTop, 178, - 25, 6, 18, Direction.VERTICAL, GuiText.StoredEnergy.getLocal())); + 25, 6, 18, Direction.VERTICAL, GuiText.StoredEnergy.textComponent())); this.addButton(this.mode); } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.Condenser.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Condenser.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); this.mode.set(this.container.getOutput()); this.mode.setFillVar(String.valueOf(this.container.getOutput().requiredPower)); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { this.bindTexture("guis/condenser.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); diff --git a/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java b/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java index 418579bee..ba9708d3e 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.client.gui.widget.button.Button; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; @@ -54,7 +56,7 @@ public class CraftAmountScreen extends AEBaseScreen { this.amountToCraft.addButtons(children::add, this::addButton); this.next = this.addButton( - new Button(this.guiLeft + 128, this.guiTop + 51, 38, 20, GuiText.Next.getLocal(), this::confirm)); + new Button(this.guiLeft + 128, this.guiTop + 51, 38, 20, GuiText.Next.textComponent(), this::confirm)); subGui.addBackButton(this::addButton, 154, 0); } @@ -65,20 +67,20 @@ public class CraftAmountScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(GuiText.SelectAmount.getLocal(), 8, 6, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + this.font.drawString(matrixStack, GuiText.SelectAmount.textComponent().getString(), 8, 6, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { - this.next.setMessage(hasShiftDown() ? GuiText.Start.getLocal() : GuiText.Next.getLocal()); + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + this.next.setMessage(hasShiftDown() ? GuiText.Start.textComponent() : GuiText.Next.textComponent()); this.bindTexture("guis/craft_amt.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); this.next.active = this.amountToCraft.getValue() > 0; - this.amountToCraft.render(offsetX, offsetY, partialTicks); + this.amountToCraft.render(matrixStack, offsetX, offsetY, partialTicks); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java index 1057fd822..b9f26b27d 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java @@ -24,6 +24,7 @@ import java.util.Iterator; import java.util.List; import com.google.common.base.Joiner; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.widget.button.Button; @@ -31,6 +32,7 @@ import net.minecraft.client.util.InputMappings; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; import appeng.api.storage.channels.IItemStorageChannel; @@ -82,22 +84,23 @@ public class CraftConfirmScreen extends AEBaseScreen { public void init() { super.init(); - this.start = new Button(this.guiLeft + 162, this.guiTop + this.ySize - 25, 50, 20, GuiText.Start.getLocal(), - btn -> start()); + this.start = new Button(this.guiLeft + 162, this.guiTop + this.ySize - 25, 50, 20, + GuiText.Start.textComponent(), btn -> start()); this.start.active = false; this.addButton(this.start); this.selectCPU = new Button(this.guiLeft + (219 - 180) / 2, this.guiTop + this.ySize - 68, 180, 20, - GuiText.CraftingCPU.getLocal() + ": " + GuiText.Automatic, btn -> selectNextCpu()); + new StringTextComponent(GuiText.CraftingCPU.getLocal() + ": " + GuiText.Automatic), + btn -> selectNextCpu()); this.selectCPU.active = false; this.addButton(this.selectCPU); - addButton(new Button(this.guiLeft + 6, this.guiTop + this.ySize - 25, 50, 20, GuiText.Cancel.getLocal(), + addButton(new Button(this.guiLeft + 6, this.guiTop + this.ySize - 25, 50, 20, GuiText.Cancel.textComponent(), btn -> subGui.goBack())); } @Override - public void render(final int mouseX, final int mouseY, final float btn) { + public void render(MatrixStack matrixStack, final int mouseX, final int mouseY, final float btn) { this.updateCPUButtonText(); this.start.active = !(this.container.hasNoCPU() || this.isSimulation()); @@ -130,7 +133,7 @@ public class CraftConfirmScreen extends AEBaseScreen { } } - super.render(mouseX, mouseY, btn); + super.render(matrixStack, mouseX, mouseY, btn); } private void updateCPUButtonText() { @@ -149,7 +152,7 @@ public class CraftConfirmScreen extends AEBaseScreen { btnTextText = GuiText.NoCraftingCPUs.getLocal(); } - this.selectCPU.setMessage(btnTextText); + this.selectCPU.setMessage(new StringTextComponent(btnTextText)); } private boolean isSimulation() { @@ -157,12 +160,13 @@ public class CraftConfirmScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { final long BytesUsed = this.container.getUsedBytes(); final String byteUsed = NumberFormat.getInstance().format(BytesUsed); final String Add = BytesUsed > 0 ? (byteUsed + ' ' + GuiText.BytesUsed.getLocal()) : GuiText.CalculatingWait.getLocal(); - this.font.drawString(GuiText.CraftingPlan.getLocal() + " - " + Add, 8, 7, 4210752); + this.font.drawString(matrixStack, GuiText.CraftingPlan.getLocal() + " - " + Add, 8, 7, 4210752); String dsp = null; @@ -176,7 +180,7 @@ public class CraftConfirmScreen extends AEBaseScreen { } final int offset = (219 - this.font.getStringWidth(dsp)) / 2; - this.font.drawString(dsp, offset, 165, 4210752); + this.font.drawString(matrixStack, dsp, offset, 165, 4210752); final int sectionLength = 67; @@ -230,7 +234,7 @@ public class CraftConfirmScreen extends AEBaseScreen { str = GuiText.FromStorage.getLocal() + ": " + str; final int w = 4 + this.font.getStringWidth(str); - this.font.drawString(str, + this.font.drawString(matrixStack, str, (int) ((x * (1 + sectionLength) + xo + sectionLength - 19 - (w * 0.5)) * 2), (y * offY + yo + 6 - negY + downY) * 2, 4210752); @@ -251,9 +255,9 @@ public class CraftConfirmScreen extends AEBaseScreen { str = Long.toString(missingStack.getStackSize() / 1000000) + 'm'; } - str = GuiText.Missing.getLocal() + ": " + str; + str = GuiText.Missing.textComponent().getString() + ": " + str; final int w = 4 + this.font.getStringWidth(str); - this.font.drawString(str, + this.font.drawString(matrixStack, str, (int) ((x * (1 + sectionLength) + xo + sectionLength - 19 - (w * 0.5)) * 2), (y * offY + yo + 6 - negY + downY) * 2, 4210752); @@ -276,7 +280,7 @@ public class CraftConfirmScreen extends AEBaseScreen { str = GuiText.ToCraft.getLocal() + ": " + str; final int w = 4 + this.font.getStringWidth(str); - this.font.drawString(str, + this.font.drawString(matrixStack, str, (int) ((x * (1 + sectionLength) + xo + sectionLength - 19 - (w * 0.5)) * 2), (y * offY + yo + 6 - negY + downY) * 2, 4210752); @@ -292,7 +296,7 @@ public class CraftConfirmScreen extends AEBaseScreen { final ItemStack is = refStack.asItemStackRepresentation(); if (this.tooltip == z - viewStart) { - dspToolTip = Platform.getItemDisplayName(refStack).getFormattedText(); + dspToolTip = Platform.getItemDisplayName(refStack).getString(); if (lineList.size() > 0) { dspToolTip = dspToolTip + '\n' + Joiner.on("\n").join(lineList); @@ -307,7 +311,7 @@ public class CraftConfirmScreen extends AEBaseScreen { if (red) { final int startX = x * (1 + sectionLength) + xo; final int startY = posY - 4; - fill(startX, startY, startX + sectionLength, startY + offY, 0x1AFF0000); + fill(matrixStack, startX, startY, startX + sectionLength, startY + offY, 0x1AFF0000); } x++; @@ -320,12 +324,13 @@ public class CraftConfirmScreen extends AEBaseScreen { } if (this.tooltip >= 0 && !dspToolTip.isEmpty()) { - this.drawTooltip(toolPosX, toolPosY + 10, dspToolTip); + this.drawTooltip(matrixStack, toolPosX, toolPosY + 10, new StringTextComponent(dspToolTip)); } } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.setScrollBar(); this.bindTexture("guis/craftingreport.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); diff --git a/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java b/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java index 111db1b03..0a09136a9 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.concurrent.TimeUnit; import com.google.common.base.Joiner; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import org.apache.commons.lang3.time.DurationFormatUtils; @@ -32,6 +33,7 @@ import net.minecraft.client.gui.widget.button.Button; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; import appeng.api.config.SortDir; @@ -115,7 +117,7 @@ public class CraftingCPUScreen extends AEBaseScr super.init(); this.setScrollBar(); this.cancel = new Button(this.guiLeft + CANCEL_LEFT_OFFSET, this.guiTop + this.ySize - CANCEL_TOP_OFFSET, - CANCEL_WIDTH, CANCEL_HEIGHT, GuiText.Cancel.getLocal(), btn -> cancel()); + CANCEL_WIDTH, CANCEL_HEIGHT, GuiText.Cancel.textComponent(), btn -> cancel()); this.addButton(this.cancel); } @@ -127,7 +129,7 @@ public class CraftingCPUScreen extends AEBaseScr } @Override - public void render(final int mouseX, final int mouseY, final float btn) { + public void render(MatrixStack matrixStack, final int mouseX, final int mouseY, final float btn) { this.cancel.active = !this.visual.isEmpty(); final int gx = (this.width - this.xSize) / 2; @@ -157,12 +159,13 @@ public class CraftingCPUScreen extends AEBaseScr } } - super.render(mouseX, mouseY, btn); + super.render(matrixStack, mouseX, mouseY, btn); } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - String title = this.getGuiDisplayName(GuiText.CraftingStatus.getLocal()); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + String title = this.getGuiDisplayName(GuiText.CraftingStatus.textComponent()).getString(); if (this.container.getEstimatedTime() > 0 && !this.visual.isEmpty()) { final long etaInMilliseconds = TimeUnit.MILLISECONDS.convert(this.container.getEstimatedTime(), @@ -172,7 +175,7 @@ public class CraftingCPUScreen extends AEBaseScr title += " - " + etaTimeText; } - this.font.drawString(title, TITLE_LEFT_OFFSET, TITLE_TOP_OFFSET, TEXT_COLOR); + this.font.drawString(matrixStack, title, TITLE_LEFT_OFFSET, TITLE_TOP_OFFSET, TEXT_COLOR); int x = 0; int y = 0; @@ -218,7 +221,7 @@ public class CraftingCPUScreen extends AEBaseScr | BACKGROUND_ALPHA; final int startX = (x * (1 + SECTION_LENGTH) + ITEMSTACK_LEFT_OFFSET) * 2; final int startY = ((y * offY + ITEMSTACK_TOP_OFFSET) - 3) * 2; - fill(startX, startY, startX + (SECTION_LENGTH * 2), startY + (offY * 2) - 2, bgColor); + fill(matrixStack, startX, startY, startX + (SECTION_LENGTH * 2), startY + (offY * 2) - 2, bgColor); } final int negY = ((lines - 1) * 5) / 2; @@ -228,7 +231,7 @@ public class CraftingCPUScreen extends AEBaseScr final String str = GuiText.Stored.getLocal() + ": " + converter.toWideReadableForm(stored.getStackSize()); final int w = 4 + this.font.getStringWidth(str); - this.font.drawString(str, + this.font.drawString(matrixStack, str, (int) ((x * (1 + SECTION_LENGTH) + ITEMSTACK_LEFT_OFFSET + SECTION_LENGTH - 19 - (w * 0.5)) * 2), (y * offY + ITEMSTACK_TOP_OFFSET + 6 - negY + downY) * 2, TEXT_COLOR); @@ -245,7 +248,7 @@ public class CraftingCPUScreen extends AEBaseScr + converter.toWideReadableForm(activeStack.getStackSize()); final int w = 4 + this.font.getStringWidth(str); - this.font.drawString(str, + this.font.drawString(matrixStack, str, (int) ((x * (1 + SECTION_LENGTH) + ITEMSTACK_LEFT_OFFSET + SECTION_LENGTH - 19 - (w * 0.5)) * 2), (y * offY + ITEMSTACK_TOP_OFFSET + 6 - negY + downY) * 2, TEXT_COLOR); @@ -262,7 +265,7 @@ public class CraftingCPUScreen extends AEBaseScr + converter.toWideReadableForm(pendingStack.getStackSize()); final int w = 4 + this.font.getStringWidth(str); - this.font.drawString(str, + this.font.drawString(matrixStack, str, (int) ((x * (1 + SECTION_LENGTH) + ITEMSTACK_LEFT_OFFSET + SECTION_LENGTH - 19 - (w * 0.5)) * 2), (y * offY + ITEMSTACK_TOP_OFFSET + 6 - negY + downY) * 2, TEXT_COLOR); @@ -279,7 +282,7 @@ public class CraftingCPUScreen extends AEBaseScr final ItemStack is = refStack.asItemStackRepresentation(); if (this.tooltip == z - viewStart) { - dspToolTip = Platform.getItemDisplayName(refStack).getFormattedText(); + dspToolTip = Platform.getItemDisplayName(refStack).getString(); if (lineList.size() > 0) { dspToolTip = dspToolTip + '\n' + Joiner.on("\n").join(lineList); @@ -301,12 +304,13 @@ public class CraftingCPUScreen extends AEBaseScr } if (this.tooltip >= 0 && !dspToolTip.isEmpty()) { - this.drawTooltip(toolPosX, toolPosY + 10, dspToolTip); + this.drawTooltip(matrixStack, toolPosX, toolPosY + 10, new StringTextComponent(dspToolTip)); } } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/craftingcpu.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/CraftingStatusScreen.java b/src/main/java/appeng/client/gui/implementations/CraftingStatusScreen.java index 6f5493946..777dd4e15 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftingStatusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftingStatusScreen.java @@ -22,9 +22,12 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.client.gui.widget.button.Button; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import appeng.container.implementations.CraftingStatusContainer; import appeng.core.localization.GuiText; @@ -48,7 +51,8 @@ public class CraftingStatusScreen extends CraftingCPUScreen selectNextCpu()); + new StringTextComponent(GuiText.CraftingCPU.getLocal() + ": " + GuiText.NoCraftingCPUs), + btn -> selectNextCpu()); this.addButton(this.selectCPU); subGui.addBackButton(btn -> { @@ -58,9 +62,9 @@ public class CraftingStatusScreen extends CraftingCPUScreen { public void init() { super.init(); - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), this.itemRenderer, btn -> openPriorityGui())); } @@ -50,13 +52,17 @@ public class DriveScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.Drive.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Drive.textComponent()).getString(), 8, 6, + 4210752); + this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, + 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/drive.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java b/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java index 9cae57199..1aa0d90fc 100644 --- a/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java +++ b/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; @@ -50,7 +52,7 @@ public class FormationPlaneScreen extends UpgradeableScreen(this.guiLeft - 18, this.guiTop + 48, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL); - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), this.itemRenderer, btn -> openPriorityGui())); this.addButton(this.placeMode); @@ -58,9 +60,9 @@ public class FormationPlaneScreen extends UpgradeableScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.GrindStone.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.GrindStone.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { this.bindTexture("guis/grinder.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/IOPortScreen.java b/src/main/java/appeng/client/gui/implementations/IOPortScreen.java index 5a51c0351..359ac092e 100644 --- a/src/main/java/appeng/client/gui/implementations/IOPortScreen.java +++ b/src/main/java/appeng/client/gui/implementations/IOPortScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; @@ -57,9 +59,11 @@ public class IOPortScreen extends UpgradeableScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.IOPort.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.IOPort.textComponent()).getString(), 8, 6, + 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); if (this.redstoneMode != null) { this.redstoneMode.set(this.cvb.getRedStoneMode()); @@ -75,8 +79,9 @@ public class IOPortScreen extends UpgradeableScreen { } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { - super.drawBG(offsetX, offsetY, mouseX, mouseY, partialTicks); + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { + super.drawBG(matrixStack, offsetX, offsetY, mouseX, mouseY, partialTicks); final IDefinitions definitions = Api.instance().definitions(); diff --git a/src/main/java/appeng/client/gui/implementations/InscriberScreen.java b/src/main/java/appeng/client/gui/implementations/InscriberScreen.java index 246124986..b03a8c692 100644 --- a/src/main/java/appeng/client/gui/implementations/InscriberScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InscriberScreen.java @@ -18,8 +18,11 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; import appeng.client.gui.AEBaseScreen; @@ -51,15 +54,18 @@ public class InscriberScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.pb.setFullMsg(this.container.getCurrentProgress() * 100 / this.container.getMaxProgress() + "%"); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.pb.setFullMsg(new StringTextComponent( + this.container.getCurrentProgress() * 100 / this.container.getMaxProgress() + "%")); - this.font.drawString(this.getGuiDisplayName(GuiText.Inscriber.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Inscriber.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/inscriber.png"); this.pb.x = 135 + this.guiLeft; this.pb.y = 39 + this.guiTop; diff --git a/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java b/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java index 7ff929395..76ec12c6a 100644 --- a/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; @@ -46,7 +48,7 @@ public class InterfaceScreen extends UpgradeableScreen { @Override protected void addButtons() { - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), this.itemRenderer, btn -> openPriorityGui())); this.blockMode = new ServerSettingToggleButton<>(this.guiLeft - 18, this.guiTop + 8, Settings.BLOCK, YesNo.NO); @@ -59,7 +61,7 @@ public class InterfaceScreen extends UpgradeableScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { if (this.blockMode != null) { this.blockMode.set(((InterfaceContainer) this.cvb).getBlockingMode()); } @@ -68,13 +70,13 @@ public class InterfaceScreen extends UpgradeableScreen { this.interfaceMode.setState(((InterfaceContainer) this.cvb).getInterfaceTerminalMode() == YesNo.YES); } - this.font.drawString(this.getGuiDisplayName(GuiText.Interface.getLocal()), 8, 6, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Interface.textComponent()).getString(), 8, 6, 4210752); - this.font.drawString(GuiText.Config.getLocal(), 8, 6 + 11 + 7, 4210752); - this.font.drawString(GuiText.StoredItems.getLocal(), 8, 6 + 60 + 7, 4210752); - this.font.drawString(GuiText.Patterns.getLocal(), 8, 6 + 73 + 7, 4210752); + this.font.drawString(matrixStack, GuiText.Config.getLocal(), 8, 6 + 11 + 7, 4210752); + this.font.drawString(matrixStack, GuiText.StoredItems.getLocal(), 8, 6 + 60 + 7, 4210752); + this.font.drawString(matrixStack, GuiText.Patterns.getLocal(), 8, 6 + 73 + 7, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java b/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java index 4cd84c83b..eef40b6c0 100644 --- a/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java @@ -28,6 +28,7 @@ import java.util.Set; import java.util.WeakHashMap; import com.google.common.collect.HashMultimap; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import org.lwjgl.glfw.GLFW; @@ -93,9 +94,9 @@ public class InterfaceTerminalScreen extends AEBaseScreen } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { final boolean notCraftingMode = this.bc.getInstalledUpgrades(Upgrades.CRAFTING) == 0; // configure enabled status... @@ -85,7 +88,7 @@ public class LevelEmitterScreen extends UpgradeableScreen this.levelMode.active = notCraftingMode; this.redstoneMode.active = notCraftingMode; - super.drawFG(offsetX, offsetY, mouseX, mouseY); + super.drawFG(matrixStack, offsetX, offsetY, mouseX, mouseY); if (this.craftingMode != null) { this.craftingMode.set(this.cvb.getCraftingMode()); @@ -97,16 +100,18 @@ public class LevelEmitterScreen extends UpgradeableScreen if (notCraftingMode) { if (currentLevelMode == LevelType.ENERGY_LEVEL) { - this.font.drawString(PowerUnits.AE.textComponent().getString(), 110, 44, COLOR_DARK_GRAY); + this.font.drawString(matrixStack, PowerUnits.AE.textComponent().getString(), 110, 44, + COLOR_DARK_GRAY); } } } } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { - super.drawBG(offsetX, offsetY, mouseX, mouseY, partialTicks); - this.level.render(mouseX, mouseY, partialTicks); + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { + super.drawBG(matrixStack, offsetX, offsetY, mouseX, mouseY, partialTicks); + this.level.render(matrixStack, mouseX, mouseY, partialTicks); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java b/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java index 2069dd326..d60a9a824 100644 --- a/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java +++ b/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java @@ -20,6 +20,8 @@ package appeng.client.gui.implementations; import java.util.List; +import com.mojang.blaze3d.matrix.MatrixStack; + import org.lwjgl.glfw.GLFW; import net.minecraft.client.util.InputMappings; @@ -234,7 +236,7 @@ public class MEMonitorableScreen extends AEBas if (this.viewCell || this instanceof WirelessTermScreen) { this.craftingStatusBtn = this.addButton(new TabButton(this.guiLeft + 170, this.guiTop - 4, 2 + 11 * 16, - GuiText.CraftingStatus.getLocal(), this.itemRenderer, btn -> showCraftingStatus())); + GuiText.CraftingStatus.textComponent(), this.itemRenderer, btn -> showCraftingStatus())); this.craftingStatusBtn.setHideEdge(13); } @@ -284,9 +286,9 @@ public class MEMonitorableScreen extends AEBas } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(this.myName.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(this.myName.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); this.currentMouseX = mouseX; this.currentMouseY = mouseY; @@ -318,21 +320,21 @@ public class MEMonitorableScreen extends AEBas } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { this.bindTexture(this.getBackground()); final int x_width = 197; - blit(offsetX, offsetY, 0, 0, x_width, 18); + blit(matrixStack, offsetX, offsetY, 0, 0, x_width, 18); if (this.viewCell || (this instanceof SecurityStationScreen)) { - blit(offsetX + x_width, offsetY, x_width, 0, 46, 128); + blit(matrixStack, offsetX + x_width, offsetY, x_width, 0, 46, 128); } for (int x = 0; x < this.rows; x++) { - blit(offsetX, offsetY + 18 + x * 18, 0, 18, x_width, 18); + blit(matrixStack, offsetX, offsetY + 18 + x * 18, 0, 18, x_width, 18); } - blit(offsetX, offsetY + 16 + this.rows * 18 + this.lowerTextureOffset, 0, 106 - 18 - 18, x_width, + blit(matrixStack, offsetX, offsetY + 16 + this.rows * 18 + this.lowerTextureOffset, 0, 106 - 18 - 18, x_width, 99 + this.reservedSpace - this.lowerTextureOffset); if (this.viewCell) { @@ -351,7 +353,7 @@ public class MEMonitorableScreen extends AEBas } if (this.searchField != null) { - this.searchField.render(mouseX, mouseY, partialTicks); + this.searchField.render(matrixStack, mouseX, mouseY, partialTicks); } } diff --git a/src/main/java/appeng/client/gui/implementations/MolecularAssemblerScreen.java b/src/main/java/appeng/client/gui/implementations/MolecularAssemblerScreen.java index 5845666ad..93b16cec6 100644 --- a/src/main/java/appeng/client/gui/implementations/MolecularAssemblerScreen.java +++ b/src/main/java/appeng/client/gui/implementations/MolecularAssemblerScreen.java @@ -18,8 +18,11 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import appeng.api.config.RedstoneMode; import appeng.api.config.Settings; @@ -56,16 +59,18 @@ public class MolecularAssemblerScreen extends UpgradeableScreen im } @Override - public void render(final int mouseX, final int mouseY, final float btn) { + public void render(MatrixStack matrixStack, final int mouseX, final int mouseY, final float btn) { final int gx = (this.width - this.xSize) / 2; final int gy = (this.height - this.ySize) / 2; @@ -96,23 +98,24 @@ public class NetworkStatusScreen extends AEBaseScreen im } } - super.render(mouseX, mouseY, btn); + super.render(matrixStack, mouseX, mouseY, btn); } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(GuiText.NetworkDetails.getLocal(), 8, 6, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, GuiText.NetworkDetails.getLocal(), 8, 6, 4210752); - this.font.drawString( + this.font.drawString(matrixStack, GuiText.StoredPower.getLocal() + ": " + Platform.formatPowerLong(container.getCurrentPower(), false), 13, 16, 4210752); - this.font.drawString( + this.font.drawString(matrixStack, GuiText.MaxPower.getLocal() + ": " + Platform.formatPowerLong(container.getMaxPower(), false), 13, 26, 4210752); - this.font.drawString(GuiText.PowerInputRate.getLocal() + ": " + this.font.drawString(matrixStack, GuiText.PowerInputRate.getLocal() + ": " + Platform.formatPowerLong(container.getAverageAddition(), true), 13, 143 - 10, 4210752); - this.font.drawString( + this.font.drawString(matrixStack, GuiText.PowerUsageRate.getLocal() + ": " + Platform.formatPowerLong(container.getPowerUsage(), true), 13, 143 - 20, 4210752); @@ -141,7 +144,7 @@ public class NetworkStatusScreen extends AEBaseScreen im } final int w = this.font.getStringWidth(str); - this.font.drawString(str, (int) ((x * sectionLength + xo + sectionLength - 19 - (w * 0.5)) * 2), + this.font.drawString(matrixStack, str, (int) ((x * sectionLength + xo + sectionLength - 19 - (w * 0.5)) * 2), (y * 18 + yo + 6) * 2, 4210752); RenderSystem.popMatrix(); @@ -149,7 +152,7 @@ public class NetworkStatusScreen extends AEBaseScreen im final int posY = y * 18 + yo; if (this.tooltip == z - viewStart) { - toolTip = Platform.getItemDisplayName(refStack).getFormattedText(); + toolTip = Platform.getItemDisplayName(refStack).getString(); toolTip += ('\n' + GuiText.Installed.getLocal() + ": " + (refStack.getStackSize())); if (refStack.getCountRequestable() > 0) { @@ -173,12 +176,13 @@ public class NetworkStatusScreen extends AEBaseScreen im } if (this.tooltip >= 0 && toolTip.length() > 0) { - this.drawTooltip(toolPosX, toolPosY + 10, toolTip); + this.drawTooltip(matrixStack, toolPosX, toolPosY + 10, new StringTextComponent(toolTip)); } } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/networkstatus.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } @@ -201,7 +205,7 @@ public class NetworkStatusScreen extends AEBaseScreen im } @Override - protected void renderTooltip(final ItemStack stack, final int x, final int y) { + protected void renderTooltip(MatrixStack matrixStack, final ItemStack stack, final int x, final int y) { final Slot s = this.getSlot(x, y); if (s instanceof SlotME && !stack.isEmpty()) { @@ -214,7 +218,7 @@ public class NetworkStatusScreen extends AEBaseScreen im } if (myStack != null) { - List currentToolTip = getTooltipFromItem(stack); + List currentToolTip = getTooltipFromItem(stack); while (currentToolTip.size() > 1) { currentToolTip.remove(1); @@ -224,11 +228,11 @@ public class NetworkStatusScreen extends AEBaseScreen im currentToolTip.add(GuiText.EnergyDrain.getLocal() + ": " + Platform.formatPowerLong(myStack.getCountRequestable(), true)); - this.drawTooltip(x, y, currentToolTip); + this.drawTooltip(matrixStack, x, y, currentToolTip); } } - super.renderTooltip(stack, x, y); + super.renderTooltip(matrixStack, stack, x, y); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java b/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java index 50ca9a241..6e286b3f0 100644 --- a/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java +++ b/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; @@ -54,17 +56,20 @@ public class NetworkToolScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { if (this.tFacades != null) { this.tFacades.setState(container.isFacadeMode()); } - this.font.drawString(this.getGuiDisplayName(GuiText.NetworkTool.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.NetworkTool.textComponent()).getString(), 8, 6, + 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/toolbox.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/NumberEntryWidget.java b/src/main/java/appeng/client/gui/implementations/NumberEntryWidget.java index ccabecad7..e04603275 100644 --- a/src/main/java/appeng/client/gui/implementations/NumberEntryWidget.java +++ b/src/main/java/appeng/client/gui/implementations/NumberEntryWidget.java @@ -3,9 +3,13 @@ package appeng.client.gui.implementations; import java.util.function.Consumer; import java.util.function.LongConsumer; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.IGuiEventListener; import net.minecraft.client.gui.widget.button.Button; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import appeng.client.gui.AEBaseScreen; import appeng.client.gui.NumberEntryType; @@ -19,6 +23,9 @@ import appeng.core.AEConfig; */ public class NumberEntryWidget implements ITickingWidget { + private static final ITextComponent PLUS = new StringTextComponent("+"); + private static final ITextComponent MINUS = new StringTextComponent("+"); + private final AEBaseScreen parent; private final int x; @@ -86,18 +93,18 @@ public class NumberEntryWidget implements ITickingWidget { int left = parent.getGuiLeft() + x; int top = parent.getGuiTop() + y; - addButton.accept(this.plus1 = new Button(left, top, 22, 20, "+" + a, btn -> addQty(a))); - addButton.accept(this.plus10 = new Button(left + 28, top, 28, 20, "+" + b, btn -> addQty(b))); - addButton.accept(this.plus100 = new Button(left + 62, top, 32, 20, "+" + c, btn -> addQty(c))); - addButton.accept(this.plus1000 = new Button(left + 100, top, 38, 20, "+" + d, btn -> addQty(d))); + addButton.accept(this.plus1 = new Button(left, top, 22, 20, PLUS /* + a */, btn -> addQty(a))); + addButton.accept(this.plus10 = new Button(left + 28, top, 28, 20, PLUS /* + b */, btn -> addQty(b))); + addButton.accept(this.plus100 = new Button(left + 62, top, 32, 20, PLUS /* + c */, btn -> addQty(c))); + addButton.accept(this.plus1000 = new Button(left + 100, top, 38, 20, PLUS/* + d */, btn -> addQty(d))); // Placing this here will give a sensible tab order addChildren.accept(this.level); - addButton.accept(this.minus1 = new Button(left, top + 42, 22, 20, "-" + a, btn -> addQty(-a))); - addButton.accept(this.minus10 = new Button(left + 28, top + 42, 28, 20, "-" + b, btn -> addQty(-b))); - addButton.accept(this.minus100 = new Button(left + 62, top + 42, 32, 20, "-" + c, btn -> addQty(-c))); - addButton.accept(this.minus1000 = new Button(left + 100, top + 42, 38, 20, "-" + d, btn -> addQty(-d))); + addButton.accept(this.minus1 = new Button(left, top + 42, 22, 20, MINUS /* + a */, btn -> addQty(-a))); + addButton.accept(this.minus10 = new Button(left + 28, top + 42, 28, 20, MINUS /* + b */, btn -> addQty(-b))); + addButton.accept(this.minus100 = new Button(left + 62, top + 42, 32, 20, MINUS /* + c */, btn -> addQty(-c))); + addButton.accept(this.minus1000 = new Button(left + 100, top + 42, 38, 20, MINUS /* + d */, btn -> addQty(-d))); } private void addQty(final long i) { @@ -106,8 +113,8 @@ public class NumberEntryWidget implements ITickingWidget { this.level.setText(String.valueOf(Math.max(minValue, currentValue + i))); } - public void render(int mouseX, int mouseY, float partialTicks) { - this.level.render(mouseX, mouseY, partialTicks); + public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + this.level.render(matrixStack, mouseX, mouseY, partialTicks); } public void setValue(long value, boolean skipNotify) { diff --git a/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java b/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java index 1461b52d0..c4990b33c 100644 --- a/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java +++ b/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.block.Blocks; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; @@ -58,12 +60,12 @@ public class PatternTermScreen extends MEMonitorableScreen super.init(); this.tabCraftButton = new TabButton(this.guiLeft + 173, this.guiTop + this.ySize - 177, - new ItemStack(Blocks.CRAFTING_TABLE), GuiText.CraftingPattern.getLocal(), this.itemRenderer, + new ItemStack(Blocks.CRAFTING_TABLE), GuiText.CraftingPattern.textComponent(), this.itemRenderer, btn -> toggleCraftMode(CRAFTMODE_PROCESSING)); this.addButton(this.tabCraftButton); this.tabProcessButton = new TabButton(this.guiLeft + 173, this.guiTop + this.ySize - 177, - new ItemStack(Blocks.FURNACE), GuiText.ProcessingPattern.getLocal(), this.itemRenderer, + new ItemStack(Blocks.FURNACE), GuiText.ProcessingPattern.textComponent(), this.itemRenderer, btn -> toggleCraftMode(CRAFTMODE_CRFTING)); this.addButton(this.tabProcessButton); @@ -104,7 +106,8 @@ public class PatternTermScreen extends MEMonitorableScreen } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { if (this.container.isCraftingMode()) { this.tabCraftButton.visible = true; this.tabProcessButton.visible = false; @@ -123,9 +126,9 @@ public class PatternTermScreen extends MEMonitorableScreen this.substitutionsDisabledBtn.visible = false; } - super.drawFG(offsetX, offsetY, mouseX, mouseY); - this.font.drawString(GuiText.PatternTerminal.getLocal(), 8, this.ySize - 96 + 2 - this.getReservedSpace(), - 4210752); + super.drawFG(matrixStack, offsetX, offsetY, mouseX, mouseY); + this.font.drawString(matrixStack, GuiText.PatternTerminal.getLocal(), 8, + this.ySize - 96 + 2 - this.getReservedSpace(), 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/PriorityScreen.java b/src/main/java/appeng/client/gui/implementations/PriorityScreen.java index 46bf4e7d3..9c32c886d 100644 --- a/src/main/java/appeng/client/gui/implementations/PriorityScreen.java +++ b/src/main/java/appeng/client/gui/implementations/PriorityScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; @@ -58,16 +60,18 @@ public class PriorityScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(GuiText.Priority.getLocal(), 8, 6, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, GuiText.Priority.getLocal(), 8, 6, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture(getBackground()); - blit(offsetX, offsetY, 0, 0, this.xSize, this.ySize); + blit(matrixStack, offsetX, offsetY, 0, 0, this.xSize, this.ySize); - this.priority.render(mouseX, mouseY, partialTicks); + this.priority.render(matrixStack, mouseX, mouseY, partialTicks); } protected String getBackground() { diff --git a/src/main/java/appeng/client/gui/implementations/QNBScreen.java b/src/main/java/appeng/client/gui/implementations/QNBScreen.java index 0baa0a4d9..82403678b 100644 --- a/src/main/java/appeng/client/gui/implementations/QNBScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QNBScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; @@ -34,13 +36,16 @@ public class QNBScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.QuantumLinkChamber.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, + this.getGuiDisplayName(GuiText.QuantumLinkChamber.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/chest.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java index 390951f58..a461761cc 100644 --- a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java @@ -18,12 +18,15 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import org.lwjgl.glfw.GLFW; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.util.InputMappings; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; import appeng.client.ActionKey; @@ -47,7 +50,8 @@ public class QuartzKnifeScreen extends AEBaseScreen { public void init() { super.init(); - this.name = new TextFieldWidget(this.font, this.guiLeft + 24, this.guiTop + 32, 79, this.font.FONT_HEIGHT, ""); + this.name = new TextFieldWidget(this.font, this.guiLeft + 24, this.guiTop + 32, 79, this.font.FONT_HEIGHT, + new StringTextComponent("")); this.name.setEnableBackgroundDrawing(false); this.name.setMaxStringLength(32); this.name.setTextColor(0xFFFFFF); @@ -56,16 +60,19 @@ public class QuartzKnifeScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.QuartzCuttingKnife.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, + this.getGuiDisplayName(GuiText.QuartzCuttingKnife.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/quartzknife.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); - this.name.render(mouseX, mouseY, partialTicks); + this.name.render(matrixStack, mouseX, mouseY, partialTicks); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java b/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java index 7ea9bbe48..404945e9e 100644 --- a/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java +++ b/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; @@ -80,9 +82,9 @@ public class SecurityStationScreen extends MEMonitorableScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.SkyChest.getLocal()), 8, 8, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 2, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SkyChest.textComponent()).getString(), 8, 8, + 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 2, 4210752); } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { bindTexture(TEXTURE); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, 0); } diff --git a/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java b/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java index a63492009..a501e77f7 100644 --- a/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java +++ b/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; @@ -43,33 +45,37 @@ public class SpatialIOPortScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(GuiText.StoredPower.getLocal() + ": " + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, GuiText.StoredPower.getLocal() + ": " + Platform.formatPowerLong(this.container.getCurrentPower(), false), 13, 21, 4210752); - this.font.drawString( + this.font.drawString(matrixStack, GuiText.MaxPower.getLocal() + ": " + Platform.formatPowerLong(this.container.getMaxPower(), false), 13, 31, 4210752); - this.font.drawString(GuiText.RequiredPower.getLocal() + ": " + this.font.drawString(matrixStack, GuiText.RequiredPower.getLocal() + ": " + Platform.formatPowerLong(this.container.getRequiredPower(), false), 13, 73, 4210752); - this.font.drawString( + this.font.drawString(matrixStack, GuiText.Efficiency.getLocal() + ": " + (((float) this.container.getEfficency()) / 100) + '%', 13, 83, 4210752); - this.font.drawString(this.getGuiDisplayName(GuiText.SpatialIOPort.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SpatialIOPort.textComponent()).getString(), 8, + 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96, 4210752); if (this.container.xSize != 0 && this.container.ySize != 0 && this.container.zSize != 0) { final String text = GuiText.SCSSize.getLocal() + ": " + this.container.xSize + "x" + this.container.ySize + "x" + this.container.zSize; - this.font.drawString(text, 13, 93, 4210752); + this.font.drawString(matrixStack, text, 13, 93, 4210752); } else { - this.font.drawString(GuiText.SCSSize.getLocal() + ": " + GuiText.SCSInvalid.getLocal(), 13, 93, 4210752); + this.font.drawString(matrixStack, GuiText.SCSSize.getLocal() + ": " + GuiText.SCSInvalid.getLocal(), 13, 93, + 4210752); } } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/spatialio.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java b/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java index 700c7bf2f..1be9a2962 100644 --- a/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; @@ -58,7 +60,7 @@ public class StorageBusScreen extends UpgradeableScreen { this.fuzzyMode = new ServerSettingToggleButton<>(this.guiLeft - 18, this.guiTop + 88, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL); - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), this.itemRenderer, btn -> openPriorityGui())); this.addButton(this.storageFilter); @@ -67,9 +69,11 @@ public class StorageBusScreen extends UpgradeableScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.StorageBus.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.StorageBus.textComponent()).getString(), 8, 6, + 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); if (this.fuzzyMode != null) { this.fuzzyMode.set(this.cvb.getFuzzyMode()); diff --git a/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java b/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java index 71add3ef1..1fbd870dc 100644 --- a/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java +++ b/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java @@ -18,6 +18,8 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; @@ -82,9 +84,11 @@ public class UpgradeableScreen extends AEBaseScr } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(this.getName().getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(this.getName().textComponent()).getString(), 8, 6, + 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); if (this.redstoneMode != null) { this.redstoneMode.set(this.cvb.getRedStoneMode()); @@ -104,7 +108,8 @@ public class UpgradeableScreen extends AEBaseScr } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.handleButtonVisibility(); this.bindTexture(this.getBackground()); diff --git a/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java b/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java index 2568cbd8e..51d3ad143 100644 --- a/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java +++ b/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java @@ -18,10 +18,12 @@ package appeng.client.gui.implementations; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; import appeng.client.gui.AEBaseScreen; @@ -50,12 +52,14 @@ public class VibrationChamberScreen extends AEBaseScreen 0) { final int i1 = this.container.getRemainingBurnTime() * 12 / 100; @@ -68,7 +72,8 @@ public class VibrationChamberScreen extends AEBaseScreen { } @Override - public void drawFG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(this.getGuiDisplayName(GuiText.Wireless.getLocal()), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Wireless.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); if (container.getRange() > 0) { final String firstMessage = GuiText.Range.getLocal() + ": " + (container.getRange() / 10.0) + " m"; @@ -55,13 +57,13 @@ public class WirelessScreen extends AEBaseScreen { final int strWidth = Math.max(this.font.getStringWidth(firstMessage), this.font.getStringWidth(secondMessage)); final int cOffset = (this.xSize / 2) - (strWidth / 2); - this.font.drawString(firstMessage, cOffset, 20, 4210752); - this.font.drawString(secondMessage, cOffset, 20 + 12, 4210752); + this.font.drawString(matrixStack, firstMessage, cOffset, 20, 4210752); + this.font.drawString(matrixStack, secondMessage, cOffset, 20 + 12, 4210752); } } @Override - public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { this.bindTexture("guis/wireless.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/widgets/AETextField.java b/src/main/java/appeng/client/gui/widgets/AETextField.java index 89e146d28..10112a973 100644 --- a/src/main/java/appeng/client/gui/widgets/AETextField.java +++ b/src/main/java/appeng/client/gui/widgets/AETextField.java @@ -18,6 +18,7 @@ package appeng.client.gui.widgets; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; @@ -26,6 +27,7 @@ import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.util.text.StringTextComponent; /** * A modified version of the Minecraft text field. You can initialize it over @@ -52,10 +54,11 @@ public class AETextField extends TextFieldWidget { */ public AETextField(final FontRenderer fontRenderer, final int xPos, final int yPos, final int width, final int height) { - super(fontRenderer, xPos + PADDING, yPos + PADDING, width - 2 * PADDING - (int) fontRenderer.getCharWidth('_'), - height - 2 * PADDING, ""); + super(fontRenderer, xPos + PADDING, yPos + PADDING, + width - 2 * PADDING - (int) fontRenderer.getStringWidth("_"), height - 2 * PADDING, + new StringTextComponent("")); - this._fontPad = (int) fontRenderer.getCharWidth('_'); + this._fontPad = (int) fontRenderer.getStringWidth("_"); } public void selectAll() { @@ -68,16 +71,18 @@ public class AETextField extends TextFieldWidget { } @Override - public void renderButton(int mouseX, int mouseY, float partial) { + public void renderButton(MatrixStack matrixStack, int mouseX, int mouseY, float partial) { if (this.getVisible()) { if (this.isFocused()) { - fill(this.x - PADDING + 1, this.y - PADDING + 1, this.x + this.width + this._fontPad + PADDING - 1, - this.y + this.height + PADDING - 1, 0xFF606060); + fill(matrixStack, this.x - PADDING + 1, this.y - PADDING + 1, + this.x + this.width + this._fontPad + PADDING - 1, this.y + this.height + PADDING - 1, + 0xFF606060); } else { - fill(this.x - PADDING + 1, this.y - PADDING + 1, this.x + this.width + this._fontPad + PADDING - 1, - this.y + this.height + PADDING - 1, 0xFFA8A8A8); + fill(matrixStack, this.x - PADDING + 1, this.y - PADDING + 1, + this.x + this.width + this._fontPad + PADDING - 1, this.y + this.height + PADDING - 1, + 0xFFA8A8A8); } - super.renderButton(mouseX, mouseY, partial); + super.renderButton(matrixStack, mouseX, mouseY, partial); } } diff --git a/src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java b/src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java index 1f18f0028..17400b9c0 100644 --- a/src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java +++ b/src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java @@ -1,10 +1,13 @@ package appeng.client.gui.widgets; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.AbstractGui; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; public abstract class CustomSlotWidget extends AbstractGui implements ITooltip { private final int x; @@ -28,13 +31,13 @@ public abstract class CustomSlotWidget extends AbstractGui implements ITooltip { public void slotClicked(final ItemStack clickStack, final int mouseButton) { } - public abstract void drawContent(final Minecraft mc, final int mouseX, final int mouseY, final float partialTicks); + public abstract void drawContent(MatrixStack matrixStack, final Minecraft mc, final int mouseX, final int mouseY, final float partialTicks); public void drawBackground(int guileft, int guitop, int currentZIndex) { } @Override - public String getMessage() { + public ITextComponent getMessage() { return null; } diff --git a/src/main/java/appeng/client/gui/widgets/ITooltip.java b/src/main/java/appeng/client/gui/widgets/ITooltip.java index 73ef0821c..d487dc155 100644 --- a/src/main/java/appeng/client/gui/widgets/ITooltip.java +++ b/src/main/java/appeng/client/gui/widgets/ITooltip.java @@ -18,6 +18,8 @@ package appeng.client.gui.widgets; +import net.minecraft.util.text.ITextComponent; + /** * AEBaseGui controlled Tooltip Interface. */ @@ -28,7 +30,7 @@ public interface ITooltip { * * @return tooltip message */ - String getMessage(); + ITextComponent getMessage(); /** * x Location for the object that triggers the tooltip. diff --git a/src/main/java/appeng/client/gui/widgets/IconButton.java b/src/main/java/appeng/client/gui/widgets/IconButton.java index 40091320f..fd8e9b6be 100644 --- a/src/main/java/appeng/client/gui/widgets/IconButton.java +++ b/src/main/java/appeng/client/gui/widgets/IconButton.java @@ -18,12 +18,14 @@ package appeng.client.gui.widgets; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.widget.button.Button; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; public abstract class IconButton extends Button implements ITooltip { @@ -33,7 +35,7 @@ public abstract class IconButton extends Button implements ITooltip { private boolean halfSize = false; public IconButton(final int x, final int y, IPressable onPress) { - super(x, y, 16, 16, "", onPress); + super(x, y, 16, 16, new StringTextComponent(""), onPress); } public void setVisibility(final boolean vis) { @@ -42,7 +44,7 @@ public abstract class IconButton extends Button implements ITooltip { } @Override - public void renderButton(final int mouseX, final int mouseY, float partial) { + public void renderButton(MatrixStack matrixStack, final int mouseX, final int mouseY, float partial) { Minecraft minecraft = Minecraft.getInstance(); diff --git a/src/main/java/appeng/client/gui/widgets/NumberBox.java b/src/main/java/appeng/client/gui/widgets/NumberBox.java index efd5f4312..20c7267bf 100644 --- a/src/main/java/appeng/client/gui/widgets/NumberBox.java +++ b/src/main/java/appeng/client/gui/widgets/NumberBox.java @@ -22,6 +22,7 @@ import java.util.function.LongConsumer; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.util.text.StringTextComponent; public class NumberBox extends TextFieldWidget { @@ -35,7 +36,7 @@ public class NumberBox extends TextFieldWidget { public NumberBox(final FontRenderer fontRenderer, final int x, final int y, final int width, final int height, final Class type, LongConsumer changeListener) { - super(fontRenderer, x, y, width, height, "0"); + super(fontRenderer, x, y, width, height, new StringTextComponent("0")); this.setText("0"); setResponder(this::handleTextChanged); this.lastValue = 0; diff --git a/src/main/java/appeng/client/gui/widgets/ProgressBar.java b/src/main/java/appeng/client/gui/widgets/ProgressBar.java index eefff2b91..0a5f69b00 100644 --- a/src/main/java/appeng/client/gui/widgets/ProgressBar.java +++ b/src/main/java/appeng/client/gui/widgets/ProgressBar.java @@ -18,9 +18,13 @@ package appeng.client.gui.widgets; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.widget.Widget; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; import appeng.container.interfaces.IProgressProvider; @@ -33,8 +37,8 @@ public class ProgressBar extends Widget implements ITooltip { private final int fill_u; private final int fill_v; private final Direction layout; - private final String titleName; - private String fullMsg; + private final ITextComponent titleName; + private ITextComponent fullMsg; public ProgressBar(final IProgressProvider source, final String texture, final int posX, final int posY, final int u, final int y, final int width, final int height, final Direction dir) { @@ -42,8 +46,9 @@ public class ProgressBar extends Widget implements ITooltip { } public ProgressBar(final IProgressProvider source, final String texture, final int posX, final int posY, - final int u, final int y, final int width, final int height, final Direction dir, final String title) { - super(posX, posY, width, height, ""); + final int u, final int y, final int width, final int height, final Direction dir, + final ITextComponent title) { + super(posX, posY, width, height, new StringTextComponent("")); this.source = source; this.texture = new ResourceLocation("appliedenergistics2", "textures/" + texture); this.fill_u = u; @@ -53,7 +58,7 @@ public class ProgressBar extends Widget implements ITooltip { } @Override - public void renderButton(final int par2, final int par3, final float partial) { + public void renderButton(MatrixStack matrixStack, final int par2, final int par3, final float partial) { if (this.visible) { Minecraft.getInstance().getTextureManager().bindTexture(this.texture); final int max = this.source.getMaxProgress(); @@ -71,18 +76,20 @@ public class ProgressBar extends Widget implements ITooltip { } } - public void setFullMsg(final String msg) { + public void setFullMsg(final ITextComponent msg) { this.fullMsg = msg; } @Override - public String getMessage() { + public ITextComponent getMessage() { if (this.fullMsg != null) { return this.fullMsg; } + ITextComponent result = this.titleName != null ? this.titleName : new StringTextComponent(""); - return (this.titleName != null ? this.titleName : "") + '\n' + this.source.getCurrentProgress() + ' ' - + GuiText.Of.getLocal() + ' ' + this.source.getMaxProgress(); + return result.deepCopy().func_240702_b_("\n").func_240702_b_(this.source.getCurrentProgress() + " ") + .func_230529_a_( + GuiText.Of.textComponent().deepCopy().func_240702_b_(" " + this.source.getMaxProgress())); } @Override diff --git a/src/main/java/appeng/client/gui/widgets/TabButton.java b/src/main/java/appeng/client/gui/widgets/TabButton.java index 6ae1e69f9..afc8c660e 100644 --- a/src/main/java/appeng/client/gui/widgets/TabButton.java +++ b/src/main/java/appeng/client/gui/widgets/TabButton.java @@ -18,6 +18,7 @@ package appeng.client.gui.widgets; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; @@ -26,6 +27,7 @@ import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.text.ITextComponent; public class TabButton extends Button implements ITooltip { public static final ResourceLocation TEXTURE_STATES = new ResourceLocation("appliedenergistics2", @@ -35,7 +37,7 @@ public class TabButton extends Button implements ITooltip { private int myIcon = -1; private ItemStack myItem; - public TabButton(final int x, final int y, final int ico, final String message, final ItemRenderer ir, + public TabButton(final int x, final int y, final int ico, final ITextComponent message, final ItemRenderer ir, IPressable onPress) { super(x, y, 22, 22, message, onPress); @@ -52,7 +54,7 @@ public class TabButton extends Button implements ITooltip { * @param message mouse over message * @param ir renderer */ - public TabButton(final int x, final int y, final ItemStack ico, final String message, final ItemRenderer ir, + public TabButton(final int x, final int y, final ItemStack ico, final ITextComponent message, final ItemRenderer ir, IPressable onPress) { super(x, y, 22, 22, message, onPress); this.myItem = ico; @@ -60,7 +62,7 @@ public class TabButton extends Button implements ITooltip { } @Override - public void renderButton(final int x, final int y, float partial) { + public void renderButton(MatrixStack matrixStack, final int x, final int y, float partial) { final Minecraft minecraft = Minecraft.getInstance(); if (this.visible) { @@ -73,13 +75,13 @@ public class TabButton extends Button implements ITooltip { final int offsetX = this.hideEdge > 0 ? 1 : 0; - blit(this.x, this.y, uv_x * 16, 0, 25, 22); + blit(matrixStack, this.x, this.y, uv_x * 16, 0, 25, 22); if (this.myIcon >= 0) { final int uv_y = this.myIcon / 16; uv_x = this.myIcon - uv_y * 16; - blit(offsetX + this.x + 3, this.y + 3, uv_x * 16, uv_y * 16, 16, 16); + blit(matrixStack, offsetX + this.x + 3, this.y + 3, uv_x * 16, uv_y * 16, 16, 16); } RenderSystem.disableAlphaTest(); diff --git a/src/main/java/appeng/client/gui/widgets/ToggleButton.java b/src/main/java/appeng/client/gui/widgets/ToggleButton.java index 5a13843b5..90b774a0a 100644 --- a/src/main/java/appeng/client/gui/widgets/ToggleButton.java +++ b/src/main/java/appeng/client/gui/widgets/ToggleButton.java @@ -20,12 +20,15 @@ package appeng.client.gui.widgets; import java.util.regex.Pattern; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.widget.button.Button; import net.minecraft.client.resources.I18n; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; public class ToggleButton extends Button implements ITooltip { @@ -42,7 +45,7 @@ public class ToggleButton extends Button implements ITooltip { public ToggleButton(final int x, final int y, final int on, final int off, final String displayName, final String displayHint, IPressable onPress) { - super(x, y, 16, 16, "", onPress); + super(x, y, 16, 16, new StringTextComponent(""), onPress); this.iconIdxOn = on; this.iconIdxOff = off; this.displayName = displayName; @@ -54,7 +57,7 @@ public class ToggleButton extends Button implements ITooltip { } @Override - public void renderButton(final int mouseX, final int mouseY, final float partial) { + public void renderButton(MatrixStack matrixStack, final int mouseX, final int mouseY, final float partial) { if (this.visible) { final int iconIndex = this.getIconIndex(); @@ -74,7 +77,7 @@ public class ToggleButton extends Button implements ITooltip { } @Override - public String getMessage() { + public ITextComponent getMessage() { if (this.displayName != null) { String name = I18n.format(this.displayName); String value = I18n.format(this.displayHint); @@ -97,9 +100,9 @@ public class ToggleButton extends Button implements ITooltip { sb.replace(i, i + 1, "\n"); } - return name + '\n' + sb; + return new StringTextComponent(name + '\n' + sb); } - return ""; + return new StringTextComponent(""); } @Override diff --git a/src/main/java/appeng/client/render/ColorableTileBlockColor.java b/src/main/java/appeng/client/render/ColorableTileBlockColor.java index 0a629ed33..78cff513c 100644 --- a/src/main/java/appeng/client/render/ColorableTileBlockColor.java +++ b/src/main/java/appeng/client/render/ColorableTileBlockColor.java @@ -24,7 +24,7 @@ import net.minecraft.block.BlockState; import net.minecraft.client.renderer.color.IBlockColor; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILightReader; +import net.minecraft.world.IBlockDisplayReader; import appeng.api.implementations.tiles.IColorableTile; import appeng.api.util.AEColor; @@ -37,7 +37,7 @@ public class ColorableTileBlockColor implements IBlockColor { public static final ColorableTileBlockColor INSTANCE = new ColorableTileBlockColor(); @Override - public int getColor(BlockState state, @Nullable ILightReader worldIn, @Nullable BlockPos pos, int tintIndex) { + public int getColor(BlockState state, @Nullable IBlockDisplayReader worldIn, @Nullable BlockPos pos, int tintIndex) { AEColor color = AEColor.TRANSPARENT; // Default to a neutral color if (worldIn != null && pos != null) { diff --git a/src/main/java/appeng/client/render/DummyFluidDispatcherBakedModel.java b/src/main/java/appeng/client/render/DummyFluidDispatcherBakedModel.java index f556049ef..ff6c1f661 100644 --- a/src/main/java/appeng/client/render/DummyFluidDispatcherBakedModel.java +++ b/src/main/java/appeng/client/render/DummyFluidDispatcherBakedModel.java @@ -28,19 +28,19 @@ import javax.annotation.Nullable; import com.google.common.collect.ImmutableList; import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.TransformationMatrix; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.fluid.Fluids; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; +import net.minecraft.util.math.vector.TransformationMatrix; import net.minecraftforge.client.model.ItemLayerModel; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; @@ -53,10 +53,10 @@ import appeng.fluids.items.FluidDummyItem; * Override List is used to accomplish this. */ public class DummyFluidDispatcherBakedModel extends DelegateBakedModel { - private final Function bakedTextureGetter; + private final Function bakedTextureGetter; public DummyFluidDispatcherBakedModel(IBakedModel baseModel, - Function bakedTextureGetter) { + Function bakedTextureGetter) { super(baseModel); this.bakedTextureGetter = bakedTextureGetter; } @@ -86,7 +86,7 @@ public class DummyFluidDispatcherBakedModel extends DelegateBakedModel { public ItemOverrideList getOverrides() { return new ItemOverrideList() { @Override - public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, World world, + public IBakedModel func_239290_a_(IBakedModel originalModel, ItemStack stack, ClientWorld world, LivingEntity entity) { if (!(stack.getItem() instanceof FluidDummyItem)) { return originalModel; @@ -101,7 +101,7 @@ public class DummyFluidDispatcherBakedModel extends DelegateBakedModel { FluidAttributes attributes = fluidStack.getFluid().getAttributes(); ResourceLocation stillTexture = attributes.getStillTexture(fluidStack); - Material stillMaterial = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, stillTexture); + RenderMaterial stillMaterial = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, stillTexture); TextureAtlasSprite sprite = DummyFluidDispatcherBakedModel.this.bakedTextureGetter.apply(stillMaterial); if (sprite == null) { return new DummyFluidBakedModel(ImmutableList.of()); diff --git a/src/main/java/appeng/client/render/DummyFluidItemModel.java b/src/main/java/appeng/client/render/DummyFluidItemModel.java index 80770b11d..56e1fcb60 100644 --- a/src/main/java/appeng/client/render/DummyFluidItemModel.java +++ b/src/main/java/appeng/client/render/DummyFluidItemModel.java @@ -29,8 +29,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.IModelConfiguration; @@ -49,7 +49,7 @@ public class DummyFluidItemModel implements IModelGeometry @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { IBakedModel bakedBaseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); @@ -57,7 +57,7 @@ public class DummyFluidItemModel implements IModelGeometry } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Collections.emptyList(); } diff --git a/src/main/java/appeng/client/render/FacadeItemModel.java b/src/main/java/appeng/client/render/FacadeItemModel.java index bad498a8e..b07a9d75a 100644 --- a/src/main/java/appeng/client/render/FacadeItemModel.java +++ b/src/main/java/appeng/client/render/FacadeItemModel.java @@ -28,8 +28,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.IModelConfiguration; @@ -49,7 +49,7 @@ public class FacadeItemModel implements IModelGeometry { @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { IBakedModel bakedBaseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); FacadeBuilder facadeBuilder = new FacadeBuilder(); @@ -58,7 +58,7 @@ public class FacadeItemModel implements IModelGeometry { } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return modelGetter.apply(MODEL_BASE).getTextures(modelGetter, missingTextureErrors); } diff --git a/src/main/java/appeng/client/render/FacingToRotation.java b/src/main/java/appeng/client/render/FacingToRotation.java index 323d327ce..aca8a9438 100644 --- a/src/main/java/appeng/client/render/FacingToRotation.java +++ b/src/main/java/appeng/client/render/FacingToRotation.java @@ -20,13 +20,13 @@ package appeng.client.render; import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.client.renderer.Matrix4f; -import net.minecraft.client.renderer.Quaternion; -import net.minecraft.client.renderer.Vector3f; -import net.minecraft.client.renderer.Vector4f; import net.minecraft.util.Direction; import net.minecraft.util.IStringSerializable; -import net.minecraft.util.math.Vec3i; +import net.minecraft.util.math.vector.Matrix4f; +import net.minecraft.util.math.vector.Quaternion; +import net.minecraft.util.math.vector.Vector3f; +import net.minecraft.util.math.vector.Vector3i; +import net.minecraft.util.math.vector.Vector4f; /** * TODO: Removed useless stuff. @@ -90,7 +90,7 @@ public enum FacingToRotation implements IStringSerializable { } public Direction rotate(Direction facing) { - Vec3i dir = facing.getDirectionVec(); + Vector3i dir = facing.getDirectionVec(); Vector4f vec = new Vector4f(dir.getX(), dir.getY(), dir.getZ(), 1); vec.transform(mat); return Direction.getFacingFromVector(vec.getX(), vec.getY(), vec.getZ()); diff --git a/src/main/java/appeng/client/render/SpatialSkyRender.java b/src/main/java/appeng/client/render/SpatialSkyRender.java index cb1edbacc..8dd9de244 100644 --- a/src/main/java/appeng/client/render/SpatialSkyRender.java +++ b/src/main/java/appeng/client/render/SpatialSkyRender.java @@ -27,11 +27,11 @@ import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.Quaternion; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.world.ClientWorld; +import net.minecraft.util.math.vector.Quaternion; import net.minecraftforge.client.IRenderHandler; import net.minecraftforge.client.SkyRenderHandler; diff --git a/src/main/java/appeng/client/render/StackSizeRenderer.java b/src/main/java/appeng/client/render/StackSizeRenderer.java index dc7c19266..c6cf1e247 100644 --- a/src/main/java/appeng/client/render/StackSizeRenderer.java +++ b/src/main/java/appeng/client/render/StackSizeRenderer.java @@ -23,8 +23,8 @@ import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.TransformationMatrix; -import net.minecraft.client.renderer.Vector3f; +import net.minecraft.util.math.vector.TransformationMatrix; +import net.minecraft.util.math.vector.Vector3f; import appeng.api.storage.data.IAEItemStack; import appeng.core.AEConfig; diff --git a/src/main/java/appeng/client/render/StaticBlockColor.java b/src/main/java/appeng/client/render/StaticBlockColor.java index 53ff4d178..1282f9ad3 100644 --- a/src/main/java/appeng/client/render/StaticBlockColor.java +++ b/src/main/java/appeng/client/render/StaticBlockColor.java @@ -23,7 +23,7 @@ import javax.annotation.Nullable; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.color.IBlockColor; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILightReader; +import net.minecraft.world.IBlockDisplayReader; import appeng.api.util.AEColor; @@ -39,7 +39,7 @@ public class StaticBlockColor implements IBlockColor { } @Override - public int getColor(BlockState state, @Nullable ILightReader worldIn, @Nullable BlockPos pos, int tintIndex) { + public int getColor(BlockState state, @Nullable IBlockDisplayReader worldIn, @Nullable BlockPos pos, int tintIndex) { return this.color.getVariantByTintIndex(tintIndex); } diff --git a/src/main/java/appeng/client/render/TesrRenderHelper.java b/src/main/java/appeng/client/render/TesrRenderHelper.java index 1904b94cf..3fc652747 100644 --- a/src/main/java/appeng/client/render/TesrRenderHelper.java +++ b/src/main/java/appeng/client/render/TesrRenderHelper.java @@ -23,11 +23,11 @@ import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; +import net.minecraft.util.math.vector.Vector3f; import appeng.api.storage.data.IAEItemStack; import appeng.util.IWideReadableNumberConverter; diff --git a/src/main/java/appeng/client/render/cablebus/CableBuilder.java b/src/main/java/appeng/client/render/cablebus/CableBuilder.java index ea650e1e7..5ce6cd828 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBuilder.java +++ b/src/main/java/appeng/client/render/cablebus/CableBuilder.java @@ -25,8 +25,9 @@ import java.util.EnumSet; import java.util.List; import java.util.function.Function; +import net.minecraft.block.material.Material; import net.minecraft.client.renderer.model.BakedQuad; -import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.Direction; @@ -49,7 +50,7 @@ class CableBuilder { private final SmartCableTextures smartCableTextures; - CableBuilder(Function bakedTextureGetter) { + CableBuilder(Function bakedTextureGetter) { this.coreTextures = new EnumMap<>(CableCoreType.class); for (CableCoreType type : CableCoreType.values()) { @@ -77,7 +78,7 @@ class CableBuilder { this.smartCableTextures = new SmartCableTextures(bakedTextureGetter); } - static Material getConnectionTexture(AECableType cableType, AEColor color) { + static RenderMaterial getConnectionTexture(AECableType cableType, AEColor color) { String textureFolder; switch (cableType) { case GLASS: @@ -99,7 +100,7 @@ class CableBuilder { throw new IllegalStateException("Cable type " + cableType + " does not support connections."); } - return new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + return new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, textureFolder + color.name().toLowerCase())); } @@ -701,8 +702,8 @@ class CableBuilder { } // Get all textures needed for building the actual cable quads - public static List getTextures() { - List locations = new ArrayList<>(); + public static List getTextures() { + List locations = new ArrayList<>(); for (CableCoreType coreType : CableCoreType.values()) { for (AEColor color : AEColor.values()) { diff --git a/src/main/java/appeng/client/render/cablebus/CableBusBreakingParticle.java b/src/main/java/appeng/client/render/cablebus/CableBusBreakingParticle.java index bd239903f..12ac6e08b 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBusBreakingParticle.java +++ b/src/main/java/appeng/client/render/cablebus/CableBusBreakingParticle.java @@ -3,7 +3,7 @@ package appeng.client.render.cablebus; import net.minecraft.client.particle.IParticleRenderType; import net.minecraft.client.particle.SpriteTexturedParticle; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.world.World; +import net.minecraft.client.world.ClientWorld; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -15,7 +15,7 @@ public class CableBusBreakingParticle extends SpriteTexturedParticle { private final float field_217571_C; private final float field_217572_F; - public CableBusBreakingParticle(World world, double x, double y, double z, double speedX, double speedY, + public CableBusBreakingParticle(ClientWorld world, double x, double y, double z, double speedX, double speedY, double speedZ, TextureAtlasSprite sprite) { super(world, x, y, z, speedX, speedY, speedZ); this.setSprite(sprite); @@ -25,7 +25,7 @@ public class CableBusBreakingParticle extends SpriteTexturedParticle { this.field_217572_F = this.rand.nextFloat() * 3.0F; } - public CableBusBreakingParticle(World world, double x, double y, double z, TextureAtlasSprite sprite) { + public CableBusBreakingParticle(ClientWorld world, double x, double y, double z, TextureAtlasSprite sprite) { this(world, x, y, z, 0, 0, 0, sprite); } diff --git a/src/main/java/appeng/client/render/cablebus/CableBusModel.java b/src/main/java/appeng/client/render/cablebus/CableBusModel.java index 5c14b2f82..e0bc1f10c 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBusModel.java +++ b/src/main/java/appeng/client/render/cablebus/CableBusModel.java @@ -31,8 +31,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.IModelConfiguration; @@ -55,7 +55,7 @@ public class CableBusModel implements IModelGeometry { @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { Map partModels = this.loadPartModels(bakery, spriteGetter, modelTransform); @@ -71,13 +71,13 @@ public class CableBusModel implements IModelGeometry { } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Collections.unmodifiableList(CableBuilder.getTextures()); } private Map loadPartModels(ModelBakery bakery, - Function spriteGetterIn, IModelTransform transformIn) { + Function spriteGetterIn, IModelTransform transformIn) { ImmutableMap.Builder result = ImmutableMap.builder(); for (ResourceLocation location : this.partModels.getModels()) { diff --git a/src/main/java/appeng/client/render/cablebus/CableBusRenderState.java b/src/main/java/appeng/client/render/cablebus/CableBusRenderState.java index b0e1c4d64..46a1aebcb 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBusRenderState.java +++ b/src/main/java/appeng/client/render/cablebus/CableBusRenderState.java @@ -28,7 +28,7 @@ import java.util.Objects; import net.minecraft.util.Direction; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILightReader; +import net.minecraft.world.IBlockDisplayReader; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelProperty; @@ -80,7 +80,7 @@ public class CableBusRenderState { private EnumMap facades = new EnumMap<>(Direction.class); // Used for Facades. - private WeakReference world; + private WeakReference world; private BlockPos pos; // Contains the bounding boxes of all parts on the cable bus to allow facades to @@ -152,11 +152,11 @@ public class CableBusRenderState { return this.facades; } - public ILightReader getWorld() { + public IBlockDisplayReader getWorld() { return this.world.get(); } - public void setWorld(ILightReader world) { + public void setWorld(IBlockDisplayReader world) { this.world = new WeakReference<>(world); } diff --git a/src/main/java/appeng/client/render/cablebus/CableCoreType.java b/src/main/java/appeng/client/render/cablebus/CableCoreType.java index f5f218ed7..f1c7e3975 100644 --- a/src/main/java/appeng/client/render/cablebus/CableCoreType.java +++ b/src/main/java/appeng/client/render/cablebus/CableCoreType.java @@ -23,7 +23,7 @@ import java.util.Map; import com.google.common.collect.ImmutableMap; -import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.util.ResourceLocation; @@ -72,8 +72,8 @@ public enum CableCoreType { return cableMapping.get(cableType); } - public Material getTexture(AEColor color) { - return new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + public RenderMaterial getTexture(AEColor color) { + return new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, this.textureFolder + "/" + color.name().toLowerCase())); } diff --git a/src/main/java/appeng/client/render/cablebus/CubeBuilder.java b/src/main/java/appeng/client/render/cablebus/CubeBuilder.java index 59b0bbe91..47d15a35e 100644 --- a/src/main/java/appeng/client/render/cablebus/CubeBuilder.java +++ b/src/main/java/appeng/client/render/cablebus/CubeBuilder.java @@ -25,12 +25,12 @@ import java.util.List; import com.google.common.base.Preconditions; -import net.minecraft.client.renderer.Vector4f; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.util.Direction; +import net.minecraft.util.math.vector.Vector4f; import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; /** diff --git a/src/main/java/appeng/client/render/cablebus/FacadeBlockAccess.java b/src/main/java/appeng/client/render/cablebus/FacadeBlockAccess.java index 7318d82a3..0a01983ef 100644 --- a/src/main/java/appeng/client/render/cablebus/FacadeBlockAccess.java +++ b/src/main/java/appeng/client/render/cablebus/FacadeBlockAccess.java @@ -21,11 +21,11 @@ package appeng.client.render.cablebus; import javax.annotation.Nullable; import net.minecraft.block.BlockState; -import net.minecraft.fluid.IFluidState; +import net.minecraft.fluid.FluidState; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILightReader; +import net.minecraft.world.IBlockDisplayReader; import net.minecraft.world.level.ColorResolver; import net.minecraft.world.lighting.WorldLightManager; @@ -35,14 +35,14 @@ import net.minecraft.world.lighting.WorldLightManager; * * @author covers1624 */ -public class FacadeBlockAccess implements ILightReader { +public class FacadeBlockAccess implements IBlockDisplayReader { - private final ILightReader world; + private final IBlockDisplayReader world; private final BlockPos pos; private final Direction side; private final BlockState state; - public FacadeBlockAccess(ILightReader world, BlockPos pos, Direction side, BlockState state) { + public FacadeBlockAccess(IBlockDisplayReader world, BlockPos pos, Direction side, BlockState state) { this.world = world; this.pos = pos; this.side = side; @@ -64,7 +64,7 @@ public class FacadeBlockAccess implements ILightReader { } @Override - public IFluidState getFluidState(BlockPos pos) { + public FluidState getFluidState(BlockPos pos) { return world.getFluidState(pos); } diff --git a/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java b/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java index c99dcb6d8..c3f39aaec 100644 --- a/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java +++ b/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java @@ -44,7 +44,7 @@ import net.minecraft.util.Direction.Axis; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILightReader; +import net.minecraft.world.IBlockDisplayReader; import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.model.data.EmptyModelData; import net.minecraftforge.client.model.data.IModelData; @@ -112,7 +112,7 @@ public class FacadeBuilder { Map facadeStates = renderState.getFacades(); List partBoxes = renderState.getBoundingBoxes(); Set sidesWithParts = renderState.getAttachments().keySet(); - ILightReader parentWorld = renderState.getWorld(); + IBlockDisplayReader parentWorld = renderState.getWorld(); BlockPos pos = renderState.getPos(); BlockColors blockColors = Minecraft.getInstance().getBlockColors(); boolean thinFacades = isUseThinFacades(partBoxes); @@ -189,7 +189,7 @@ public class FacadeBuilder { AEAxisAlignedBB cutOutBox = getCutOutBox(facadeBox, partBoxes); List holeStrips = getBoxes(facadeBox, cutOutBox, side.getAxis()); - ILightReader facadeAccess = new FacadeBlockAccess(parentWorld, pos, side, blockState); + IBlockDisplayReader facadeAccess = new FacadeBlockAccess(parentWorld, pos, side, blockState); BlockRendererDispatcher dispatcher = Minecraft.getInstance().getBlockRendererDispatcher(); IBakedModel model = dispatcher.getModelForState(blockState); diff --git a/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java b/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java index 9839e67f1..e5b03715d 100644 --- a/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java +++ b/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java @@ -11,8 +11,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; @@ -22,12 +22,12 @@ import net.minecraftforge.client.model.geometry.IModelGeometry; import appeng.core.AppEng; public class P2PTunnelFrequencyModel implements IModelGeometry { - private static final Material TEXTURE = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "part/p2p_tunnel_frequency")); @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { try { final TextureAtlasSprite texture = spriteGetter.apply(TEXTURE); @@ -38,7 +38,7 @@ public class P2PTunnelFrequencyModel implements IModelGeometry getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Collections.singleton(TEXTURE); } diff --git a/src/main/java/appeng/client/render/cablebus/QuadRotator.java b/src/main/java/appeng/client/render/cablebus/QuadRotator.java index 963cad75a..4be0df195 100644 --- a/src/main/java/appeng/client/render/cablebus/QuadRotator.java +++ b/src/main/java/appeng/client/render/cablebus/QuadRotator.java @@ -21,11 +21,11 @@ package appeng.client.render.cablebus; import java.util.ArrayList; import java.util.List; -import net.minecraft.client.renderer.Matrix4f; -import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.Direction; +import net.minecraft.util.math.vector.Matrix4f; +import net.minecraft.util.math.vector.Vector3f; import appeng.client.render.FacingToRotation; import appeng.thirdparty.codechicken.lib.model.CachedFormat; diff --git a/src/main/java/appeng/client/render/cablebus/SmartCableTextures.java b/src/main/java/appeng/client/render/cablebus/SmartCableTextures.java index 221df809c..592c59585 100644 --- a/src/main/java/appeng/client/render/cablebus/SmartCableTextures.java +++ b/src/main/java/appeng/client/render/cablebus/SmartCableTextures.java @@ -21,7 +21,7 @@ package appeng.client.render.cablebus; import java.util.Arrays; import java.util.function.Function; -import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; @@ -33,7 +33,7 @@ import appeng.core.AppEng; */ public class SmartCableTextures { - public static final Material[] SMART_CHANNELS_TEXTURES = Arrays + public static final RenderMaterial[] SMART_CHANNELS_TEXTURES = Arrays .stream(new ResourceLocation[] { new ResourceLocation(AppEng.MOD_ID, "part/cable/smart/channels_00"), // new ResourceLocation(AppEng.MOD_ID, "part/cable/smart/channels_01"), // new ResourceLocation(AppEng.MOD_ID, "part/cable/smart/channels_02"), // @@ -44,14 +44,14 @@ public class SmartCableTextures { new ResourceLocation(AppEng.MOD_ID, "part/cable/smart/channels_12"), // new ResourceLocation(AppEng.MOD_ID, "part/cable/smart/channels_13"), // new ResourceLocation(AppEng.MOD_ID, "part/cable/smart/channels_14")// - }).map(e -> new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, e)).toArray(Material[]::new); + }).map(e -> new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, e)).toArray(RenderMaterial[]::new); // Textures used to display channels on smart cables. There's two sets of 5 // textures each, and // one of each set are composed together to get even/odd colored channels private final TextureAtlasSprite[] textures; - public SmartCableTextures(Function bakedTextureGetter) { + public SmartCableTextures(Function bakedTextureGetter) { this.textures = Arrays.stream(SMART_CHANNELS_TEXTURES)// .map(bakedTextureGetter)// .toArray(TextureAtlasSprite[]::new); diff --git a/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java b/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java index 728af1061..cb45d7cb7 100644 --- a/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java +++ b/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java @@ -29,8 +29,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; @@ -45,20 +45,20 @@ import appeng.core.AppEng; */ class CraftingCubeModel implements IModelGeometry { - private final static Material RING_CORNER = texture("ring_corner"); - private final static Material RING_SIDE_HOR = texture("ring_side_hor"); - private final static Material RING_SIDE_VER = texture("ring_side_ver"); - private final static Material UNIT_BASE = texture("unit_base"); - private final static Material LIGHT_BASE = texture("light_base"); - private final static Material ACCELERATOR_LIGHT = texture("accelerator_light"); - private final static Material STORAGE_1K_LIGHT = texture("1k_storage_light"); - private final static Material STORAGE_4K_LIGHT = texture("4k_storage_light"); - private final static Material STORAGE_16K_LIGHT = texture("16k_storage_light"); - private final static Material STORAGE_64K_LIGHT = texture("64k_storage_light"); - private final static Material MONITOR_BASE = texture("monitor_base"); - private final static Material MONITOR_LIGHT_DARK = texture("monitor_light_dark"); - private final static Material MONITOR_LIGHT_MEDIUM = texture("monitor_light_medium"); - private final static Material MONITOR_LIGHT_BRIGHT = texture("monitor_light_bright"); + private final static RenderMaterial RING_CORNER = texture("ring_corner"); + private final static RenderMaterial RING_SIDE_HOR = texture("ring_side_hor"); + private final static RenderMaterial RING_SIDE_VER = texture("ring_side_ver"); + private final static RenderMaterial UNIT_BASE = texture("unit_base"); + private final static RenderMaterial LIGHT_BASE = texture("light_base"); + private final static RenderMaterial ACCELERATOR_LIGHT = texture("accelerator_light"); + private final static RenderMaterial STORAGE_1K_LIGHT = texture("1k_storage_light"); + private final static RenderMaterial STORAGE_4K_LIGHT = texture("4k_storage_light"); + private final static RenderMaterial STORAGE_16K_LIGHT = texture("16k_storage_light"); + private final static RenderMaterial STORAGE_64K_LIGHT = texture("64k_storage_light"); + private final static RenderMaterial MONITOR_BASE = texture("monitor_base"); + private final static RenderMaterial MONITOR_LIGHT_DARK = texture("monitor_light_dark"); + private final static RenderMaterial MONITOR_LIGHT_MEDIUM = texture("monitor_light_medium"); + private final static RenderMaterial MONITOR_LIGHT_BRIGHT = texture("monitor_light_bright"); private final AbstractCraftingUnitBlock.CraftingUnitType type; @@ -67,7 +67,7 @@ class CraftingCubeModel implements IModelGeometry { } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return ImmutableList.of(RING_CORNER, RING_SIDE_HOR, RING_SIDE_VER, UNIT_BASE, LIGHT_BASE, ACCELERATOR_LIGHT, STORAGE_1K_LIGHT, STORAGE_4K_LIGHT, STORAGE_16K_LIGHT, STORAGE_64K_LIGHT, MONITOR_BASE, @@ -75,9 +75,7 @@ class CraftingCubeModel implements IModelGeometry { } @Override - public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, ResourceLocation modelLocation) { + public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { // Retrieve our textures and pass them on to the baked model TextureAtlasSprite ringCorner = spriteGetter.apply(RING_CORNER); TextureAtlasSprite ringSideHor = spriteGetter.apply(RING_SIDE_HOR); @@ -102,7 +100,7 @@ class CraftingCubeModel implements IModelGeometry { } } - private static TextureAtlasSprite getLightTexture(Function textureGetter, + private static TextureAtlasSprite getLightTexture(Function textureGetter, AbstractCraftingUnitBlock.CraftingUnitType type) { switch (type) { case ACCELERATOR: @@ -120,8 +118,8 @@ class CraftingCubeModel implements IModelGeometry { } } - private static Material texture(String name) { - return new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static RenderMaterial texture(String name) { + return new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/crafting/" + name)); } } diff --git a/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java b/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java index b819e8a45..c16876946 100644 --- a/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java @@ -7,12 +7,12 @@ import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.renderer.TransformationMatrix; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.model.ItemOverrideList; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; +import net.minecraft.util.math.vector.TransformationMatrix; import net.minecraft.world.World; import net.minecraftforge.client.model.PerspectiveMapWrapper; diff --git a/src/main/java/appeng/client/render/crafting/EncodedPatternModel.java b/src/main/java/appeng/client/render/crafting/EncodedPatternModel.java index 336b33f4d..71b61d8e2 100644 --- a/src/main/java/appeng/client/render/crafting/EncodedPatternModel.java +++ b/src/main/java/appeng/client/render/crafting/EncodedPatternModel.java @@ -10,8 +10,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.IModelConfiguration; @@ -29,14 +29,14 @@ public class EncodedPatternModel implements IModelGeometry } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return modelGetter.apply(baseModel).getTextures(modelGetter, missingTextureErrors); } @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { IBakedModel baseModel = bakery.getBakedModel(this.baseModel, modelTransform, spriteGetter); return new EncodedPatternBakedModel(baseModel); diff --git a/src/main/java/appeng/client/render/effects/CraftingFx.java b/src/main/java/appeng/client/render/effects/CraftingFx.java index f514c2066..d4db0d663 100644 --- a/src/main/java/appeng/client/render/effects/CraftingFx.java +++ b/src/main/java/appeng/client/render/effects/CraftingFx.java @@ -26,10 +26,11 @@ import net.minecraft.client.particle.IParticleRenderType; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.SpriteTexturedParticle; import net.minecraft.client.renderer.ActiveRenderInfo; -import net.minecraft.client.renderer.Vector3f; +import net.minecraft.client.world.ClientWorld; import net.minecraft.particles.BasicParticleType; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.util.math.vector.Vector3f; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -43,7 +44,7 @@ public class CraftingFx extends SpriteTexturedParticle { private final float offsetY; private final float offsetZ; - public CraftingFx(final World par1World, final double x, final double y, final double z, + public CraftingFx(final ClientWorld par1World, final double x, final double y, final double z, final IAnimatedSprite sprite) { super(par1World, x, y, z); @@ -78,10 +79,10 @@ public class CraftingFx extends SpriteTexturedParticle { // I believe this particle is same as breaking particle, but should not exit the // original block it was // spawned in (which is encased in glass) - Vec3d vec3d = renderInfo.getProjectedView(); - offX -= vec3d.x; - offY -= vec3d.y; - offZ -= vec3d.z; + Vector3d Vector3d = renderInfo.getProjectedView(); + offX -= Vector3d.x; + offY -= Vector3d.y; + offZ -= Vector3d.z; Vector3f[] avector3f = new Vector3f[] { new Vector3f(-1.0F, -1.0F, 0.0F), new Vector3f(-1.0F, 1.0F, 0.0F), new Vector3f(1.0F, 1.0F, 0.0F), new Vector3f(1.0F, -1.0F, 0.0F) }; diff --git a/src/main/java/appeng/client/render/effects/EnergyFx.java b/src/main/java/appeng/client/render/effects/EnergyFx.java index d3e8dbd45..348489f4a 100644 --- a/src/main/java/appeng/client/render/effects/EnergyFx.java +++ b/src/main/java/appeng/client/render/effects/EnergyFx.java @@ -26,8 +26,8 @@ import net.minecraft.client.particle.IParticleRenderType; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.SpriteTexturedParticle; import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.world.ClientWorld; import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -38,7 +38,7 @@ public class EnergyFx extends SpriteTexturedParticle { private final int startBlkY; private final int startBlkZ; - public EnergyFx(final World par1World, final double par2, final double par4, final double par6, + public EnergyFx(final ClientWorld par1World, final double par2, final double par4, final double par6, final IAnimatedSprite sprite) { super(par1World, par2, par4, par6); this.particleGravity = 0; @@ -109,7 +109,7 @@ public class EnergyFx extends SpriteTexturedParticle { } @Override - public Particle makeParticle(EnergyParticleData data, World worldIn, double x, double y, double z, + public Particle makeParticle(EnergyParticleData data, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { EnergyFx result = new EnergyFx(worldIn, x, y, z, spriteSet); result.setMotionX((float) xSpeed); diff --git a/src/main/java/appeng/client/render/effects/LightningArcParticleData.java b/src/main/java/appeng/client/render/effects/LightningArcParticleData.java index cb9992091..a4475ff49 100644 --- a/src/main/java/appeng/client/render/effects/LightningArcParticleData.java +++ b/src/main/java/appeng/client/render/effects/LightningArcParticleData.java @@ -8,7 +8,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import net.minecraft.network.PacketBuffer; import net.minecraft.particles.IParticleData; import net.minecraft.particles.ParticleType; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; /** * Contains the target point of the lightning arc (the source point is infered @@ -16,9 +16,9 @@ import net.minecraft.util.math.Vec3d; */ public class LightningArcParticleData implements IParticleData { - public final Vec3d target; + public final Vector3d target; - public LightningArcParticleData(Vec3d target) { + public LightningArcParticleData(Vector3d target) { this.target = target; } @@ -32,7 +32,7 @@ public class LightningArcParticleData implements IParticleData { float y = reader.readFloat(); reader.expect(' '); float z = reader.readFloat(); - return new LightningArcParticleData(new Vec3d(x, y, z)); + return new LightningArcParticleData(new Vector3d(x, y, z)); } @Override @@ -41,7 +41,7 @@ public class LightningArcParticleData implements IParticleData { float x = buffer.readFloat(); float y = buffer.readFloat(); float z = buffer.readFloat(); - return new LightningArcParticleData(new Vec3d(x, y, z)); + return new LightningArcParticleData(new Vector3d(x, y, z)); } }; diff --git a/src/main/java/appeng/client/render/effects/LightningFX.java b/src/main/java/appeng/client/render/effects/LightningFX.java index d7dc7748b..360cded14 100644 --- a/src/main/java/appeng/client/render/effects/LightningFX.java +++ b/src/main/java/appeng/client/render/effects/LightningFX.java @@ -29,11 +29,11 @@ import net.minecraft.client.particle.IParticleRenderType; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.SpriteTexturedParticle; import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.particles.BasicParticleType; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; +import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -49,14 +49,14 @@ public class LightningFX extends SpriteTexturedParticle { private final double[] verticesWithUV = new double[3]; private boolean hasData = false; - private LightningFX(final World w, final double x, final double y, final double z, final double r, final double g, - final double b) { + private LightningFX(final ClientWorld w, final double x, final double y, final double z, final double r, + final double g, final double b) { this(w, x, y, z, r, g, b, 6); this.regen(); } - protected LightningFX(final World w, final double x, final double y, final double z, final double r, final double g, - final double b, final int maxAge) { + protected LightningFX(final ClientWorld w, final double x, final double y, final double z, final double r, + final double g, final double b, final int maxAge) { super(w, x, y, z, r, g, b); this.precomputedSteps = new double[LightningFX.STEPS][3]; this.motionX = 0; @@ -108,10 +108,10 @@ public class LightningFX extends SpriteTexturedParticle { @Override public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { - Vec3d vec3d = renderInfo.getProjectedView(); - float centerX = (float) (MathHelper.lerp(partialTicks, this.prevPosX, this.posX) - vec3d.getX()); - float centerY = (float) (MathHelper.lerp(partialTicks, this.prevPosY, this.posY) - vec3d.getY()); - float centerZ = (float) (MathHelper.lerp(partialTicks, this.prevPosZ, this.posZ) - vec3d.getZ()); + Vector3d Vector3d = renderInfo.getProjectedView(); + float centerX = (float) (MathHelper.lerp(partialTicks, this.prevPosX, this.posX) - Vector3d.getX()); + float centerY = (float) (MathHelper.lerp(partialTicks, this.prevPosY, this.posY) - Vector3d.getY()); + float centerZ = (float) (MathHelper.lerp(partialTicks, this.prevPosZ, this.posZ) - Vector3d.getZ()); final float j = 1.0f; float red = this.particleRed * j * 0.9f; @@ -253,7 +253,7 @@ public class LightningFX extends SpriteTexturedParticle { } @Override - public Particle makeParticle(BasicParticleType typeIn, World worldIn, double x, double y, double z, + public Particle makeParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { LightningFX lightningFX = new LightningFX(worldIn, x, y, z, xSpeed, ySpeed, zSpeed); lightningFX.selectSpriteRandomly(this.spriteSet); diff --git a/src/main/java/appeng/client/render/effects/MatterCannonFX.java b/src/main/java/appeng/client/render/effects/MatterCannonFX.java index 9c1160c1a..b32b0c113 100644 --- a/src/main/java/appeng/client/render/effects/MatterCannonFX.java +++ b/src/main/java/appeng/client/render/effects/MatterCannonFX.java @@ -23,8 +23,8 @@ import net.minecraft.client.particle.IParticleFactory; import net.minecraft.client.particle.IParticleRenderType; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.SpriteTexturedParticle; +import net.minecraft.client.world.ClientWorld; import net.minecraft.particles.BasicParticleType; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -32,7 +32,7 @@ import appeng.api.util.AEPartLocation; public class MatterCannonFX extends SpriteTexturedParticle { - public MatterCannonFX(final World par1World, final double x, final double y, final double z, + public MatterCannonFX(final ClientWorld par1World, final double x, final double y, final double z, IAnimatedSprite sprite) { super(par1World, x, y, z); this.particleGravity = 0; @@ -85,7 +85,7 @@ public class MatterCannonFX extends SpriteTexturedParticle { } @Override - public Particle makeParticle(BasicParticleType data, World world, double x, double y, double z, double xSpeed, + public Particle makeParticle(BasicParticleType data, ClientWorld world, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { return new MatterCannonFX(world, x, y, z, spriteSet); } diff --git a/src/main/java/appeng/client/render/effects/VibrantFX.java b/src/main/java/appeng/client/render/effects/VibrantFX.java index 4132d4b21..2b882aabc 100644 --- a/src/main/java/appeng/client/render/effects/VibrantFX.java +++ b/src/main/java/appeng/client/render/effects/VibrantFX.java @@ -23,15 +23,15 @@ import net.minecraft.client.particle.IParticleFactory; import net.minecraft.client.particle.IParticleRenderType; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.SpriteTexturedParticle; +import net.minecraft.client.world.ClientWorld; import net.minecraft.particles.BasicParticleType; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @OnlyIn(Dist.CLIENT) public class VibrantFX extends SpriteTexturedParticle { - public VibrantFX(final World par1World, final double x, final double y, final double z, final double par8, + public VibrantFX(final ClientWorld par1World, final double x, final double y, final double z, final double par8, final double par10, final double par12, IAnimatedSprite sprite) { super(par1World, x, y, z, par8, par10, par12); final float f = this.rand.nextFloat() * 0.1F + 0.8F; @@ -88,7 +88,7 @@ public class VibrantFX extends SpriteTexturedParticle { } @Override - public Particle makeParticle(BasicParticleType typeIn, World worldIn, double x, double y, double z, + public Particle makeParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { return new VibrantFX(worldIn, x, y, z, xSpeed, ySpeed, zSpeed, spriteSet); } diff --git a/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java b/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java index 6e6604817..399d9c975 100644 --- a/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java +++ b/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java @@ -32,7 +32,6 @@ import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.Vector4f; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms; @@ -42,8 +41,9 @@ import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3i; -import net.minecraft.world.ILightReader; +import net.minecraft.util.math.vector.Vector3i; +import net.minecraft.util.math.vector.Vector4f; +import net.minecraft.world.IBlockDisplayReader; import net.minecraftforge.client.model.data.EmptyModelData; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; @@ -174,7 +174,7 @@ public class AutoRotatingBakedModel implements IBakedModel { @Nonnull @Override - public IModelData getModelData(@Nonnull ILightReader world, @Nonnull BlockPos pos, @Nonnull BlockState state, + public IModelData getModelData(@Nonnull IBlockDisplayReader world, @Nonnull BlockPos pos, @Nonnull BlockState state, @Nonnull IModelData tileData) { return this.parent.getModelData(world, pos, state, tileData); } @@ -262,11 +262,11 @@ public class AutoRotatingBakedModel implements IBakedModel { } else { switch (fs.length) { case 3: - Vec3i vec = this.f2r.rotate(this.face).getDirectionVec(); + Vector3i vec = this.f2r.rotate(this.face).getDirectionVec(); return new float[] { vec.getX(), vec.getY(), vec.getZ() }; case 4: Vector4f veccc = new Vector4f(fs[0], fs[1], fs[2], fs[3]); - Vec3i vecc = this.f2r.rotate(this.face).getDirectionVec(); + Vector3i vecc = this.f2r.rotate(this.face).getDirectionVec(); return new float[] { vecc.getX(), vecc.getY(), vecc.getZ(), veccc.getW() }; default: diff --git a/src/main/java/appeng/client/render/model/BiometricCardModel.java b/src/main/java/appeng/client/render/model/BiometricCardModel.java index b3738cc4d..18a9e1cac 100644 --- a/src/main/java/appeng/client/render/model/BiometricCardModel.java +++ b/src/main/java/appeng/client/render/model/BiometricCardModel.java @@ -13,8 +13,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; @@ -30,11 +30,11 @@ import appeng.core.AppEng; public class BiometricCardModel implements IModelGeometry { 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, + private static final RenderMaterial TEXTURE = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "item/biometric_card_hash")); @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Collections.singleton(TEXTURE); } @@ -42,7 +42,7 @@ public class BiometricCardModel implements IModelGeometry { @Nullable @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform transformIn, + Function spriteGetter, IModelTransform transformIn, ItemOverrideList overrides, ResourceLocation locationIn) { TextureAtlasSprite texture = spriteGetter.apply(TEXTURE); diff --git a/src/main/java/appeng/client/render/model/ColorApplicatorModel.java b/src/main/java/appeng/client/render/model/ColorApplicatorModel.java index 03e6a1dbd..22e730afc 100644 --- a/src/main/java/appeng/client/render/model/ColorApplicatorModel.java +++ b/src/main/java/appeng/client/render/model/ColorApplicatorModel.java @@ -11,8 +11,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; @@ -30,22 +30,22 @@ public class ColorApplicatorModel implements IModelGeometry getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Arrays.asList(TEXTURE_DARK, TEXTURE_MEDIUM, TEXTURE_DARK); } @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { IBakedModel baseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); diff --git a/src/main/java/appeng/client/render/model/DriveBakedModel.java b/src/main/java/appeng/client/render/model/DriveBakedModel.java index 14e71715d..ff749855a 100644 --- a/src/main/java/appeng/client/render/model/DriveBakedModel.java +++ b/src/main/java/appeng/client/render/model/DriveBakedModel.java @@ -27,13 +27,13 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.Matrix4f; -import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.item.Item; import net.minecraft.item.Items; import net.minecraft.util.Direction; +import net.minecraft.util.math.vector.Matrix4f; +import net.minecraft.util.math.vector.Vector3f; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; diff --git a/src/main/java/appeng/client/render/model/DriveModel.java b/src/main/java/appeng/client/render/model/DriveModel.java index 2988e9890..c43555078 100644 --- a/src/main/java/appeng/client/render/model/DriveModel.java +++ b/src/main/java/appeng/client/render/model/DriveModel.java @@ -32,8 +32,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.item.Item; import net.minecraft.item.Items; @@ -53,7 +53,7 @@ public class DriveModel implements IModelGeometry { @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { final ICellModelRegistry cellRegistry = Api.instance().client().cells(); final Map cellModels = new IdentityHashMap<>(); @@ -73,7 +73,7 @@ public class DriveModel implements IModelGeometry { } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Collections.emptyList(); } diff --git a/src/main/java/appeng/client/render/model/GlassBakedModel.java b/src/main/java/appeng/client/render/model/GlassBakedModel.java index ca0b289a8..8466d96db 100644 --- a/src/main/java/appeng/client/render/model/GlassBakedModel.java +++ b/src/main/java/appeng/client/render/model/GlassBakedModel.java @@ -34,7 +34,7 @@ import com.google.common.base.Strings; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.VertexFormat; @@ -43,9 +43,9 @@ import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.world.IBlockDisplayReader; import net.minecraft.world.IBlockReader; -import net.minecraft.world.ILightReader; import net.minecraftforge.client.model.data.IDynamicBakedModel; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; @@ -64,30 +64,30 @@ class GlassBakedModel implements IDynamicBakedModel { private static final byte[][][] OFFSETS = generateOffsets(); // Alternating textures based on position - static final Material TEXTURE_A = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + static final RenderMaterial TEXTURE_A = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation("appliedenergistics2:block/glass/quartz_glass_a")); - static final Material TEXTURE_B = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + static final RenderMaterial TEXTURE_B = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation("appliedenergistics2:block/glass/quartz_glass_b")); - static final Material TEXTURE_C = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + static final RenderMaterial TEXTURE_C = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation("appliedenergistics2:block/glass/quartz_glass_c")); - static final Material TEXTURE_D = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + static final RenderMaterial TEXTURE_D = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation("appliedenergistics2:block/glass/quartz_glass_d")); // Frame texture - static final Material[] TEXTURES_FRAME = generateTexturesFrame(); + static final RenderMaterial[] TEXTURES_FRAME = generateTexturesFrame(); // Generates the required textures for the frame - private static Material[] generateTexturesFrame() { + private static RenderMaterial[] generateTexturesFrame() { return IntStream.range(1, 16).mapToObj(Integer::toBinaryString).map(s -> Strings.padStart(s, 4, '0')) .map(s -> new ResourceLocation("appliedenergistics2:block/glass/quartz_glass_frame" + s)) - .map(rl -> new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, rl)).toArray(Material[]::new); + .map(rl -> new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, rl)).toArray(RenderMaterial[]::new); } private final TextureAtlasSprite[] glassTextures; private final TextureAtlasSprite[] frameTextures; - public GlassBakedModel(Function bakedTextureGetter) { + public GlassBakedModel(Function bakedTextureGetter) { this.glassTextures = new TextureAtlasSprite[] { bakedTextureGetter.apply(TEXTURE_A), bakedTextureGetter.apply(TEXTURE_B), bakedTextureGetter.apply(TEXTURE_C), bakedTextureGetter.apply(TEXTURE_D) }; @@ -133,7 +133,7 @@ class GlassBakedModel implements IDynamicBakedModel { // Render the glass side final List quads = new ArrayList<>(5); // At most 5 - final List corners = RenderHelper.getFaceCorners(side); + final List corners = RenderHelper.getFaceCorners(side); quads.add(this.createQuad(side, corners, glassTexture, u, v)); /* @@ -204,15 +204,16 @@ class GlassBakedModel implements IDynamicBakedModel { return bitmask; } - private BakedQuad createQuad(Direction side, List corners, TextureAtlasSprite sprite, float uOffset, + private BakedQuad createQuad(Direction side, List corners, TextureAtlasSprite sprite, float uOffset, float vOffset) { return this.createQuad(side, corners.get(0), corners.get(1), corners.get(2), corners.get(3), sprite, uOffset, vOffset); } - private BakedQuad createQuad(Direction side, Vec3d c1, Vec3d c2, Vec3d c3, Vec3d c4, TextureAtlasSprite sprite, - float uOffset, float vOffset) { - Vec3d normal = new Vec3d(side.getDirectionVec()); + private BakedQuad createQuad(Direction side, Vector3d c1, Vector3d c2, Vector3d c3, Vector3d c4, + TextureAtlasSprite sprite, float uOffset, float vOffset) { + Vector3d normal = new Vector3d(side.getDirectionVec().getX(), side.getDirectionVec().getY(), + side.getDirectionVec().getZ()); // Apply the u,v shift. // This mirrors the logic from OffsetIcon from 1.7 @@ -235,7 +236,7 @@ class GlassBakedModel implements IDynamicBakedModel { * data into the vertexbuffer actually has to be precisely the order in which * the vertex elements had been declared in the vertex format. */ - private void putVertex(BakedQuadBuilder builder, Vec3d normal, double x, double y, double z, + private void putVertex(BakedQuadBuilder builder, Vector3d normal, double x, double y, double z, TextureAtlasSprite sprite, float u, float v) { VertexFormat vertexFormat = builder.getVertexFormat(); for (int e = 0; e < vertexFormat.getElements().size(); e++) { @@ -305,7 +306,7 @@ class GlassBakedModel implements IDynamicBakedModel { @Nonnull @Override - public IModelData getModelData(@Nonnull ILightReader world, @Nonnull BlockPos pos, @Nonnull BlockState state, + public IModelData getModelData(@Nonnull IBlockDisplayReader world, @Nonnull BlockPos pos, @Nonnull BlockState state, @Nonnull IModelData tileData) { EnumSet flushWith = EnumSet.noneOf(Direction.class); diff --git a/src/main/java/appeng/client/render/model/GlassModel.java b/src/main/java/appeng/client/render/model/GlassModel.java index 0773803aa..503c51a7d 100644 --- a/src/main/java/appeng/client/render/model/GlassModel.java +++ b/src/main/java/appeng/client/render/model/GlassModel.java @@ -29,8 +29,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.IModelConfiguration; @@ -43,16 +43,16 @@ public class GlassModel implements IModelGeometry { @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { return new GlassBakedModel(spriteGetter); } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return ImmutableSet - .builder().add(GlassBakedModel.TEXTURE_A, GlassBakedModel.TEXTURE_B, + .builder().add(GlassBakedModel.TEXTURE_A, GlassBakedModel.TEXTURE_B, GlassBakedModel.TEXTURE_C, GlassBakedModel.TEXTURE_D) .add(GlassBakedModel.TEXTURES_FRAME).build(); } diff --git a/src/main/java/appeng/client/render/model/MatrixVertexTransformer.java b/src/main/java/appeng/client/render/model/MatrixVertexTransformer.java index 31e93b7aa..8ea1f43c1 100644 --- a/src/main/java/appeng/client/render/model/MatrixVertexTransformer.java +++ b/src/main/java/appeng/client/render/model/MatrixVertexTransformer.java @@ -20,12 +20,12 @@ package appeng.client.render.model; import java.util.List; -import net.minecraft.client.renderer.Matrix4f; -import net.minecraft.client.renderer.Vector4f; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.util.Direction; +import net.minecraft.util.math.vector.Matrix4f; +import net.minecraft.util.math.vector.Vector4f; import net.minecraftforge.client.model.pipeline.QuadGatheringTransformer; /** diff --git a/src/main/java/appeng/client/render/model/MemoryCardModel.java b/src/main/java/appeng/client/render/model/MemoryCardModel.java index e6e82260e..cbc271cfc 100644 --- a/src/main/java/appeng/client/render/model/MemoryCardModel.java +++ b/src/main/java/appeng/client/render/model/MemoryCardModel.java @@ -9,12 +9,13 @@ import javax.annotation.Nullable; import com.mojang.datafixers.util.Pair; +import net.minecraft.block.material.Material; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; @@ -41,9 +42,7 @@ public class MemoryCardModel implements IModelGeometry { @Nullable @Override - public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, ResourceLocation modelLocation) { + public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { TextureAtlasSprite texture = spriteGetter.apply(TEXTURE); IBakedModel baseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); diff --git a/src/main/java/appeng/client/render/model/RenderHelper.java b/src/main/java/appeng/client/render/model/RenderHelper.java index cb5b3b633..34ca9bd5f 100644 --- a/src/main/java/appeng/client/render/model/RenderHelper.java +++ b/src/main/java/appeng/client/render/model/RenderHelper.java @@ -25,42 +25,42 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import net.minecraft.util.Direction; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; // TODO: Investigate use of CubeBuilder instead final class RenderHelper { - private static EnumMap> cornersForFacing = generateCornersForFacings(); + private static EnumMap> cornersForFacing = generateCornersForFacings(); private RenderHelper() { } - static List getFaceCorners(Direction side) { + static List getFaceCorners(Direction side) { return cornersForFacing.get(side); } - private static EnumMap> generateCornersForFacings() { - EnumMap> result = new EnumMap<>(Direction.class); + private static EnumMap> generateCornersForFacings() { + EnumMap> result = new EnumMap<>(Direction.class); for (Direction facing : Direction.values()) { - List corners; + List corners; float offset = (facing.getAxisDirection() == Direction.AxisDirection.NEGATIVE) ? 0 : 1; switch (facing.getAxis()) { default: case X: - corners = Lists.newArrayList(new Vec3d(offset, 1, 1), new Vec3d(offset, 0, 1), - new Vec3d(offset, 0, 0), new Vec3d(offset, 1, 0)); + corners = Lists.newArrayList(new Vector3d(offset, 1, 1), new Vector3d(offset, 0, 1), + new Vector3d(offset, 0, 0), new Vector3d(offset, 1, 0)); break; case Y: - corners = Lists.newArrayList(new Vec3d(1, offset, 1), new Vec3d(1, offset, 0), - new Vec3d(0, offset, 0), new Vec3d(0, offset, 1)); + corners = Lists.newArrayList(new Vector3d(1, offset, 1), new Vector3d(1, offset, 0), + new Vector3d(0, offset, 0), new Vector3d(0, offset, 1)); break; case Z: - corners = Lists.newArrayList(new Vec3d(0, 1, offset), new Vec3d(0, 0, offset), - new Vec3d(1, 0, offset), new Vec3d(1, 1, offset)); + corners = Lists.newArrayList(new Vector3d(0, 1, offset), new Vector3d(0, 0, offset), + new Vector3d(1, 0, offset), new Vector3d(1, 1, offset)); break; } @@ -74,15 +74,15 @@ final class RenderHelper { return result; } - private static Vec3d adjust(Vec3d vec, Direction.Axis axis, double delta) { + private static Vector3d adjust(Vector3d vec, Direction.Axis axis, double delta) { switch (axis) { default: case X: - return new Vec3d(vec.x + delta, vec.y, vec.z); + return new Vector3d(vec.x + delta, vec.y, vec.z); case Y: - return new Vec3d(vec.x, vec.y + delta, vec.z); + return new Vector3d(vec.x, vec.y + delta, vec.z); case Z: - return new Vec3d(vec.x, vec.y, vec.z + delta); + return new Vector3d(vec.x, vec.y, vec.z + delta); } } } diff --git a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java index 7b7cf97cb..88677bbaf 100644 --- a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java +++ b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java @@ -26,8 +26,6 @@ import javax.annotation.Nullable; import net.minecraft.block.BlockState; import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.renderer.Matrix4f; -import net.minecraft.client.renderer.Quaternion; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms; @@ -38,6 +36,8 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.vector.Matrix4f; +import net.minecraft.util.math.vector.Quaternion; import net.minecraft.world.World; import net.minecraftforge.client.model.data.IDynamicBakedModel; import net.minecraftforge.client.model.data.IModelData; diff --git a/src/main/java/appeng/client/render/model/SkyCompassModel.java b/src/main/java/appeng/client/render/model/SkyCompassModel.java index 2e7ef4592..8d3dc4ec7 100644 --- a/src/main/java/appeng/client/render/model/SkyCompassModel.java +++ b/src/main/java/appeng/client/render/model/SkyCompassModel.java @@ -31,8 +31,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.IModelConfiguration; @@ -54,7 +54,7 @@ public class SkyCompassModel implements IModelGeometry { @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { IBakedModel baseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); IBakedModel pointerModel = bakery.getBakedModel(MODEL_POINTER, modelTransform, spriteGetter); @@ -62,7 +62,7 @@ public class SkyCompassModel implements IModelGeometry { } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Collections.emptyList(); } diff --git a/src/main/java/appeng/client/render/model/UVLModelLoader.java b/src/main/java/appeng/client/render/model/UVLModelLoader.java index de16a9194..3defd9253 100644 --- a/src/main/java/appeng/client/render/model/UVLModelLoader.java +++ b/src/main/java/appeng/client/render/model/UVLModelLoader.java @@ -37,7 +37,6 @@ import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.TransformationMatrix; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.BlockFaceUV; import net.minecraft.client.renderer.model.BlockModel; @@ -50,13 +49,14 @@ import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.model.ItemOverride; import net.minecraft.client.renderer.model.ItemOverrideList; import net.minecraft.client.renderer.model.ItemTransformVec3f; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.resources.IResourceManager; import net.minecraft.util.Direction; import net.minecraft.util.JSONUtils; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.vector.TransformationMatrix; import net.minecraftforge.client.model.IModelBuilder; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.IModelLoader; @@ -143,7 +143,7 @@ public class UVLModelLoader implements IModelLoader spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { TextureAtlasSprite particle = spriteGetter.apply(owner.resolveTexture("particle")); @@ -199,7 +199,7 @@ public class UVLModelLoader implements IModelLoader getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return parent.getTextures(modelGetter, missingTextureErrors); diff --git a/src/main/java/appeng/client/render/renderable/ItemRenderable.java b/src/main/java/appeng/client/render/renderable/ItemRenderable.java index 2330c27df..50baec7ea 100644 --- a/src/main/java/appeng/client/render/renderable/ItemRenderable.java +++ b/src/main/java/appeng/client/render/renderable/ItemRenderable.java @@ -24,10 +24,10 @@ import org.apache.commons.lang3.tuple.Pair; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.TransformationMatrix; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.vector.TransformationMatrix; public class ItemRenderable implements Renderable { diff --git a/src/main/java/appeng/client/render/spatial/SpatialPylonModel.java b/src/main/java/appeng/client/render/spatial/SpatialPylonModel.java index 2b60c7b5c..8581a4517 100644 --- a/src/main/java/appeng/client/render/spatial/SpatialPylonModel.java +++ b/src/main/java/appeng/client/render/spatial/SpatialPylonModel.java @@ -32,8 +32,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; @@ -46,7 +46,7 @@ public class SpatialPylonModel implements IModelGeometry { @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { Map textures = new EnumMap<>(SpatialPylonTextureType.class); @@ -58,14 +58,14 @@ public class SpatialPylonModel implements IModelGeometry { } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Arrays.stream(SpatialPylonTextureType.values()).map(SpatialPylonModel::getTexturePath) .collect(Collectors.toList()); } - private static Material getTexturePath(SpatialPylonTextureType type) { - return new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static RenderMaterial getTexturePath(SpatialPylonTextureType type) { + return new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/spatial_pylon/" + type.name().toLowerCase())); } diff --git a/src/main/java/appeng/client/render/tesr/CellLedRenderer.java b/src/main/java/appeng/client/render/tesr/CellLedRenderer.java index ab47d6332..fa50fb40c 100644 --- a/src/main/java/appeng/client/render/tesr/CellLedRenderer.java +++ b/src/main/java/appeng/client/render/tesr/CellLedRenderer.java @@ -6,8 +6,8 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.util.math.vector.Vector3f; import appeng.api.implementations.tiles.IChestOrDrive; import appeng.block.storage.DriveSlotState; diff --git a/src/main/java/appeng/client/render/tesr/CrankTESR.java b/src/main/java/appeng/client/render/tesr/CrankTESR.java index df7f03b95..438e1e2ca 100644 --- a/src/main/java/appeng/client/render/tesr/CrankTESR.java +++ b/src/main/java/appeng/client/render/tesr/CrankTESR.java @@ -26,10 +26,10 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Atlases; import net.minecraft.client.renderer.BlockRendererDispatcher; import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.Quaternion; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.util.math.vector.Quaternion; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/appeng/client/render/tesr/DriveLedTileEntityRenderer.java b/src/main/java/appeng/client/render/tesr/DriveLedTileEntityRenderer.java index a583247fa..28acf6e45 100644 --- a/src/main/java/appeng/client/render/tesr/DriveLedTileEntityRenderer.java +++ b/src/main/java/appeng/client/render/tesr/DriveLedTileEntityRenderer.java @@ -4,9 +4,9 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.util.math.vector.Vector3f; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/appeng/client/render/tesr/InscriberTESR.java b/src/main/java/appeng/client/render/tesr/InscriberTESR.java index 6425b369d..9fc367934 100644 --- a/src/main/java/appeng/client/render/tesr/InscriberTESR.java +++ b/src/main/java/appeng/client/render/tesr/InscriberTESR.java @@ -7,10 +7,9 @@ import com.mojang.blaze3d.vertex.IVertexBuilder; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.ItemRenderer; -import net.minecraft.client.renderer.Quaternion; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.model.ItemCameraTransforms; -import net.minecraft.client.renderer.model.Material; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; @@ -18,6 +17,7 @@ import net.minecraft.inventory.container.PlayerContainer; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.vector.Quaternion; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.items.IItemHandler; @@ -35,7 +35,7 @@ public final class InscriberTESR extends TileEntityRenderer private static final float ITEM_RENDER_SCALE = 1.0f / 1.2f; - private static final Material TEXTURE_INSIDE = new Material(PlayerContainer.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_INSIDE = new RenderMaterial(PlayerContainer.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/inscriber_inside")); public InscriberTESR(TileEntityRendererDispatcher rendererDispatcherIn) { diff --git a/src/main/java/appeng/client/render/tesr/SkyChestTESR.java b/src/main/java/appeng/client/render/tesr/SkyChestTESR.java index 866f57ddf..da7ca30bc 100644 --- a/src/main/java/appeng/client/render/tesr/SkyChestTESR.java +++ b/src/main/java/appeng/client/render/tesr/SkyChestTESR.java @@ -25,12 +25,12 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.Atlases; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.Vector3f; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelRenderer; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.vector.Vector3f; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.TextureStitchEvent; @@ -44,9 +44,9 @@ import appeng.tile.storage.SkyChestTileEntity; @OnlyIn(Dist.CLIENT) public class SkyChestTESR extends TileEntityRenderer { - public static final Material TEXTURE_STONE = new Material(Atlases.CHEST_ATLAS, + public static final RenderMaterial TEXTURE_STONE = new RenderMaterial(Atlases.CHEST_ATLAS, new ResourceLocation(AppEng.MOD_ID, "models/skychest")); - public static final Material TEXTURE_BLOCK = new Material(Atlases.CHEST_ATLAS, + public static final RenderMaterial TEXTURE_BLOCK = new RenderMaterial(Atlases.CHEST_ATLAS, new ResourceLocation(AppEng.MOD_ID, "models/skyblockchest")); private final ModelRenderer singleLid; @@ -79,7 +79,7 @@ public class SkyChestTESR extends TileEntityRenderer { float f1 = tileEntityIn.getLidAngle(partialTicks); f1 = 1.0F - f1; f1 = 1.0F - f1 * f1 * f1; - Material material = this.getMaterial(tileEntityIn); + RenderMaterial material = this.getRenderMaterial(tileEntityIn); IVertexBuilder ivertexbuilder = material.getBuffer(bufferIn, RenderType::getEntityCutout); this.renderModels(matrixStackIn, ivertexbuilder, this.singleLid, this.singleLatch, this.singleBottom, f1, combinedLightIn, combinedOverlayIn); @@ -97,7 +97,7 @@ public class SkyChestTESR extends TileEntityRenderer { chestBottom.render(matrixStackIn, bufferIn, combinedLightIn, combinedOverlayIn); } - protected Material getMaterial(SkyChestTileEntity tileEntity) { + protected RenderMaterial getRenderMaterial(SkyChestTileEntity tileEntity) { SkyChestType type = SkyChestType.BLOCK; if (tileEntity.getWorld() != null) { Block blockType = tileEntity.getBlockState().getBlock(); diff --git a/src/main/java/appeng/core/AEConfig.java b/src/main/java/appeng/core/AEConfig.java index b9c829f50..c743af58f 100644 --- a/src/main/java/appeng/core/AEConfig.java +++ b/src/main/java/appeng/core/AEConfig.java @@ -35,7 +35,8 @@ import com.google.common.base.Strings; import org.apache.commons.lang3.tuple.Pair; -import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.DimensionType; +import net.minecraft.world.World; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; import net.minecraftforge.common.ForgeConfigSpec.ConfigValue; @@ -579,7 +580,7 @@ public final class AEConfig { this.spawnChargedChance = builder.defineInRange("spawnChargedChance", 0.08, 0.0, 1.0); this.meteoriteMaximumSpawnHeight = builder.define("meteoriteMaximumSpawnHeight", 180); List defaultDimensionWhitelist = new ArrayList<>(); - defaultDimensionWhitelist.add(DimensionType.getKey(DimensionType.OVERWORLD).toString()); + defaultDimensionWhitelist.add(World.field_234918_g_.getRegistryName().toString()); this.meteoriteDimensionWhitelist = builder.defineList("meteoriteDimensionWhitelist", defaultDimensionWhitelist, obj -> true); diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 34321d1a6..99586354c 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -31,8 +31,9 @@ import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.particles.ParticleType; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.ResourceLocation; +import net.minecraft.world.DimensionType; +import net.minecraft.world.World; import net.minecraft.world.biome.Biome; -import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.gen.GenerationStage; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.IFeatureConfig; @@ -632,7 +633,7 @@ final class Registration { // FIXME: registries.worldgen().disableWorldGenForProviderID( type, // StorageWorldProvider.class ); - registries.worldgen().disableWorldGenForDimension(type, DimensionType.THE_NETHER.getRegistryName()); + registries.worldgen().disableWorldGenForDimension(type, World.field_234919_h_.getRegistryName()); } // whitelist from config @@ -657,10 +658,11 @@ final class Registration { return; } - b.addStructure(MeteoriteStructure.INSTANCE.withConfiguration(IFeatureConfig.NO_FEATURE_CONFIG)); + b.func_235063_a_(MeteoriteStructure.INSTANCE.func_236391_a_(IFeatureConfig.NO_FEATURE_CONFIG)); b.addFeature(GenerationStage.Decoration.TOP_LAYER_MODIFICATION, - MeteoriteStructure.INSTANCE.withConfiguration(IFeatureConfig.NO_FEATURE_CONFIG) - .withPlacement(Placement.NOPE.configure(IPlacementConfig.NO_PLACEMENT_CONFIG))); + MeteoriteStructure.INSTANCE.func_236391_a_(IFeatureConfig.NO_FEATURE_CONFIG) + //.withPlacement(Placement.NOPE.configure(IPlacementConfig.NO_PLACEMENT_CONFIG)) + ); } private static void addQuartzWorldGen(Biome b) { diff --git a/src/main/java/appeng/core/features/registries/MovableTileRegistry.java b/src/main/java/appeng/core/features/registries/MovableTileRegistry.java index cce747112..f31c66916 100644 --- a/src/main/java/appeng/core/features/registries/MovableTileRegistry.java +++ b/src/main/java/appeng/core/features/registries/MovableTileRegistry.java @@ -27,7 +27,7 @@ import java.util.Set; import net.minecraft.block.Block; import net.minecraft.tags.BlockTags; -import net.minecraft.tags.Tag; +import net.minecraft.tags.ITag; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; @@ -51,8 +51,8 @@ public class MovableTileRegistry implements IMovableRegistry { private final List handlers = new ArrayList<>(); private final DefaultSpatialHandler dsh = new DefaultSpatialHandler(); private final IMovableHandler nullHandler = new DefaultSpatialHandler(); - private final Tag blockTagWhiteList; - private final Tag blockTagBlackList; + private final ITag blockTagWhiteList; + private final ITag blockTagBlackList; public MovableTileRegistry() { this.blockTagWhiteList = BlockTags.getCollection().getOrCreate(TAG_WHITELIST); diff --git a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java index dc6b70611..b85839719 100644 --- a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java +++ b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java @@ -21,8 +21,8 @@ package appeng.core.features.registries; import java.util.HashSet; import net.minecraft.util.ResourceLocation; +import net.minecraft.world.Dimension; import net.minecraft.world.IWorld; -import net.minecraft.world.dimension.Dimension; import appeng.api.features.IWorldGen; diff --git a/src/main/java/appeng/core/localization/GuiText.java b/src/main/java/appeng/core/localization/GuiText.java index 86f38e73c..bfab69363 100644 --- a/src/main/java/appeng/core/localization/GuiText.java +++ b/src/main/java/appeng/core/localization/GuiText.java @@ -18,7 +18,6 @@ package appeng.core.localization; -import net.minecraft.client.resources.I18n; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; @@ -93,9 +92,9 @@ public enum GuiText { GuiText(final String r) { this.root = r; } - + public String getLocal() { - return I18n.format(this.getTranslationKey()); + return this.textComponent().getString(); } public String getTranslationKey() { diff --git a/src/main/java/appeng/core/sync/network/NetworkHandler.java b/src/main/java/appeng/core/sync/network/NetworkHandler.java index bd6357931..0cd10f6d8 100644 --- a/src/main/java/appeng/core/sync/network/NetworkHandler.java +++ b/src/main/java/appeng/core/sync/network/NetworkHandler.java @@ -26,7 +26,7 @@ import net.minecraft.network.ThreadQuickExitException; import net.minecraft.network.play.ServerPlayNetHandler; import net.minecraft.server.MinecraftServer; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.DimensionType; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.LogicalSide; diff --git a/src/main/java/appeng/core/sync/network/TargetPoint.java b/src/main/java/appeng/core/sync/network/TargetPoint.java index 509d8500e..e2df6e53d 100644 --- a/src/main/java/appeng/core/sync/network/TargetPoint.java +++ b/src/main/java/appeng/core/sync/network/TargetPoint.java @@ -1,7 +1,7 @@ package appeng.core.sync.network; import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.DimensionType; /** * Created by covers1624 on 1/6/20. diff --git a/src/main/java/appeng/core/sync/packets/ClickPacket.java b/src/main/java/appeng/core/sync/packets/ClickPacket.java index 0842a60c7..fe63e963f 100644 --- a/src/main/java/appeng/core/sync/packets/ClickPacket.java +++ b/src/main/java/appeng/core/sync/packets/ClickPacket.java @@ -29,7 +29,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import appeng.api.definitions.IComparableDefinition; import appeng.api.definitions.IItems; @@ -131,7 +131,7 @@ public class ClickPacket extends BasePacket { final Block block = player.world.getBlockState(pos).getBlock(); if (block instanceof CableBusBlock) { ((CableBusBlock) block).onBlockClickPacket(player.world, pos, player, this.hand, - new Vec3d(this.hitX, this.hitY, this.hitZ)); + new Vector3d(this.hitX, this.hitY, this.hitZ)); } } else { if (!is.isEmpty()) { @@ -141,7 +141,7 @@ public class ClickPacket extends BasePacket { if (hasBlockContext()) { // Reconstruct an item use context ItemUseContext useContext = new ItemUseContext(player, hand, - new BlockRayTraceResult(new Vec3d(hitX, hitY, hitZ), side, pos, false)); + new BlockRayTraceResult(new Vector3d(hitX, hitY, hitZ), side, pos, false)); tnt.serverSideToolLogic(useContext); } else { ContainerOpener.openContainer(NetworkToolContainer.TYPE, player, diff --git a/src/main/java/appeng/core/worlddata/WorldData.java b/src/main/java/appeng/core/worlddata/WorldData.java index d33727c75..a4a0d52f1 100644 --- a/src/main/java/appeng/core/worlddata/WorldData.java +++ b/src/main/java/appeng/core/worlddata/WorldData.java @@ -26,7 +26,7 @@ import javax.annotation.Nullable; import com.google.common.base.Preconditions; import net.minecraft.server.MinecraftServer; -import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.DimensionType; import net.minecraft.world.server.ServerWorld; import appeng.services.CompassService; diff --git a/src/main/java/appeng/datagen/providers/loot/BlockDropProvider.java b/src/main/java/appeng/datagen/providers/loot/BlockDropProvider.java index fdee9537a..70a89983f 100644 --- a/src/main/java/appeng/datagen/providers/loot/BlockDropProvider.java +++ b/src/main/java/appeng/datagen/providers/loot/BlockDropProvider.java @@ -17,18 +17,18 @@ import net.minecraft.data.DirectoryCache; import net.minecraft.data.IDataProvider; import net.minecraft.data.loot.BlockLootTables; import net.minecraft.enchantment.Enchantments; +import net.minecraft.loot.ConstantRange; +import net.minecraft.loot.ItemLootEntry; +import net.minecraft.loot.LootEntry; +import net.minecraft.loot.LootParameterSets; +import net.minecraft.loot.LootPool; +import net.minecraft.loot.LootTable; +import net.minecraft.loot.LootTableManager; +import net.minecraft.loot.RandomValueRange; +import net.minecraft.loot.conditions.SurvivesExplosion; +import net.minecraft.loot.functions.ApplyBonus; +import net.minecraft.loot.functions.SetCount; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.storage.loot.ConstantRange; -import net.minecraft.world.storage.loot.ItemLootEntry; -import net.minecraft.world.storage.loot.LootEntry; -import net.minecraft.world.storage.loot.LootParameterSets; -import net.minecraft.world.storage.loot.LootPool; -import net.minecraft.world.storage.loot.LootTable; -import net.minecraft.world.storage.loot.LootTableManager; -import net.minecraft.world.storage.loot.RandomValueRange; -import net.minecraft.world.storage.loot.conditions.SurvivesExplosion; -import net.minecraft.world.storage.loot.functions.ApplyBonus; -import net.minecraft.world.storage.loot.functions.SetCount; import net.minecraftforge.fml.event.lifecycle.GatherDataEvent; import net.minecraftforge.registries.ForgeRegistries; diff --git a/src/main/java/appeng/debug/DebugPartPlacerItem.java b/src/main/java/appeng/debug/DebugPartPlacerItem.java index bb7476378..e9887d000 100644 --- a/src/main/java/appeng/debug/DebugPartPlacerItem.java +++ b/src/main/java/appeng/debug/DebugPartPlacerItem.java @@ -10,7 +10,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3i; +import net.minecraft.util.math.vector.Vector3i; import net.minecraft.util.text.StringTextComponent; import net.minecraft.world.World; import net.minecraftforge.registries.ForgeRegistries; @@ -66,7 +66,7 @@ public class DebugPartPlacerItem extends AEBaseItem { } Direction face = context.getFace(); - Vec3i offset = face.getDirectionVec(); + Vector3i offset = face.getDirectionVec(); Direction[] perpendicularFaces = Arrays.stream(Direction.values()).filter(d -> d.getAxis() != face.getAxis()) .toArray(Direction[]::new); diff --git a/src/main/java/appeng/debug/ReplicatorCardItem.java b/src/main/java/appeng/debug/ReplicatorCardItem.java index 80bf41ef7..461549397 100644 --- a/src/main/java/appeng/debug/ReplicatorCardItem.java +++ b/src/main/java/appeng/debug/ReplicatorCardItem.java @@ -33,8 +33,8 @@ import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.text.StringTextComponent; +import net.minecraft.world.DimensionType; import net.minecraft.world.World; -import net.minecraft.world.dimension.DimensionType; import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; diff --git a/src/main/java/appeng/entity/TinyTNTPrimedEntity.java b/src/main/java/appeng/entity/TinyTNTPrimedEntity.java index 23fbe2c62..c87735070 100644 --- a/src/main/java/appeng/entity/TinyTNTPrimedEntity.java +++ b/src/main/java/appeng/entity/TinyTNTPrimedEntity.java @@ -172,7 +172,7 @@ public final class TinyTNTPrimedEntity extends TNTEntity implements IEntityAddit strength -= (resistance + 0.3F) * 0.11f; if (strength > 0.01) { - if (block.getMaterial(state) != Material.AIR) { + if (block.getRenderMaterial(state) != Material.AIR) { if (block.canDropFromExplosion(ex)) { block.spawnDrops(state, this.world, point); } diff --git a/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java b/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java index 581ea43ab..4f5864c83 100644 --- a/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java +++ b/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java @@ -24,12 +24,12 @@ import net.minecraft.block.Blocks; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BlockRendererDispatcher; import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererManager; import net.minecraft.client.renderer.entity.TNTMinecartRenderer; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.vector.Vector3f; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/appeng/fluids/client/gui/FluidFormationPlaneScreen.java b/src/main/java/appeng/fluids/client/gui/FluidFormationPlaneScreen.java index 6d0f84673..ead2a679d 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidFormationPlaneScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidFormationPlaneScreen.java @@ -45,7 +45,7 @@ public class FluidFormationPlaneScreen extends UpgradeableScreen openPriorityGui())); } diff --git a/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java b/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java index c89be4b8d..d1245dd19 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java @@ -18,6 +18,8 @@ package appeng.fluids.client.gui; +import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.entity.player.PlayerInventory; import net.minecraft.util.text.ITextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; @@ -55,8 +57,8 @@ public class FluidInterfaceScreen extends UpgradeableScreen openPriorityGui())); + this.addButton(new TabButton(this.getGuiLeft() + 154, this.getGuiTop(), 2 + 4 * 16, + GuiText.Priority.textComponent(), this.itemRenderer, btn -> openPriorityGui())); } @Override @@ -64,15 +66,16 @@ public class FluidInterfaceScreen extends UpgradeableScreen(this.guiLeft - 18, this.guiTop + 88, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL); - addButton(this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), + addButton(this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), this.itemRenderer, btn -> openPriorityGui()))); this.addButton(this.storageFilter); @@ -97,9 +99,9 @@ public class FluidStorageBusScreen extends UpgradeableScreen } @Override - public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY) { - this.font.drawString(this.getGuiDisplayName("Fluid Terminal"), 8, 6, 4210752); - this.font.drawString(GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); + public void drawFG(MatrixStack matrixStack, int offsetX, int offsetY, int mouseX, int mouseY) { + this.font.drawString(matrixStack, "Fluid Terminal", 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(int offsetX, int offsetY, int mouseX, int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, int offsetX, int offsetY, int mouseX, int mouseY, float partialTicks) { this.bindTexture(this.getBackground()); final int x_width = 197; GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, x_width, 18, getBlitOffset()); @@ -144,7 +146,7 @@ public class FluidTerminalScreen extends AEBaseMEScreen getBlitOffset()); if (this.searchField != null) { - this.searchField.render(mouseX, mouseY, partialTicks); + this.searchField.render(matrixStack, mouseX, mouseY, partialTicks); } } @@ -155,7 +157,7 @@ public class FluidTerminalScreen extends AEBaseMEScreen } @Override - protected void renderHoveredToolTip(int mouseX, int mouseY) { + protected void renderHoveredToolTip(MatrixStack matrixStack, int mouseX, int mouseY) { final Slot slot = this.getSlot(mouseX, mouseY); if (slot instanceof IMEFluidSlot && slot.isEnabled()) { @@ -170,16 +172,16 @@ public class FluidTerminalScreen extends AEBaseMEScreen final List list = new ArrayList<>(); - list.add(fluidStack.getFluidStack().getDisplayName().getFormattedText()); + list.add(fluidStack.getFluidStack().getDisplayName().getString()); list.add(formattedAmount); list.add(modName); - this.renderTooltip(list, mouseX, mouseY); + this.renderTooltip(matrixStack, list, mouseX, mouseY); return; } } - super.renderHoveredToolTip(mouseX, mouseY); + super.renderHoveredToolTip(matrixStack, mouseX, mouseY); } private > void toggleServerSetting(SettingToggleButton btn, boolean backwards) { diff --git a/src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java b/src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java index ce842fdee..fd03490a4 100644 --- a/src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java +++ b/src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java @@ -2,15 +2,17 @@ package appeng.fluids.client.gui.widgets; import java.util.Collections; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.fluid.Fluid; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidStack; @@ -35,7 +37,7 @@ public class FluidSlotWidget extends CustomSlotWidget { } @Override - public void drawContent(final Minecraft mc, final int mouseX, final int mouseY, final float partialTicks) { + public void drawContent(MatrixStack matrixStack, final Minecraft mc, final int mouseX, final int mouseY, final float partialTicks) { final IAEFluidStack fs = this.getFluidStack(); if (fs != null) { RenderSystem.disableBlend(); @@ -52,7 +54,7 @@ public class FluidSlotWidget extends CustomSlotWidget { final float blue = (attributes.getColor() & 255) / 255.0F; RenderSystem.color3f(red, green, blue); - blit(xPos(), yPos(), this.getBlitOffset(), getWidth(), getHeight(), sprite); + blit(matrixStack, xPos(), yPos(), this.getBlitOffset(), getWidth(), getHeight(), sprite); } } @@ -76,10 +78,10 @@ public class FluidSlotWidget extends CustomSlotWidget { } @Override - public String getMessage() { + public ITextComponent getMessage() { final IAEFluidStack fluid = this.getFluidStack(); if (fluid != null) { - return I18n.format(fluid.getFluidStack().getTranslationKey()); + return new TranslationTextComponent(fluid.getFluidStack().getTranslationKey()); } return null; } diff --git a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java index 3fc8a098d..596edc5ce 100644 --- a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java +++ b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java @@ -18,6 +18,7 @@ package appeng.fluids.client.gui.widgets; +import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; @@ -25,6 +26,8 @@ import net.minecraft.client.gui.widget.Widget; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.fluid.Fluid; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.fluids.FluidAttributes; @@ -40,17 +43,17 @@ public class FluidTankWidget extends Widget implements ITooltip { private final int slot; public FluidTankWidget(IAEFluidTank tank, int slot, int x, int y, int w, int h) { - super(x, y, w, h, ""); + super(x, y, w, h, new StringTextComponent("")); this.tank = tank; this.slot = slot; } - + @Override - public void renderButton(int mouseX, int mouseY, float partialTicks) { + public void renderButton(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { if (this.visible) { RenderSystem.disableBlend(); - fill(this.x, this.y, this.x + this.width, this.y + this.height, AEColor.GRAY.blackVariant | 0xFF000000); + fill(matrixStack, this.x, this.y, this.x + this.width, this.y + this.height, AEColor.GRAY.blackVariant | 0xFF000000); final IAEFluidStack fluidStack = this.tank.getFluidInSlot(this.slot); if (fluidStack != null && fluidStack.getStackSize() > 0) { @@ -72,11 +75,11 @@ public class FluidTankWidget extends Widget implements ITooltip { int iconHeightRemainder = scaledHeight % 16; if (iconHeightRemainder > 0) { - blit(this.x, this.y + this.height - iconHeightRemainder, getBlitOffset(), 16, iconHeightRemainder, + blit(matrixStack, this.x, this.y + this.height - iconHeightRemainder, getBlitOffset(), 16, iconHeightRemainder, sprite); } for (int i = 0; i < scaledHeight / 16; i++) { - blit(this.x, this.y + this.height - iconHeightRemainder - (i + 1) * 16, getBlitOffset(), 16, 16, + blit(matrixStack, this.x, this.y + this.height - iconHeightRemainder - (i + 1) * 16, getBlitOffset(), 16, 16, sprite); } } @@ -85,15 +88,15 @@ public class FluidTankWidget extends Widget implements ITooltip { } @Override - public String getMessage() { + public ITextComponent getMessage() { final IAEFluidStack fluid = this.tank.getFluidInSlot(this.slot); if (fluid != null && fluid.getStackSize() > 0) { String desc = fluid.getFluid().getAttributes().getDisplayName(fluid.getFluidStack()).getFormattedText(); String amountToText = fluid.getStackSize() + "mB"; - return desc + "\n" + amountToText; + return new StringTextComponent(desc + "\n" + amountToText); } - return ""; + return new StringTextComponent(""); } @Override diff --git a/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java b/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java index bce367828..f83a21f95 100644 --- a/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java +++ b/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java @@ -9,9 +9,10 @@ import net.minecraft.block.BlockState; import net.minecraft.block.IBucketPickupHandler; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.Fluids; -import net.minecraft.fluid.IFluidState; +import net.minecraft.fluid.FluidState; import net.minecraft.item.ItemStack; import net.minecraft.tags.FluidTags; +import net.minecraft.tags.ITag; import net.minecraft.tags.Tag; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; @@ -231,7 +232,7 @@ public class FluidAnnihilationPlanePart extends BasicStatePart implements IGridT BlockState blockstate = w.getBlockState(pos); if (blockstate.getBlock() instanceof IBucketPickupHandler) { - IFluidState fluidState = blockstate.getFluidState(); + FluidState fluidState = blockstate.getFluidState(); Fluid fluid = fluidState.getFluid(); if (isFluidBlacklisted(fluid)) { @@ -313,7 +314,7 @@ public class FluidAnnihilationPlanePart extends BasicStatePart implements IGridT } private boolean isFluidBlacklisted(Fluid fluid) { - Tag tag = FluidTags.getCollection().getOrCreate(TAG_BLACKLIST); + ITag tag = FluidTags.getCollection().getOrCreate(TAG_BLACKLIST); return fluid.isIn(tag); } diff --git a/src/main/java/appeng/fluids/parts/FluidFormationPlanePart.java b/src/main/java/appeng/fluids/parts/FluidFormationPlanePart.java index fdc17efea..42de6d68a 100644 --- a/src/main/java/appeng/fluids/parts/FluidFormationPlanePart.java +++ b/src/main/java/appeng/fluids/parts/FluidFormationPlanePart.java @@ -15,7 +15,7 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.client.model.data.IModelData; @@ -173,7 +173,7 @@ public class FluidFormationPlanePart extends AbstractFormationPlanePart { guiHelper.drawableBuilder(statesLocation, 16, 112, 14, 14).addPadding(28, 0, 78, 0).build()); this.buttonIcons.put(CondenserOutput.SINGULARITY, guiHelper.drawableBuilder(statesLocation, 32, 112, 14, 14).addPadding(28, 0, 78, 0).build()); - this.buttonHoverChecker = new HoverChecker(28, 28 + 16, 78, 78 + 16, 0); + this.buttonHoverChecker = new HoverChecker(28, 28 + 16, 78, 78 + 16); } private ItemStack getOutput(CondenserOutput recipe) { @@ -135,14 +139,14 @@ class CondenserCategory implements IRecipeCategory { } @Override - public void draw(CondenserOutput recipe, double mouseX, double mouseY) { - this.progress.draw(); - this.iconTrash.draw(); - this.iconButton.draw(); + public void draw(CondenserOutput recipe, MatrixStack matrixStack, double mouseX, double mouseY) { + this.progress.draw(matrixStack); + this.iconTrash.draw(matrixStack); + this.iconButton.draw(matrixStack); IDrawable buttonIcon = this.buttonIcons.get(recipe); if (buttonIcon != null) { - buttonIcon.draw(); + buttonIcon.draw(matrixStack); } } @@ -183,7 +187,7 @@ class CondenserCategory implements IRecipeCategory { } @Override - public List getTooltipStrings(CondenserOutput output, double mouseX, double mouseY) { + public List getTooltipStrings(CondenserOutput output, double mouseX, double mouseY) { if (this.buttonHoverChecker.checkHover((int) mouseX, (int) mouseY)) { String key; @@ -199,7 +203,7 @@ class CondenserCategory implements IRecipeCategory { return Collections.emptyList(); } - return Splitter.on("\\n").splitToList(I18n.format(key, output.requiredPower)); + return Lists.newArrayList(new TranslationTextComponent(key)); } return Collections.emptyList(); } diff --git a/src/main/java/appeng/integration/modules/theoneprobe/part/ChannelInfoProvider.java b/src/main/java/appeng/integration/modules/theoneprobe/part/ChannelInfoProvider.java index 3b8358914..a7f0c3c5e 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/part/ChannelInfoProvider.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/part/ChannelInfoProvider.java @@ -21,6 +21,7 @@ package appeng.integration.modules.theoneprobe.part; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import mcjty.theoneprobe.api.IProbeHitData; @@ -49,7 +50,7 @@ public class ChannelInfoProvider implements IPartProbInfoProvider { usedChannels = 0; } - final String formattedChannelString = TheOneProbeText.CHANNELS.getTranslationString(usedChannels, + final ITextComponent formattedChannelString = TheOneProbeText.CHANNELS.getTranslationComponent(usedChannels, maxChannels); probeInfo.text(formattedChannelString); diff --git a/src/main/java/appeng/integration/modules/theoneprobe/part/P2PStateInfoProvider.java b/src/main/java/appeng/integration/modules/theoneprobe/part/P2PStateInfoProvider.java index b3345c296..c16cb7f8c 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/part/P2PStateInfoProvider.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/part/P2PStateInfoProvider.java @@ -22,6 +22,8 @@ import com.google.common.collect.Iterators; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraft.world.World; import mcjty.theoneprobe.api.IProbeHitData; @@ -69,10 +71,10 @@ public class P2PStateInfoProvider implements IPartProbInfoProvider { switch (state) { case STATE_UNLINKED: - probeInfo.text(TheOneProbeText.P2P_UNLINKED.getTranslationString()); + probeInfo.text(TheOneProbeText.P2P_UNLINKED.getTranslationComponent()); break; case STATE_OUTPUT: - probeInfo.text(TheOneProbeText.P2P_OUTPUT.getTranslationString()); + probeInfo.text(TheOneProbeText.P2P_OUTPUT.getTranslationComponent()); break; case STATE_INPUT: probeInfo.text(getOutputText(outputCount)); @@ -80,7 +82,7 @@ public class P2PStateInfoProvider implements IPartProbInfoProvider { } final short freq = tunnel.getFrequency(); - final String freqTooltip = Platform.p2p().toHexString(freq); + final ITextComponent freqTooltip = new StringTextComponent(Platform.p2p().toHexString(freq)); probeInfo.text(freqTooltip); } @@ -95,11 +97,11 @@ public class P2PStateInfoProvider implements IPartProbInfoProvider { } } - private static String getOutputText(int outputs) { + private static ITextComponent getOutputText(int outputs) { if (outputs <= 1) { - return TheOneProbeText.P2P_INPUT_ONE_OUTPUT.getTranslationString(); + return TheOneProbeText.P2P_INPUT_ONE_OUTPUT.getTranslationComponent(); } else { - return TheOneProbeText.P2P_INPUT_MANY_OUTPUTS.getTranslationString(outputs); + return TheOneProbeText.P2P_INPUT_MANY_OUTPUTS.getTranslationComponent(outputs); } } diff --git a/src/main/java/appeng/integration/modules/theoneprobe/part/PartAccessor.java b/src/main/java/appeng/integration/modules/theoneprobe/part/PartAccessor.java index c717940fd..c073ac160 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/part/PartAccessor.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/part/PartAccessor.java @@ -22,7 +22,7 @@ import java.util.Optional; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import mcjty.theoneprobe.api.IProbeHitData; @@ -35,7 +35,7 @@ public final class PartAccessor { public Optional getMaybePart(final TileEntity te, final IProbeHitData data) { if (te instanceof IPartHost) { BlockPos pos = data.getPos(); - final Vec3d position = data.getHitVec().add(-pos.getX(), -pos.getY(), -pos.getZ()); + final Vector3d position = data.getHitVec().add(-pos.getX(), -pos.getY(), -pos.getZ()); final IPartHost host = (IPartHost) te; final SelectedPart sp = host.selectPart(position); diff --git a/src/main/java/appeng/integration/modules/theoneprobe/part/PowerStateInfoProvider.java b/src/main/java/appeng/integration/modules/theoneprobe/part/PowerStateInfoProvider.java index 119af8f74..0925bfa57 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/part/PowerStateInfoProvider.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/part/PowerStateInfoProvider.java @@ -20,6 +20,7 @@ package appeng.integration.modules.theoneprobe.part; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import mcjty.theoneprobe.api.IProbeHitData; @@ -37,22 +38,22 @@ public class PowerStateInfoProvider implements IPartProbInfoProvider { BlockState blockState, IProbeHitData data) { if (part instanceof IPowerChannelState) { final IPowerChannelState state = (IPowerChannelState) part; - final String tooltip = this.getToolTip(state.isActive(), state.isPowered()); + final ITextComponent tooltip = this.getToolTip(state.isActive(), state.isPowered()); probeInfo.text(tooltip); } } - private String getToolTip(final boolean isActive, final boolean isPowered) { - final String result; + private ITextComponent getToolTip(final boolean isActive, final boolean isPowered) { + final ITextComponent result; if (isActive && isPowered) { - result = TheOneProbeText.DEVICE_ONLINE.getTranslationString(); + result = TheOneProbeText.DEVICE_ONLINE.getTranslationComponent(); } else if (isPowered) { - result = TheOneProbeText.DEVICE_MISSING_CHANNEL.getTranslationString(); + result = TheOneProbeText.DEVICE_MISSING_CHANNEL.getTranslationComponent(); } else { - result = TheOneProbeText.DEVICE_OFFLINE.getTranslationString(); + result = TheOneProbeText.DEVICE_OFFLINE.getTranslationComponent(); } return result; diff --git a/src/main/java/appeng/integration/modules/theoneprobe/part/StorageMonitorInfoProvider.java b/src/main/java/appeng/integration/modules/theoneprobe/part/StorageMonitorInfoProvider.java index 42a2aeba5..a16d17c78 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/part/StorageMonitorInfoProvider.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/part/StorageMonitorInfoProvider.java @@ -21,6 +21,7 @@ package appeng.integration.modules.theoneprobe.part; import net.minecraft.block.BlockState; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import mcjty.theoneprobe.api.IProbeHitData; @@ -48,18 +49,18 @@ public class StorageMonitorInfoProvider implements IPartProbInfoProvider { // TODO: generalize if (displayed instanceof IAEItemStack) { final IAEItemStack ais = (IAEItemStack) displayed; - probeInfo.text(TheOneProbeText.SHOWING.getTranslationComponent() + ": " - + ais.asItemStackRepresentation().getDisplayName()); + probeInfo.text(TheOneProbeText.SHOWING + .getTranslationComponent(ais.asItemStackRepresentation().getDisplayName())); } else if (displayed instanceof IAEFluidStack) { final IAEFluidStack ais = (IAEFluidStack) displayed; final String fluidName = I18n.format(ais.getFluidStack().getTranslationKey()); - final String text = TheOneProbeText.SHOWING.getTranslationComponent() + ": " + fluidName; + final ITextComponent text = TheOneProbeText.SHOWING.getTranslationComponent(fluidName); probeInfo.text(text); } - probeInfo.text(isLocked ? TheOneProbeText.LOCKED.getTranslationString() - : TheOneProbeText.UNLOCKED.getTranslationString()); + probeInfo.text(isLocked ? TheOneProbeText.LOCKED.getTranslationComponent() + : TheOneProbeText.UNLOCKED.getTranslationComponent()); } } diff --git a/src/main/java/appeng/integration/modules/theoneprobe/tile/ChargerInfoProvider.java b/src/main/java/appeng/integration/modules/theoneprobe/tile/ChargerInfoProvider.java index 316fcf017..d11414762 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/tile/ChargerInfoProvider.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/tile/ChargerInfoProvider.java @@ -21,6 +21,7 @@ package appeng.integration.modules.theoneprobe.tile; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import net.minecraftforge.items.IItemHandler; @@ -43,7 +44,7 @@ public class ChargerInfoProvider implements ITileProbInfoProvider { final ItemStack chargingItem = chargerInventory.getStackInSlot(0); if (!chargingItem.isEmpty()) { - final String currentInventory = chargingItem.getDisplayName().getString(); + final ITextComponent currentInventory = chargingItem.getDisplayName(); final IProbeInfo centerAlignedHorizontalLayout = probeInfo .horizontal(probeInfo.defaultLayoutStyle().alignment(ElementAlignment.ALIGN_CENTER)); diff --git a/src/main/java/appeng/integration/modules/theoneprobe/tile/CraftingMonitorInfoProvider.java b/src/main/java/appeng/integration/modules/theoneprobe/tile/CraftingMonitorInfoProvider.java index d2b20af22..5be907c4d 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/tile/CraftingMonitorInfoProvider.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/tile/CraftingMonitorInfoProvider.java @@ -21,6 +21,7 @@ package appeng.integration.modules.theoneprobe.tile; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; +import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import mcjty.theoneprobe.api.ElementAlignment; @@ -46,8 +47,7 @@ public class CraftingMonitorInfoProvider implements ITileProbInfoProvider { // TODO: check if OK final ItemStack itemStack = displayStack.asItemStackRepresentation(); final String itemName = itemStack.getDisplayName().getString(); - final String formattedCrafting = TheOneProbeText.CRAFTING.getTranslationComponent(itemName) - .getFormattedText(); + final ITextComponent formattedCrafting = TheOneProbeText.CRAFTING.getTranslationComponent(itemName); final IProbeInfo centerAlignedHorizontalLayout = probeInfo .horizontal(probeInfo.defaultLayoutStyle().alignment(ElementAlignment.ALIGN_CENTER)); diff --git a/src/main/java/appeng/integration/modules/theoneprobe/tile/PowerStateInfoProvider.java b/src/main/java/appeng/integration/modules/theoneprobe/tile/PowerStateInfoProvider.java index a50cdf4fc..23209160f 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/tile/PowerStateInfoProvider.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/tile/PowerStateInfoProvider.java @@ -42,11 +42,11 @@ public class PowerStateInfoProvider implements ITileProbInfoProvider { final boolean isPowered = state.isPowered(); if (isActive && isPowered) { - probeInfo.text(TheOneProbeText.DEVICE_ONLINE.getTranslationString()); + probeInfo.text(TheOneProbeText.DEVICE_ONLINE.getTranslationComponent()); } else if (isPowered) { - probeInfo.text(TheOneProbeText.DEVICE_MISSING_CHANNEL.getTranslationString()); + probeInfo.text(TheOneProbeText.DEVICE_MISSING_CHANNEL.getTranslationComponent()); } else { - probeInfo.text(TheOneProbeText.DEVICE_OFFLINE.getTranslationString()); + probeInfo.text(TheOneProbeText.DEVICE_OFFLINE.getTranslationComponent()); } } diff --git a/src/main/java/appeng/integration/modules/theoneprobe/tile/PowerStorageInfoProvider.java b/src/main/java/appeng/integration/modules/theoneprobe/tile/PowerStorageInfoProvider.java index b34790d86..e45678078 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/tile/PowerStorageInfoProvider.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/tile/PowerStorageInfoProvider.java @@ -20,6 +20,7 @@ package appeng.integration.modules.theoneprobe.tile; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import mcjty.theoneprobe.api.IProbeHitData; @@ -48,8 +49,8 @@ public class PowerStorageInfoProvider implements ITileProbInfoProvider { final String formatCurrentPower = Platform.formatPowerLong(internalCurrentPower, false); final String formatMaxPower = Platform.formatPowerLong(internalMaxPower, false); - final String formattedString = TheOneProbeText.STORED_ENERGY - .getTranslationComponent(formatCurrentPower, formatMaxPower).getFormattedText(); + final ITextComponent formattedString = TheOneProbeText.STORED_ENERGY + .getTranslationComponent(formatCurrentPower, formatMaxPower); probeInfo.text(formattedString); } diff --git a/src/main/java/appeng/items/misc/EncodedPatternItem.java b/src/main/java/appeng/items/misc/EncodedPatternItem.java index bb6d90d10..133fb3e2f 100644 --- a/src/main/java/appeng/items/misc/EncodedPatternItem.java +++ b/src/main/java/appeng/items/misc/EncodedPatternItem.java @@ -116,34 +116,35 @@ public class EncodedPatternItem extends AEBaseItem { return; } - stack.setDisplayName(GuiText.InvalidPattern.textComponent().applyTextStyle(TextFormatting.RED)); + stack.setDisplayName(GuiText.InvalidPattern.textComponent().deepCopy().func_240701_a_(TextFormatting.RED)); InvalidPatternHelper invalid = new InvalidPatternHelper(stack); final ITextComponent label = (invalid.isCraftable() ? GuiText.Crafts.textComponent() - : GuiText.Creates.textComponent()).appendText(": "); - final ITextComponent and = new StringTextComponent(" ").appendSibling(GuiText.And.textComponent()) - .appendText(" "); - final ITextComponent with = GuiText.With.textComponent().appendText(": "); + : GuiText.Creates.textComponent()).deepCopy().func_240702_b_(": "); + final ITextComponent and = new StringTextComponent(" ").deepCopy() + .func_230529_a_(GuiText.And.textComponent()).deepCopy().func_240702_b_(" "); + final ITextComponent with = GuiText.With.textComponent().deepCopy().func_240702_b_(": "); boolean first = true; for (final InvalidPatternHelper.PatternIngredient output : invalid.getOutputs()) { - lines.add((first ? label : and).deepCopy().appendSibling(output.getFormattedToolTip())); + lines.add((first ? label : and).deepCopy().func_230529_a_(output.getFormattedToolTip())); first = false; } first = true; for (final InvalidPatternHelper.PatternIngredient input : invalid.getInputs()) { - lines.add((first ? with : and).deepCopy().appendSibling(input.getFormattedToolTip())); + lines.add((first ? with : and).deepCopy().func_230529_a_(input.getFormattedToolTip())); first = false; } if (invalid.isCraftable()) { - final ITextComponent substitutionLabel = GuiText.Substitute.textComponent().appendText(" "); + final ITextComponent substitutionLabel = GuiText.Substitute.textComponent().deepCopy() + .func_240702_b_(" "); final ITextComponent canSubstitute = invalid.canSubstitute() ? GuiText.Yes.textComponent() : GuiText.No.textComponent(); - lines.add(substitutionLabel.appendSibling(canSubstitute)); + lines.add(substitutionLabel.deepCopy().func_230529_a_(canSubstitute)); } return; @@ -160,10 +161,10 @@ public class EncodedPatternItem extends AEBaseItem { final Collection out = details.getOutputs(); final ITextComponent label = (isCrafting ? GuiText.Crafts.textComponent() : GuiText.Creates.textComponent()) - .appendText(": "); - final ITextComponent and = new StringTextComponent(" ").appendSibling(GuiText.And.textComponent()) - .appendText(" "); - final ITextComponent with = GuiText.With.textComponent().appendText(": "); + .deepCopy().func_240702_b_(": "); + final ITextComponent and = new StringTextComponent(" ").deepCopy().func_230529_a_(GuiText.And.textComponent()) + .func_240702_b_(" "); + final ITextComponent with = GuiText.With.textComponent().deepCopy().func_240702_b_(": "); boolean first = true; for (final IAEItemStack anOut : out) { @@ -171,8 +172,8 @@ public class EncodedPatternItem extends AEBaseItem { continue; } - lines.add((first ? label : and).deepCopy().appendText(anOut.getStackSize() + "x ") - .appendSibling(Platform.getItemDisplayName(anOut))); + lines.add((first ? label : and).deepCopy().func_240702_b_(anOut.getStackSize() + "x ") + .func_230529_a_(Platform.getItemDisplayName(anOut))); first = false; } @@ -182,16 +183,16 @@ public class EncodedPatternItem extends AEBaseItem { continue; } - lines.add((first ? with : and).deepCopy().appendText(anIn.getStackSize() + "x ") - .appendSibling(Platform.getItemDisplayName(anIn))); + lines.add((first ? with : and).deepCopy().func_240702_b_(anIn.getStackSize() + "x ") + .func_230529_a_(Platform.getItemDisplayName(anIn))); first = false; } if (isCrafting) { - final ITextComponent substitutionLabel = GuiText.Substitute.textComponent().appendText(" "); + final ITextComponent substitutionLabel = GuiText.Substitute.textComponent().deepCopy().func_240702_b_(" "); final ITextComponent canSubstitute = substitute ? GuiText.Yes.textComponent() : GuiText.No.textComponent(); - lines.add(substitutionLabel.appendSibling(canSubstitute)); + lines.add(substitutionLabel.deepCopy().func_230529_a_(canSubstitute)); } } diff --git a/src/main/java/appeng/items/parts/FacadeItem.java b/src/main/java/appeng/items/parts/FacadeItem.java index d69441ca5..30fc5ccea 100644 --- a/src/main/java/appeng/items/parts/FacadeItem.java +++ b/src/main/java/appeng/items/parts/FacadeItem.java @@ -32,7 +32,7 @@ import net.minecraft.item.ItemUseContext; import net.minecraft.item.Items; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tags.BlockTags; -import net.minecraft.tags.Tag; +import net.minecraft.tags.ITag; import net.minecraft.util.ActionResultType; import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; @@ -105,7 +105,7 @@ public class FacadeItem extends AEBaseItem implements IFacadeItem, IAlphaPassIte BlockState blockState = block.getDefaultState(); final boolean areTileEntitiesEnabled = AEConfig.instance().isFeatureEnabled(AEFeature.TILE_ENTITY_FACADES); - Tag whitelistTag = BlockTags.getCollection().getOrCreate(TAG_WHITELISTED); + ITag whitelistTag = BlockTags.getCollection().getOrCreate(TAG_WHITELISTED); final boolean isWhiteListed = block.isIn(whitelistTag); final boolean isModel = blockState.getRenderType() == BlockRenderType.MODEL; diff --git a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java index ca7305c1c..a13bc0223 100644 --- a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java +++ b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java @@ -28,8 +28,8 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; +import net.minecraft.world.DimensionType; import net.minecraft.world.World; -import net.minecraft.world.dimension.DimensionType; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/appeng/items/tools/BiometricCardItem.java b/src/main/java/appeng/items/tools/BiometricCardItem.java index ef7152b2f..ca6634eaf 100644 --- a/src/main/java/appeng/items/tools/BiometricCardItem.java +++ b/src/main/java/appeng/items/tools/BiometricCardItem.java @@ -30,6 +30,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.NBTUtil; import net.minecraft.util.ActionResult; +import net.minecraft.util.ActionResultType; import net.minecraft.util.Hand; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; @@ -61,7 +62,7 @@ public class BiometricCardItem extends AEBaseItem implements IBiometricCard { } @Override - public boolean itemInteractionForEntity(ItemStack is, final PlayerEntity player, final LivingEntity target, + public ActionResultType itemInteractionForEntity(ItemStack is, final PlayerEntity player, final LivingEntity target, final Hand hand) { if (target instanceof PlayerEntity && !player.isCrouching()) { if (player.isCreative()) { @@ -69,15 +70,15 @@ public class BiometricCardItem extends AEBaseItem implements IBiometricCard { } this.encode(is, (PlayerEntity) target); player.swingArm(hand); - return true; + return ActionResultType.SUCCESS; } - return false; + return ActionResultType.PASS; } @Override public ITextComponent getDisplayName(final ItemStack is) { final GameProfile username = this.getProfile(is); - return username != null ? super.getDisplayName(is).appendText(" - " + username.getName()) + return username != null ? super.getDisplayName(is).deepCopy().func_240702_b_(" - " + username.getName()) : super.getDisplayName(is); } @@ -166,7 +167,8 @@ public class BiometricCardItem extends AEBaseItem implements IBiometricCard { if (msg == null) { msg = new TranslationTextComponent(sp.getTranslatedName()); } else { - msg = msg.appendText(", ").appendSibling(new TranslationTextComponent(sp.getTranslatedName())); + msg = msg.deepCopy().func_240702_b_(", ") + .func_230529_a_(new TranslationTextComponent(sp.getTranslatedName())); } } lines.add(msg); diff --git a/src/main/java/appeng/items/tools/MemoryCardItem.java b/src/main/java/appeng/items/tools/MemoryCardItem.java index 3fcb71284..a70a2d772 100644 --- a/src/main/java/appeng/items/tools/MemoryCardItem.java +++ b/src/main/java/appeng/items/tools/MemoryCardItem.java @@ -145,19 +145,19 @@ public class MemoryCardItem extends AEBaseItem implements IMemoryCard { switch (msg) { case SETTINGS_CLEARED: - player.sendMessage(PlayerMessages.SettingCleared.get()); + player.sendMessage(PlayerMessages.SettingCleared.get(), player.getUniqueID()); break; case INVALID_MACHINE: - player.sendMessage(PlayerMessages.InvalidMachine.get()); + player.sendMessage(PlayerMessages.InvalidMachine.get(), player.getUniqueID()); break; case SETTINGS_LOADED: - player.sendMessage(PlayerMessages.LoadedSettings.get()); + player.sendMessage(PlayerMessages.LoadedSettings.get(), player.getUniqueID()); break; case SETTINGS_SAVED: - player.sendMessage(PlayerMessages.SavedSettings.get()); + player.sendMessage(PlayerMessages.SavedSettings.get(), player.getUniqueID()); break; case SETTINGS_RESET: - player.sendMessage(PlayerMessages.ResetSettings.get()); + player.sendMessage(PlayerMessages.ResetSettings.get(), player.getUniqueID()); break; default: } diff --git a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java index 3b26b952d..ee946d537 100644 --- a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java +++ b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java @@ -36,9 +36,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.item.SnowballItem; import net.minecraft.nbt.CompoundNBT; -import net.minecraft.state.IProperty; +import net.minecraft.state.Property; +import net.minecraft.tags.ITag; import net.minecraft.tags.ItemTags; -import net.minecraft.tags.Tag; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; import net.minecraft.util.Direction; @@ -205,7 +205,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem extra = new TranslationTextComponent(selected.translationKey); } - return super.getDisplayName(is).appendText(" - ").appendSibling(extra); + return super.getDisplayName(is).deepCopy().func_240702_b_(" - ").func_230529_a_(extra); } public AEColor getActiveColor(final ItemStack tol) { @@ -226,7 +226,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem return ipb.getColor(); } else { for (Map.Entry entry : TAG_TO_COLOR.entrySet()) { - Tag tag = ItemTags.getCollection().get(entry.getKey()); + ITag tag = ItemTags.getCollection().get(entry.getKey()); if (tag != null && paintBall.getItem().isIn(tag)) { return entry.getValue(); } @@ -326,7 +326,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem Block recolored = BlockRecolorer.recolor(blk, newColor); if (recolored != blk) { BlockState newState = recolored.getDefaultState(); - for (IProperty prop : newState.getProperties()) { + for (Property prop : newState.func_235904_r_()) { newState = copyProp(state, newState, prop); } @@ -341,8 +341,8 @@ public class ColorApplicatorItem extends AEBasePoweredItem } private static > BlockState copyProp(BlockState oldState, BlockState newState, - IProperty prop) { - if (newState.has(prop)) { + Property prop) { + if (newState.func_235901_b_(prop)) { return newState.with(prop, oldState.get(prop)); } return newState; diff --git a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java index 7344c7f4b..44cb6060f 100644 --- a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java +++ b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java @@ -44,7 +44,7 @@ import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.EntityRayTraceResult; import net.minecraft.util.math.RayTraceContext; import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; @@ -143,9 +143,9 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< final LookDirection dir = Platform.getPlayerRay(p, 32); - final Vec3d rayFrom = dir.getA(); - final Vec3d rayTo = dir.getB(); - final Vec3d direction = rayTo.subtract(rayFrom); + final Vector3d rayFrom = dir.getA(); + final Vector3d rayTo = dir.getB(); + final Vector3d direction = rayTo.subtract(rayFrom); direction.normalize(); final double d0 = rayFrom.x; @@ -174,14 +174,14 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< return new ActionResult<>(ActionResultType.FAIL, p.getHeldItem(hand)); } - private void shootPaintBalls(final ItemStack type, final World w, final PlayerEntity p, final Vec3d Vec3d, - final Vec3d Vec3d1, final Vec3d direction, final double d0, final double d1, final double d2) { - final AxisAlignedBB bb = new AxisAlignedBB(Math.min(Vec3d.x, Vec3d1.x), Math.min(Vec3d.y, Vec3d1.y), - Math.min(Vec3d.z, Vec3d1.z), Math.max(Vec3d.x, Vec3d1.x), Math.max(Vec3d.y, Vec3d1.y), - Math.max(Vec3d.z, Vec3d1.z)).grow(16, 16, 16); + private void shootPaintBalls(final ItemStack type, final World w, final PlayerEntity p, final Vector3d Vector3d, + final Vector3d Vector3d1, final Vector3d direction, final double d0, final double d1, final double d2) { + final AxisAlignedBB bb = new AxisAlignedBB(Math.min(Vector3d.x, Vector3d1.x), Math.min(Vector3d.y, Vector3d1.y), + Math.min(Vector3d.z, Vector3d1.z), Math.max(Vector3d.x, Vector3d1.x), Math.max(Vector3d.y, Vector3d1.y), + Math.max(Vector3d.z, Vector3d1.z)).grow(16, 16, 16); Entity entity = null; - Vec3d entityIntersection = null; + Vector3d entityIntersection = null; final List list = w.getEntitiesWithinAABBExcludingEntity(p, bb); double closest = 9999999.0D; @@ -197,10 +197,10 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< final float f1 = 0.3F; final AxisAlignedBB boundingBox = entity1.getBoundingBox().grow(f1, f1, f1); - final Vec3d intersection = boundingBox.rayTrace(Vec3d, Vec3d1).orElse(null); + final Vector3d intersection = boundingBox.rayTrace(Vector3d, Vector3d1).orElse(null); if (intersection != null) { - final double nd = Vec3d.squareDistanceTo(intersection); + final double nd = Vector3d.squareDistanceTo(intersection); if (nd < closest) { entity = entity1; @@ -211,11 +211,11 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< } } - RayTraceContext rayTraceContext = new RayTraceContext(Vec3d, Vec3d1, RayTraceContext.BlockMode.COLLIDER, + RayTraceContext rayTraceContext = new RayTraceContext(Vector3d, Vector3d1, RayTraceContext.BlockMode.COLLIDER, RayTraceContext.FluidMode.NONE, p); RayTraceResult pos = w.rayTraceBlocks(rayTraceContext); - final Vec3d vec = new Vec3d(d0, d1, d2); + final Vector3d vec = new Vector3d(d0, d1, d2); if (entity != null && pos.getType() != RayTraceResult.Type.MISS && pos.getHitVec().squareDistanceTo(vec) > closest) { pos = new EntityRayTraceResult(entity, entityIntersection); @@ -271,25 +271,25 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< final TileEntity te = w.getTileEntity(hitPos); if (te instanceof PaintSplotchesTileEntity) { - final Vec3d hp = pos.getHitVec().subtract(hitPos.getX(), hitPos.getY(), hitPos.getZ()); + final Vector3d hp = pos.getHitVec().subtract(hitPos.getX(), hitPos.getY(), hitPos.getZ()); ((PaintSplotchesTileEntity) te).addBlot(type, side.getOpposite(), hp); } } } } - private void standardAmmo(float penetration, final World w, final PlayerEntity p, final Vec3d Vec3d, - final Vec3d Vec3d1, final Vec3d direction, final double d0, final double d1, final double d2) { + private void standardAmmo(float penetration, final World w, final PlayerEntity p, final Vector3d Vector3d, + final Vector3d Vector3d1, final Vector3d direction, final double d0, final double d1, final double d2) { boolean hasDestroyed = true; while (penetration > 0 && hasDestroyed) { hasDestroyed = false; - final AxisAlignedBB bb = new AxisAlignedBB(Math.min(Vec3d.x, Vec3d1.x), Math.min(Vec3d.y, Vec3d1.y), - Math.min(Vec3d.z, Vec3d1.z), Math.max(Vec3d.x, Vec3d1.x), Math.max(Vec3d.y, Vec3d1.y), - Math.max(Vec3d.z, Vec3d1.z)).grow(16, 16, 16); + final AxisAlignedBB bb = new AxisAlignedBB(Math.min(Vector3d.x, Vector3d1.x), Math.min(Vector3d.y, Vector3d1.y), + Math.min(Vector3d.z, Vector3d1.z), Math.max(Vector3d.x, Vector3d1.x), Math.max(Vector3d.y, Vector3d1.y), + Math.max(Vector3d.z, Vector3d1.z)).grow(16, 16, 16); Entity entity = null; - Vec3d entityIntersection = null; + Vector3d entityIntersection = null; final List list = w.getEntitiesWithinAABBExcludingEntity(p, bb); double closest = 9999999.0D; @@ -306,10 +306,10 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< final float f1 = 0.3F; final AxisAlignedBB boundingBox = entity1.getBoundingBox().grow(f1, f1, f1); - final Vec3d intersection = boundingBox.rayTrace(Vec3d, Vec3d1).orElse(null); + final Vector3d intersection = boundingBox.rayTrace(Vector3d, Vector3d1).orElse(null); if (intersection != null) { - final double nd = Vec3d.squareDistanceTo(intersection); + final double nd = Vector3d.squareDistanceTo(intersection); if (nd < closest) { entity = entity1; @@ -321,9 +321,9 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< } } - RayTraceContext rayTraceContext = new RayTraceContext(Vec3d, Vec3d1, RayTraceContext.BlockMode.COLLIDER, + RayTraceContext rayTraceContext = new RayTraceContext(Vector3d, Vector3d1, RayTraceContext.BlockMode.COLLIDER, RayTraceContext.FluidMode.NONE, p); - final Vec3d vec = new Vec3d(d0, d1, d2); + final Vector3d vec = new Vector3d(d0, d1, d2); RayTraceResult pos = w.rayTraceBlocks(rayTraceContext); if (entity != null && pos.getType() != RayTraceResult.Type.MISS && pos.getHitVec().squareDistanceTo(vec) > closest) { @@ -353,8 +353,8 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< final LivingEntity el = (LivingEntity) entityHit; penetration -= dmg; el.knockBack(p, 0, -direction.x, -direction.z); - // el.knockBack( p, 0, Vec3d.x, - // Vec3d.z ); + // el.knockBack( p, 0, Vector3d.x, + // Vector3d.z ); el.attackEntityFrom(dmgSrc, dmg); if (!el.isAlive()) { hasDestroyed = true; diff --git a/src/main/java/appeng/items/tools/quartz/QuartzHoeItem.java b/src/main/java/appeng/items/tools/quartz/QuartzHoeItem.java index dc17a8d5a..124615529 100644 --- a/src/main/java/appeng/items/tools/quartz/QuartzHoeItem.java +++ b/src/main/java/appeng/items/tools/quartz/QuartzHoeItem.java @@ -30,7 +30,7 @@ public class QuartzHoeItem extends HoeItem { private final AEFeature type; public QuartzHoeItem(Item.Properties props, final AEFeature type) { - super(ItemTier.IRON, -1.0F, props); + super(ItemTier.IRON, -2, -1.0F, props); this.type = type; } diff --git a/src/main/java/appeng/me/cluster/IAECluster.java b/src/main/java/appeng/me/cluster/IAECluster.java index adbe00f7c..5610645b3 100644 --- a/src/main/java/appeng/me/cluster/IAECluster.java +++ b/src/main/java/appeng/me/cluster/IAECluster.java @@ -20,7 +20,6 @@ package appeng.me.cluster; import java.util.Iterator; -import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import appeng.api.networking.IGridHost; diff --git a/src/main/java/appeng/me/cluster/MBCalculator.java b/src/main/java/appeng/me/cluster/MBCalculator.java index 98e5e0dcb..bdc94526c 100644 --- a/src/main/java/appeng/me/cluster/MBCalculator.java +++ b/src/main/java/appeng/me/cluster/MBCalculator.java @@ -95,8 +95,8 @@ public abstract class MBCalculator, TClust } try { - final BlockPos.Mutable min = new BlockPos.Mutable(loc); - final BlockPos.Mutable max = new BlockPos.Mutable(loc); + final BlockPos.Mutable min = new BlockPos.Mutable(loc.getX(), loc.getY(), loc.getZ()); + final BlockPos.Mutable max = new BlockPos.Mutable(loc.getX(), loc.getY(), loc.getZ()); // find size of MB structure... while (this.isValidTileAt(world, min.getX() - 1, min.getY(), min.getZ())) { diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java index 45fe9fcba..b89589dc0 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java @@ -18,7 +18,12 @@ package appeng.me.cluster.implementations; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import com.google.common.collect.ImmutableList; @@ -38,9 +43,15 @@ import appeng.api.config.FuzzyMode; import appeng.api.config.PowerMultiplier; import appeng.api.crafting.ICraftingHelper; import appeng.api.networking.IGrid; -import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; -import appeng.api.networking.crafting.*; +import appeng.api.networking.crafting.CraftingItemList; +import appeng.api.networking.crafting.ICraftingCPU; +import appeng.api.networking.crafting.ICraftingGrid; +import appeng.api.networking.crafting.ICraftingJob; +import appeng.api.networking.crafting.ICraftingLink; +import appeng.api.networking.crafting.ICraftingMedium; +import appeng.api.networking.crafting.ICraftingPatternDetails; +import appeng.api.networking.crafting.ICraftingRequester; import appeng.api.networking.energy.IEnergyGrid; import appeng.api.networking.events.MENetworkCraftingCpuChange; import appeng.api.networking.security.IActionSource; @@ -53,7 +64,11 @@ import appeng.api.storage.data.IItemList; import appeng.container.ContainerNull; import appeng.core.AELog; import appeng.core.Api; -import appeng.crafting.*; +import appeng.crafting.CraftBranchFailure; +import appeng.crafting.CraftingJob; +import appeng.crafting.CraftingLink; +import appeng.crafting.CraftingWatcher; +import appeng.crafting.MECraftingInventory; import appeng.me.cache.CraftingGridCache; import appeng.me.cluster.IAECluster; import appeng.me.cluster.MBCalculator; diff --git a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java index 7ab580d98..a9592018c 100644 --- a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java @@ -23,8 +23,8 @@ import java.util.Iterator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; +import net.minecraft.world.DimensionType; import net.minecraft.world.World; -import net.minecraft.world.dimension.DimensionType; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; diff --git a/src/main/java/appeng/parts/AEBasePart.java b/src/main/java/appeng/parts/AEBasePart.java index 1d054434b..245a237a2 100644 --- a/src/main/java/appeng/parts/AEBasePart.java +++ b/src/main/java/appeng/parts/AEBasePart.java @@ -38,7 +38,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; @@ -402,7 +402,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, } @Override - public final boolean onActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public final boolean onActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (this.useMemoryCard(player)) { return true; } @@ -411,7 +411,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, } @Override - public final boolean onShiftActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public final boolean onShiftActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (this.useMemoryCard(player)) { return true; } @@ -419,11 +419,11 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, return this.onPartShiftActivate(player, hand, pos); } - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { return false; } - public boolean onPartShiftActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartShiftActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { return false; } diff --git a/src/main/java/appeng/parts/CableBusContainer.java b/src/main/java/appeng/parts/CableBusContainer.java index 6713cd821..963f313d9 100644 --- a/src/main/java/appeng/parts/CableBusContainer.java +++ b/src/main/java/appeng/parts/CableBusContainer.java @@ -40,9 +40,9 @@ import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; import net.minecraftforge.common.util.Constants; @@ -354,7 +354,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public SelectedPart selectPart(final Vec3d pos) { + public SelectedPart selectPart(final Vector3d pos) { for (final AEPartLocation side : AEPartLocation.values()) { final IPart p = this.getPart(side); if (p != null) { @@ -651,7 +651,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public boolean activate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean activate(final PlayerEntity player, final Hand hand, final Vector3d pos) { final SelectedPart p = this.selectPart(pos); if (p != null && p.part != null) { // forge sends activate even when sneaking in some cases (eg emtpy hand) @@ -665,7 +665,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public boolean clicked(PlayerEntity player, Hand hand, Vec3d hitVec) { + public boolean clicked(PlayerEntity player, Hand hand, Vector3d hitVec) { final SelectedPart p = this.selectPart(hitVec); if (p != null && p.part != null) { if (player.isCrouching()) { diff --git a/src/main/java/appeng/parts/ICableBusContainer.java b/src/main/java/appeng/parts/ICableBusContainer.java index ebd5d0bca..76b8e3a45 100644 --- a/src/main/java/appeng/parts/ICableBusContainer.java +++ b/src/main/java/appeng/parts/ICableBusContainer.java @@ -26,7 +26,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; @@ -46,15 +46,15 @@ public interface ICableBusContainer { void onEntityCollision(Entity e); - boolean activate(PlayerEntity player, Hand hand, Vec3d vecFromPool); + boolean activate(PlayerEntity player, Hand hand, Vector3d vecFromPool); - boolean clicked(PlayerEntity player, Hand hand, Vec3d hitVec); + boolean clicked(PlayerEntity player, Hand hand, Vector3d hitVec); void onNeighborChanged(IBlockReader w, BlockPos pos, BlockPos neighbor); boolean isEmpty(); - SelectedPart selectPart(Vec3d v3); + SelectedPart selectPart(Vector3d v3); boolean recolourBlock(Direction side, AEColor colour, PlayerEntity who); diff --git a/src/main/java/appeng/parts/NullCableBusContainer.java b/src/main/java/appeng/parts/NullCableBusContainer.java index 7ce6a5470..5dd5d8140 100644 --- a/src/main/java/appeng/parts/NullCableBusContainer.java +++ b/src/main/java/appeng/parts/NullCableBusContainer.java @@ -26,7 +26,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; @@ -57,7 +57,7 @@ public class NullCableBusContainer implements ICableBusContainer { } @Override - public boolean activate(final PlayerEntity player, final Hand hand, final Vec3d vecFromPool) { + public boolean activate(final PlayerEntity player, final Hand hand, final Vector3d vecFromPool) { return false; } @@ -72,7 +72,7 @@ public class NullCableBusContainer implements ICableBusContainer { } @Override - public SelectedPart selectPart(final Vec3d v3) { + public SelectedPart selectPart(final Vector3d v3) { return new SelectedPart(); } @@ -102,7 +102,7 @@ public class NullCableBusContainer implements ICableBusContainer { } @Override - public boolean clicked(PlayerEntity player, Hand hand, Vec3d hitVec) { + public boolean clicked(PlayerEntity player, Hand hand, Vector3d hitVec) { return false; } diff --git a/src/main/java/appeng/parts/PartPlacement.java b/src/main/java/appeng/parts/PartPlacement.java index 37ebd69ca..c592408d4 100644 --- a/src/main/java/appeng/parts/PartPlacement.java +++ b/src/main/java/appeng/parts/PartPlacement.java @@ -40,7 +40,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.RayTraceContext; import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.TickEvent; @@ -181,7 +181,7 @@ public class PartPlacement { if (held.isEmpty()) { if (host != null && player.isCrouching() && world.isAirBlock(pos)) { if (mop.getType() == RayTraceResult.Type.BLOCK) { - Vec3d hitVec = mop.getHitVec().add(-mop.getPos().getX(), -mop.getPos().getY(), + Vector3d hitVec = mop.getHitVec().add(-mop.getPos().getX(), -mop.getPos().getY(), -mop.getPos().getZ()); final SelectedPart sPart = selectPart(player, host, hitVec); if (sPart != null && sPart.part != null) { @@ -329,7 +329,7 @@ public class PartPlacement { return getEyeHeight(); } - private static SelectedPart selectPart(final PlayerEntity player, final IPartHost host, final Vec3d pos) { + private static SelectedPart selectPart(final PlayerEntity player, final IPartHost host, final Vector3d pos) { AppEng.proxy.updateRenderMode(player); final SelectedPart sp = host.selectPart(pos); AppEng.proxy.updateRenderMode(null); @@ -365,7 +365,7 @@ public class PartPlacement { final float f = 1.0F; final double d0 = mc.playerController.getBlockReachDistance(); - final Vec3d vec3 = mc.getRenderViewEntity().getEyePosition(f); + final Vector3d vec3 = mc.getRenderViewEntity().getEyePosition(f); if (mop instanceof BlockRayTraceResult && mop.getHitVec().distanceTo(vec3) < d0) { BlockRayTraceResult brtr = (BlockRayTraceResult) mop; diff --git a/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java b/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java index bc843d9ed..be3a2213c 100644 --- a/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java +++ b/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java @@ -32,8 +32,8 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.tags.BlockTags; +import net.minecraft.tags.ITag; import net.minecraft.tags.ItemTags; -import net.minecraft.tags.Tag; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; @@ -618,12 +618,12 @@ public class AnnihilationPlanePart extends BasicStatePart implements IGridTickab } public static boolean isBlockBlacklisted(Block b) { - Tag tag = BlockTags.getCollection().getOrCreate(TAG_BLACKLIST); + ITag tag = BlockTags.getCollection().getOrCreate(TAG_BLACKLIST); return b.isIn(tag); } public static boolean isItemBlacklisted(Item i) { - Tag tag = ItemTags.getCollection().getOrCreate(TAG_BLACKLIST); + ITag tag = ItemTags.getCollection().getOrCreate(TAG_BLACKLIST); return i.isIn(tag); } diff --git a/src/main/java/appeng/parts/automation/ExportBusPart.java b/src/main/java/appeng/parts/automation/ExportBusPart.java index bb8af3630..04c3117e2 100644 --- a/src/main/java/appeng/parts/automation/ExportBusPart.java +++ b/src/main/java/appeng/parts/automation/ExportBusPart.java @@ -26,7 +26,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; @@ -196,7 +196,7 @@ public class ExportBusPart extends SharedItemBusPart implements ICraftingRequest } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (Platform.isServer()) { ContainerOpener.openContainer(UpgradeableContainer.TYPE, player, ContainerLocator.forPart(this)); } diff --git a/src/main/java/appeng/parts/automation/FormationPlanePart.java b/src/main/java/appeng/parts/automation/FormationPlanePart.java index fbdb3e294..639227a1e 100644 --- a/src/main/java/appeng/parts/automation/FormationPlanePart.java +++ b/src/main/java/appeng/parts/automation/FormationPlanePart.java @@ -45,7 +45,7 @@ import net.minecraft.util.Hand; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.client.model.data.IModelData; @@ -183,7 +183,7 @@ public class FormationPlanePart extends AbstractFormationPlanePart } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (Platform.isServer()) { ContainerOpener.openContainer(FormationPlaneContainer.TYPE, player, ContainerLocator.forPart(this)); } diff --git a/src/main/java/appeng/parts/automation/ImportBusPart.java b/src/main/java/appeng/parts/automation/ImportBusPart.java index 3ba35cb2f..474ab0654 100644 --- a/src/main/java/appeng/parts/automation/ImportBusPart.java +++ b/src/main/java/appeng/parts/automation/ImportBusPart.java @@ -23,7 +23,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; @@ -119,7 +119,7 @@ public class ImportBusPart extends SharedItemBusPart implements IInventoryDestin } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (Platform.isServer()) { ContainerOpener.openContainer(UpgradeableContainer.TYPE, player, ContainerLocator.forPart(this)); } diff --git a/src/main/java/appeng/parts/automation/LevelEmitterPart.java b/src/main/java/appeng/parts/automation/LevelEmitterPart.java index 146b69404..ec8e82ecc 100644 --- a/src/main/java/appeng/parts/automation/LevelEmitterPart.java +++ b/src/main/java/appeng/parts/automation/LevelEmitterPart.java @@ -30,7 +30,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraftforge.items.IItemHandler; @@ -404,7 +404,7 @@ public class LevelEmitterPart extends UpgradeablePart implements IEnergyWatcherH } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (Platform.isServer()) { ContainerOpener.openContainer(LevelEmitterContainer.TYPE, player, ContainerLocator.forPart(this)); } diff --git a/src/main/java/appeng/parts/automation/PlaneModel.java b/src/main/java/appeng/parts/automation/PlaneModel.java index 71cd67332..a4819f482 100644 --- a/src/main/java/appeng/parts/automation/PlaneModel.java +++ b/src/main/java/appeng/parts/automation/PlaneModel.java @@ -29,8 +29,8 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; -import net.minecraft.client.renderer.model.Material; import net.minecraft.client.renderer.model.ModelBakery; +import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; @@ -42,19 +42,19 @@ import net.minecraftforge.client.model.geometry.IModelGeometry; */ public class PlaneModel implements IModelGeometry { - private final Material frontTexture; - private final Material sidesTexture; - private final Material backTexture; + private final RenderMaterial frontTexture; + private final RenderMaterial sidesTexture; + private final RenderMaterial backTexture; public PlaneModel(ResourceLocation frontTexture, ResourceLocation sidesTexture, ResourceLocation backTexture) { - this.frontTexture = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, frontTexture); - this.sidesTexture = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, sidesTexture); - this.backTexture = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, backTexture); + this.frontTexture = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, frontTexture); + this.sidesTexture = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, sidesTexture); + this.backTexture = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, backTexture); } @Override public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, - Function spriteGetter, IModelTransform modelTransform, + Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { TextureAtlasSprite frontSprite = spriteGetter.apply(this.frontTexture); TextureAtlasSprite sidesSprite = spriteGetter.apply(this.sidesTexture); @@ -64,7 +64,7 @@ public class PlaneModel implements IModelGeometry { } @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Arrays.asList(frontTexture, sidesTexture, backTexture); } diff --git a/src/main/java/appeng/parts/misc/CableAnchorPart.java b/src/main/java/appeng/parts/misc/CableAnchorPart.java index b32b32da2..97c2586c3 100644 --- a/src/main/java/appeng/parts/misc/CableAnchorPart.java +++ b/src/main/java/appeng/parts/misc/CableAnchorPart.java @@ -32,7 +32,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; @@ -113,7 +113,7 @@ public class CableAnchorPart implements IPart { @Override public boolean isLadder(final LivingEntity entity) { - return this.mySide.yOffset == 0 && (entity.collidedHorizontally || !entity.onGround); + return this.mySide.yOffset == 0 && (entity.collidedHorizontally || !entity.func_233570_aj_()); } @Override @@ -173,12 +173,12 @@ public class CableAnchorPart implements IPart { } @Override - public boolean onActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { return false; } @Override - public boolean onShiftActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onShiftActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { return false; } diff --git a/src/main/java/appeng/parts/misc/InterfacePart.java b/src/main/java/appeng/parts/misc/InterfacePart.java index f95c69e43..a82ce601c 100644 --- a/src/main/java/appeng/parts/misc/InterfacePart.java +++ b/src/main/java/appeng/parts/misc/InterfacePart.java @@ -32,7 +32,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.IItemHandler; @@ -164,7 +164,7 @@ public class InterfacePart extends BasicStatePart implements IGridTickable, ISto } @Override - public boolean onPartActivate(final PlayerEntity p, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity p, final Hand hand, final Vector3d pos) { if (Platform.isServer()) { ContainerOpener.openContainer(InterfaceContainer.TYPE, p, ContainerLocator.forPart(this)); } diff --git a/src/main/java/appeng/parts/misc/StorageBusPart.java b/src/main/java/appeng/parts/misc/StorageBusPart.java index 38e8557e8..ccee03408 100644 --- a/src/main/java/appeng/parts/misc/StorageBusPart.java +++ b/src/main/java/appeng/parts/misc/StorageBusPart.java @@ -31,7 +31,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; @@ -275,7 +275,7 @@ public class StorageBusPart extends UpgradeablePart } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (Platform.isServer()) { ContainerOpener.openContainer(StorageBusContainer.TYPE, player, ContainerLocator.forPart(this)); } diff --git a/src/main/java/appeng/parts/p2p/P2PTunnelPart.java b/src/main/java/appeng/parts/p2p/P2PTunnelPart.java index d403abe38..a3e20416c 100644 --- a/src/main/java/appeng/parts/p2p/P2PTunnelPart.java +++ b/src/main/java/appeng/parts/p2p/P2PTunnelPart.java @@ -28,7 +28,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.network.PacketBuffer; import net.minecraft.util.Hand; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.client.model.data.IModelData; import appeng.api.config.Actionable; @@ -157,7 +157,7 @@ public abstract class P2PTunnelPart extends BasicStateP } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (Platform.isClient()) { return true; } @@ -280,7 +280,7 @@ public abstract class P2PTunnelPart extends BasicStateP } @Override - public boolean onPartShiftActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartShiftActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { final ItemStack is = player.inventory.getCurrentItem(); if (!is.isEmpty() && is.getItem() instanceof IMemoryCard) { if (Platform.isClient()) { diff --git a/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java b/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java index a52d2fffe..21309f33d 100644 --- a/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java +++ b/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java @@ -30,7 +30,7 @@ import net.minecraft.network.PacketBuffer; import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -136,7 +136,7 @@ public abstract class AbstractMonitorPart extends AbstractDisplayPart } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (Platform.isClient()) { return true; } @@ -163,7 +163,7 @@ public abstract class AbstractMonitorPart extends AbstractDisplayPart } @Override - public boolean onPartShiftActivate(PlayerEntity player, Hand hand, Vec3d pos) { + public boolean onPartShiftActivate(PlayerEntity player, Hand hand, Vector3d pos) { if (Platform.isClient()) { return true; } diff --git a/src/main/java/appeng/parts/reporting/AbstractReportingPart.java b/src/main/java/appeng/parts/reporting/AbstractReportingPart.java index 59f46c7a9..51e565486 100644 --- a/src/main/java/appeng/parts/reporting/AbstractReportingPart.java +++ b/src/main/java/appeng/parts/reporting/AbstractReportingPart.java @@ -28,7 +28,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; @@ -171,7 +171,7 @@ public abstract class AbstractReportingPart extends AEBasePart implements IMonit } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { final TileEntity te = this.getTile(); if (Platform.isWrench(player, player.inventory.getCurrentItem(), te.getPos())) { diff --git a/src/main/java/appeng/parts/reporting/AbstractTerminalPart.java b/src/main/java/appeng/parts/reporting/AbstractTerminalPart.java index 306718efd..2edba5f13 100644 --- a/src/main/java/appeng/parts/reporting/AbstractTerminalPart.java +++ b/src/main/java/appeng/parts/reporting/AbstractTerminalPart.java @@ -25,7 +25,7 @@ import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.Hand; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.items.IItemHandler; import appeng.api.config.Settings; @@ -104,7 +104,7 @@ public abstract class AbstractTerminalPart extends AbstractDisplayPart } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (!super.onPartActivate(player, hand, pos)) { if (!player.world.isRemote) { ContainerOpener.openContainer(getContainerType(player), player, ContainerLocator.forPart(this)); diff --git a/src/main/java/appeng/parts/reporting/ConversionMonitorPart.java b/src/main/java/appeng/parts/reporting/ConversionMonitorPart.java index 8dad73da9..be5ca878a 100644 --- a/src/main/java/appeng/parts/reporting/ConversionMonitorPart.java +++ b/src/main/java/appeng/parts/reporting/ConversionMonitorPart.java @@ -26,7 +26,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.wrapper.PlayerMainInvWrapper; @@ -73,7 +73,7 @@ public class ConversionMonitorPart extends AbstractMonitorPart { } @Override - public boolean onPartActivate(PlayerEntity player, Hand hand, Vec3d pos) { + public boolean onPartActivate(PlayerEntity player, Hand hand, Vector3d pos) { if (Platform.isClient()) { return true; } @@ -107,7 +107,7 @@ public class ConversionMonitorPart extends AbstractMonitorPart { } @Override - public boolean onClicked(PlayerEntity player, Hand hand, Vec3d pos) { + public boolean onClicked(PlayerEntity player, Hand hand, Vector3d pos) { if (Platform.isClient()) { return true; } @@ -128,7 +128,7 @@ public class ConversionMonitorPart extends AbstractMonitorPart { } @Override - public boolean onShiftClicked(PlayerEntity player, Hand hand, Vec3d pos) { + public boolean onShiftClicked(PlayerEntity player, Hand hand, Vector3d pos) { if (Platform.isClient()) { return true; } diff --git a/src/main/java/appeng/parts/reporting/InterfaceTerminalPart.java b/src/main/java/appeng/parts/reporting/InterfaceTerminalPart.java index 3625cd0cf..f31add33b 100644 --- a/src/main/java/appeng/parts/reporting/InterfaceTerminalPart.java +++ b/src/main/java/appeng/parts/reporting/InterfaceTerminalPart.java @@ -22,7 +22,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import appeng.api.parts.IPartModel; import appeng.container.ContainerLocator; @@ -49,7 +49,7 @@ public class InterfaceTerminalPart extends AbstractDisplayPart { } @Override - public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vec3d pos) { + public boolean onPartActivate(final PlayerEntity player, final Hand hand, final Vector3d pos) { if (!super.onPartActivate(player, hand, pos)) { if (Platform.isServer()) { ContainerOpener.openContainer(InterfaceTerminalContainer.TYPE, player, ContainerLocator.forPart(this)); diff --git a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java index 7dda63889..c54ab8fca 100644 --- a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java +++ b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java @@ -40,9 +40,10 @@ import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.event.ClickEvent; import net.minecraft.util.text.event.HoverEvent; +import net.minecraft.world.DimensionType; +import net.minecraft.world.World; import net.minecraft.world.chunk.ChunkStatus; import net.minecraft.world.chunk.IChunk; -import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.Heightmap; import net.minecraft.world.gen.feature.structure.StructureStart; @@ -86,13 +87,13 @@ public class TestMeteoritesCommand implements ISubCommand { world = player.getServerWorld(); centerBlock = new BlockPos(player.getPosX(), 0, player.getPosZ()); } else { - world = srv.getWorld(DimensionType.OVERWORLD); - centerBlock = world.getSpawnPoint(); + world = srv.getWorld(World.field_234918_g_); + centerBlock = world.func_241135_u_(); } ChunkPos center = new ChunkPos(centerBlock); - ChunkGenerator generator = world.getChunkProvider().getChunkGenerator(); + ChunkGenerator generator = world.getChunkProvider().getChunkGenerator(); // Find all meteorites in the given rectangle List found = new ArrayList<>(); @@ -168,11 +169,11 @@ public class TestMeteoritesCommand implements ISubCommand { } ITextComponent msg = new StringTextComponent(" #" + (i + 1) + " "); - msg.appendSibling(getClickablePosition(world, settings, pos)).appendSibling(restOfLine); + msg.deepCopy().func_230529_a_(getClickablePosition(world, settings, pos)).appendSibling(restOfLine); // Add a tooltip - ITextComponent tooltip = new StringTextComponent(settings.toString() + "\nBiome: ") - .appendSibling(world.getBiome(pos).getDisplayName()); + ITextComponent tooltip = new StringTextComponent(settings.toString() + "\nBiome: ").deepCopy() + .func_230529_a_(world.getBiome(pos).getDisplayName()); msg.applyTextStyle(style -> style.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))); sender.sendFeedback(msg, true); diff --git a/src/main/java/appeng/server/subcommands/TestOreGenCommand.java b/src/main/java/appeng/server/subcommands/TestOreGenCommand.java index 467939d30..7ce76f35f 100644 --- a/src/main/java/appeng/server/subcommands/TestOreGenCommand.java +++ b/src/main/java/appeng/server/subcommands/TestOreGenCommand.java @@ -35,9 +35,10 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.text.StringTextComponent; +import net.minecraft.world.DimensionType; +import net.minecraft.world.World; import net.minecraft.world.chunk.ChunkStatus; import net.minecraft.world.chunk.IChunk; -import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.server.ServerWorld; import appeng.core.Api; @@ -68,8 +69,8 @@ public class TestOreGenCommand implements ISubCommand { world = player.getServerWorld(); center = new BlockPos(player.getPosX(), 0, player.getPosZ()); } catch (CommandSyntaxException e) { - world = srv.getWorld(DimensionType.OVERWORLD); - center = world.getSpawnPoint(); + world = srv.getWorld(World.field_234918_g_); + center = world.func_241135_u_(); } ChunkPos tl = new ChunkPos(center.add(-radius, 0, -radius)); @@ -112,7 +113,7 @@ public class TestOreGenCommand implements ISubCommand { blockPos.setX(x); for (int z = cp.getZStart(); z <= cp.getZEnd(); z++) { blockPos.setZ(z); - for (int y = 0; y < world.getMaxHeight(); y++) { + for (int y = 0; y < world.func_234938_ad_(); y++) { blockPos.setY(y); BlockState state = chunk.getBlockState(blockPos); if (state == quartzOre || state == chargedQuartzOre) { diff --git a/src/main/java/appeng/services/CompassService.java b/src/main/java/appeng/services/CompassService.java index 80d772eaa..83a1cbe69 100644 --- a/src/main/java/appeng/services/CompassService.java +++ b/src/main/java/appeng/services/CompassService.java @@ -32,9 +32,9 @@ import net.minecraft.block.Block; import net.minecraft.server.MinecraftServer; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; +import net.minecraft.world.DimensionType; import net.minecraft.world.IWorld; import net.minecraft.world.chunk.IChunk; -import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; diff --git a/src/main/java/appeng/spatial/SpatialDimensionManager.java b/src/main/java/appeng/spatial/SpatialDimensionManager.java index 7d92e0801..cbacf493b 100644 --- a/src/main/java/appeng/spatial/SpatialDimensionManager.java +++ b/src/main/java/appeng/spatial/SpatialDimensionManager.java @@ -28,7 +28,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; -import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.DimensionType; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.fml.server.ServerLifecycleHooks; diff --git a/src/main/java/appeng/spatial/StorageCellDimension.java b/src/main/java/appeng/spatial/StorageCellDimension.java index 135ef247c..ae2ef5a6a 100644 --- a/src/main/java/appeng/spatial/StorageCellDimension.java +++ b/src/main/java/appeng/spatial/StorageCellDimension.java @@ -22,11 +22,11 @@ import javax.annotation.Nullable; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.world.Dimension; +import net.minecraft.world.DimensionType; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.dimension.Dimension; -import net.minecraft.world.dimension.DimensionType; import net.minecraft.world.gen.ChunkGenerator; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -68,8 +68,8 @@ public class StorageCellDimension extends Dimension { } @Override - public Vec3d getFogColor(final float par1, final float par2) { - return new Vec3d(0.07, 0.07, 0.07); + public Vector3d getFogColor(final float par1, final float par2) { + return new Vector3d(0.07, 0.07, 0.07); } @Override diff --git a/src/main/java/appeng/spatial/StorageCellModDimension.java b/src/main/java/appeng/spatial/StorageCellModDimension.java index 6307f50b6..a7980ecb2 100644 --- a/src/main/java/appeng/spatial/StorageCellModDimension.java +++ b/src/main/java/appeng/spatial/StorageCellModDimension.java @@ -20,9 +20,9 @@ package appeng.spatial; import java.util.function.BiFunction; +import net.minecraft.world.Dimension; +import net.minecraft.world.DimensionType; import net.minecraft.world.World; -import net.minecraft.world.dimension.Dimension; -import net.minecraft.world.dimension.DimensionType; import net.minecraftforge.common.ModDimension; import appeng.core.AppEng; diff --git a/src/main/java/appeng/thirdparty/codechicken/lib/model/Quad.java b/src/main/java/appeng/thirdparty/codechicken/lib/model/Quad.java index 9c002376d..bdf335b57 100644 --- a/src/main/java/appeng/thirdparty/codechicken/lib/model/Quad.java +++ b/src/main/java/appeng/thirdparty/codechicken/lib/model/Quad.java @@ -18,7 +18,6 @@ package appeng.thirdparty.codechicken.lib.model; -import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -26,6 +25,7 @@ import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.util.Direction; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.vector.Vector3f; import net.minecraftforge.client.model.pipeline.IVertexConsumer; import net.minecraftforge.client.model.pipeline.IVertexProducer; import net.minecraftforge.client.model.pipeline.LightUtil; diff --git a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadCornerKicker.java b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadCornerKicker.java index b2e5be753..86b11865e 100644 --- a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadCornerKicker.java +++ b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadCornerKicker.java @@ -24,7 +24,7 @@ import static net.minecraft.util.Direction.AxisDirection.POSITIVE; import net.minecraft.util.Direction; import net.minecraft.util.Direction.AxisDirection; import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.Vec3i; +import net.minecraft.util.math.vector.Vector3i; import appeng.thirdparty.codechicken.lib.model.Quad.Vertex; import appeng.thirdparty.codechicken.lib.model.pipeline.IPipelineElementFactory; @@ -121,7 +121,7 @@ public class QuadCornerKicker extends QuadTransformer { float z = vertex.vec[2]; if (epsComp(x, corner.pX(this.box)) && epsComp(y, corner.pY(this.box)) && epsComp(z, corner.pZ(this.box))) { - Vec3i vec = Direction.values()[hoz].getDirectionVec(); + Vector3i vec = Direction.values()[hoz].getDirectionVec(); x -= vec.getX() * this.thickness; y -= vec.getY() * this.thickness; z -= vec.getZ() * this.thickness; diff --git a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadMatrixTransformer.java b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadMatrixTransformer.java index 34211862d..b067c50e8 100644 --- a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadMatrixTransformer.java +++ b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/transformers/QuadMatrixTransformer.java @@ -18,9 +18,9 @@ package appeng.thirdparty.codechicken.lib.model.pipeline.transformers; -import net.minecraft.client.renderer.Matrix4f; -import net.minecraft.client.renderer.Vector4f; import net.minecraft.util.Direction; +import net.minecraft.util.math.vector.Matrix4f; +import net.minecraft.util.math.vector.Vector4f; import net.minecraftforge.client.model.pipeline.IVertexConsumer; import appeng.thirdparty.codechicken.lib.model.Quad; diff --git a/src/main/java/appeng/tile/AEBaseInvTileEntity.java b/src/main/java/appeng/tile/AEBaseInvTileEntity.java index a72434816..5b0f2d726 100644 --- a/src/main/java/appeng/tile/AEBaseInvTileEntity.java +++ b/src/main/java/appeng/tile/AEBaseInvTileEntity.java @@ -22,6 +22,7 @@ import java.util.List; import javax.annotation.Nonnull; +import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -45,8 +46,8 @@ public abstract class AEBaseInvTileEntity extends AEBaseTileEntity implements IA } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); final IItemHandler inv = this.getInternalInventory(); if (inv != EmptyHandler.INSTANCE) { final CompoundNBT opt = data.getCompound("inv"); diff --git a/src/main/java/appeng/tile/AEBaseTileEntity.java b/src/main/java/appeng/tile/AEBaseTileEntity.java index 63a392f63..b49b87c6d 100644 --- a/src/main/java/appeng/tile/AEBaseTileEntity.java +++ b/src/main/java/appeng/tile/AEBaseTileEntity.java @@ -105,8 +105,8 @@ public class AEBaseTileEntity extends TileEntity implements IOrientable, ICommon } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); if (data.contains("customName")) { this.customName = data.getString("customName"); @@ -148,7 +148,7 @@ public class AEBaseTileEntity extends TileEntity implements IOrientable, ICommon public void onDataPacket(final NetworkManager net, final SUpdateTileEntityPacket pkt) { // / pkt.actionType if (pkt.getTileEntityType() == 64) { - this.handleUpdateTag(pkt.getNbtCompound()); + this.handleUpdateTag(null, pkt.getNbtCompound()); } } @@ -220,7 +220,7 @@ public class AEBaseTileEntity extends TileEntity implements IOrientable, ICommon * chunk. */ @Override - public void handleUpdateTag(CompoundNBT tag) { + public void handleUpdateTag(BlockState state, CompoundNBT tag) { final PacketBuffer stream = new PacketBuffer(Unpooled.copiedBuffer(tag.getByteArray("X"))); if (this.readUpdateData(stream)) { diff --git a/src/main/java/appeng/tile/crafting/CraftingMonitorTileEntity.java b/src/main/java/appeng/tile/crafting/CraftingMonitorTileEntity.java index c1619bd3e..162f3b3c6 100644 --- a/src/main/java/appeng/tile/crafting/CraftingMonitorTileEntity.java +++ b/src/main/java/appeng/tile/crafting/CraftingMonitorTileEntity.java @@ -23,6 +23,7 @@ import java.util.Optional; import javax.annotation.Nonnull; +import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -86,8 +87,8 @@ public class CraftingMonitorTileEntity extends CraftingTileEntity implements ICo } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); if (data.contains("paintedColor")) { this.paintedColor = AEColor.values()[data.getByte("paintedColor")]; } diff --git a/src/main/java/appeng/tile/crafting/CraftingTileEntity.java b/src/main/java/appeng/tile/crafting/CraftingTileEntity.java index fd117431c..7d0f2aa9c 100644 --- a/src/main/java/appeng/tile/crafting/CraftingTileEntity.java +++ b/src/main/java/appeng/tile/crafting/CraftingTileEntity.java @@ -186,8 +186,8 @@ public class CraftingTileEntity extends AENetworkTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.setCoreBlock(data.getBoolean("core")); if (this.isCoreBlock()) { if (this.cluster != null) { diff --git a/src/main/java/appeng/tile/crafting/MolecularAssemblerTileEntity.java b/src/main/java/appeng/tile/crafting/MolecularAssemblerTileEntity.java index be9211259..535aa852f 100644 --- a/src/main/java/appeng/tile/crafting/MolecularAssemblerTileEntity.java +++ b/src/main/java/appeng/tile/crafting/MolecularAssemblerTileEntity.java @@ -23,6 +23,7 @@ import java.util.List; import javax.annotation.Nullable; +import net.minecraft.block.BlockState; import net.minecraft.inventory.CraftingInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -219,8 +220,8 @@ public class MolecularAssemblerTileEntity extends AENetworkInvTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); if (data.contains("myPlan")) { final ItemStack myPat = ItemStack.read(data.getCompound("myPlan")); @@ -425,7 +426,7 @@ public class MolecularAssemblerTileEntity extends AENetworkInvTileEntity final IAEItemStack item = AEItemStack.fromItemStack(output); if (item != null) { final TargetPoint where = new TargetPoint(this.pos.getX(), this.pos.getY(), this.pos.getZ(), 32, - this.world.getDimension().getType()); + this.world.func_230315_m_()); NetworkHandler.instance() .sendToAllAround(new AssemblerAnimationPacket(this.pos, (byte) speed, item), where); } diff --git a/src/main/java/appeng/tile/grid/AENetworkInvTileEntity.java b/src/main/java/appeng/tile/grid/AENetworkInvTileEntity.java index db0894c24..69fb9193f 100644 --- a/src/main/java/appeng/tile/grid/AENetworkInvTileEntity.java +++ b/src/main/java/appeng/tile/grid/AENetworkInvTileEntity.java @@ -18,6 +18,7 @@ package appeng.tile.grid; +import net.minecraft.block.BlockState; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -37,8 +38,8 @@ public abstract class AENetworkInvTileEntity extends AEBaseInvTileEntity impleme } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.getProxy().readFromNBT(data); } diff --git a/src/main/java/appeng/tile/grid/AENetworkPowerTileEntity.java b/src/main/java/appeng/tile/grid/AENetworkPowerTileEntity.java index f2bee8aa6..0ea5ec018 100644 --- a/src/main/java/appeng/tile/grid/AENetworkPowerTileEntity.java +++ b/src/main/java/appeng/tile/grid/AENetworkPowerTileEntity.java @@ -18,6 +18,7 @@ package appeng.tile.grid; +import net.minecraft.block.BlockState; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -39,8 +40,8 @@ public abstract class AENetworkPowerTileEntity extends AEBasePoweredTileEntity i } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.getProxy().readFromNBT(data); } diff --git a/src/main/java/appeng/tile/grid/AENetworkTileEntity.java b/src/main/java/appeng/tile/grid/AENetworkTileEntity.java index 8180d4640..98f7bd437 100644 --- a/src/main/java/appeng/tile/grid/AENetworkTileEntity.java +++ b/src/main/java/appeng/tile/grid/AENetworkTileEntity.java @@ -18,6 +18,7 @@ package appeng.tile.grid; +import net.minecraft.block.BlockState; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -39,8 +40,8 @@ public class AENetworkTileEntity extends AEBaseTileEntity implements IActionHost } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.getProxy().readFromNBT(data); } diff --git a/src/main/java/appeng/tile/misc/CellWorkbenchTileEntity.java b/src/main/java/appeng/tile/misc/CellWorkbenchTileEntity.java index 8129c832e..ab50d9616 100644 --- a/src/main/java/appeng/tile/misc/CellWorkbenchTileEntity.java +++ b/src/main/java/appeng/tile/misc/CellWorkbenchTileEntity.java @@ -20,6 +20,7 @@ package appeng.tile.misc; import java.util.List; +import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -103,8 +104,8 @@ public class CellWorkbenchTileEntity extends AEBaseTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.cell.readFromNBT(data, "cell"); this.config.readFromNBT(data, "config"); this.manager.readFromNBT(data); diff --git a/src/main/java/appeng/tile/misc/CondenserTileEntity.java b/src/main/java/appeng/tile/misc/CondenserTileEntity.java index 962c688ba..09cf7bf59 100644 --- a/src/main/java/appeng/tile/misc/CondenserTileEntity.java +++ b/src/main/java/appeng/tile/misc/CondenserTileEntity.java @@ -21,6 +21,7 @@ package appeng.tile.misc; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -94,8 +95,8 @@ public class CondenserTileEntity extends AEBaseInvTileEntity implements IConfigM } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.cm.readFromNBT(data); this.setStoredPower(data.getDouble("storedPower")); } diff --git a/src/main/java/appeng/tile/misc/InscriberTileEntity.java b/src/main/java/appeng/tile/misc/InscriberTileEntity.java index f3a50190f..fe5340b1b 100644 --- a/src/main/java/appeng/tile/misc/InscriberTileEntity.java +++ b/src/main/java/appeng/tile/misc/InscriberTileEntity.java @@ -25,6 +25,7 @@ import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.network.PacketBuffer; @@ -135,8 +136,8 @@ public class InscriberTileEntity extends AENetworkPowerTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.upgrades.readFromNBT(data, "upgrades"); this.settings.readFromNBT(data); } diff --git a/src/main/java/appeng/tile/misc/InterfaceTileEntity.java b/src/main/java/appeng/tile/misc/InterfaceTileEntity.java index a17d770c8..2c9c3a0cc 100644 --- a/src/main/java/appeng/tile/misc/InterfaceTileEntity.java +++ b/src/main/java/appeng/tile/misc/InterfaceTileEntity.java @@ -26,6 +26,7 @@ import javax.annotation.Nullable; import com.google.common.collect.ImmutableSet; +import net.minecraft.block.BlockState; import net.minecraft.inventory.CraftingInventory; import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.ItemStack; @@ -158,8 +159,8 @@ public class InterfaceTileEntity extends AENetworkInvTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.omniDirectional = data.getBoolean("omniDirectional"); this.duality.readFromNBT(data); diff --git a/src/main/java/appeng/tile/misc/PaintSplotchesTileEntity.java b/src/main/java/appeng/tile/misc/PaintSplotchesTileEntity.java index 2528c60d0..64140a44a 100644 --- a/src/main/java/appeng/tile/misc/PaintSplotchesTileEntity.java +++ b/src/main/java/appeng/tile/misc/PaintSplotchesTileEntity.java @@ -36,7 +36,7 @@ import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.LightType; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelDataMap; @@ -91,8 +91,8 @@ public class PaintSplotchesTileEntity extends AEBaseTileEntity { } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); if (data.contains("dots")) { this.readBuffer(new PacketBuffer(Unpooled.copiedBuffer(data.getByteArray("dots")))); } @@ -211,7 +211,7 @@ public class PaintSplotchesTileEntity extends AEBaseTileEntity { return this.isLit; } - public void addBlot(final ItemStack type, final Direction side, final Vec3d hitVec) { + public void addBlot(final ItemStack type, final Direction side, final Vector3d hitVec) { final BlockPos p = this.pos.offset(side); final BlockState blk = this.world.getBlockState(p); diff --git a/src/main/java/appeng/tile/misc/SecurityStationTileEntity.java b/src/main/java/appeng/tile/misc/SecurityStationTileEntity.java index 3de02b073..0b7e42a08 100644 --- a/src/main/java/appeng/tile/misc/SecurityStationTileEntity.java +++ b/src/main/java/appeng/tile/misc/SecurityStationTileEntity.java @@ -23,6 +23,7 @@ import java.util.EnumSet; import java.util.List; import java.util.Map; +import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -172,8 +173,8 @@ public class SecurityStationTileEntity extends AENetworkTileEntity implements IT } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.cm.readFromNBT(data); if (data.contains("paintedColor")) { this.paintedColor = AEColor.values()[data.getByte("paintedColor")]; diff --git a/src/main/java/appeng/tile/misc/VibrationChamberTileEntity.java b/src/main/java/appeng/tile/misc/VibrationChamberTileEntity.java index 67970cbdd..a9d9ad955 100644 --- a/src/main/java/appeng/tile/misc/VibrationChamberTileEntity.java +++ b/src/main/java/appeng/tile/misc/VibrationChamberTileEntity.java @@ -22,6 +22,7 @@ import java.io.IOException; import javax.annotation.Nonnull; +import net.minecraft.block.BlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -101,8 +102,8 @@ public class VibrationChamberTileEntity extends AENetworkInvTileEntity implement } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.setBurnTime(data.getDouble("burnTime")); this.setMaxBurnTime(data.getDouble("maxBurnTime")); this.setBurnSpeed(data.getInt("burnSpeed")); diff --git a/src/main/java/appeng/tile/networking/CableBusTileEntity.java b/src/main/java/appeng/tile/networking/CableBusTileEntity.java index 09fd7fcca..9d5554cbf 100644 --- a/src/main/java/appeng/tile/networking/CableBusTileEntity.java +++ b/src/main/java/appeng/tile/networking/CableBusTileEntity.java @@ -25,6 +25,7 @@ import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -33,7 +34,7 @@ import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; import net.minecraftforge.client.model.data.EmptyModelData; import net.minecraftforge.client.model.data.IModelData; @@ -68,8 +69,8 @@ public class CableBusTileEntity extends AEBaseTileEntity implements AEMultiTile } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.getCableBus().readFromNBT(data); } @@ -243,7 +244,7 @@ public class CableBusTileEntity extends AEBaseTileEntity implements AEMultiTile } @Override - public SelectedPart selectPart(final Vec3d pos) { + public SelectedPart selectPart(final Vector3d pos) { return this.getCableBus().selectPart(pos); } diff --git a/src/main/java/appeng/tile/networking/EnergyCellTileEntity.java b/src/main/java/appeng/tile/networking/EnergyCellTileEntity.java index 7f0b5aeee..6115913a7 100644 --- a/src/main/java/appeng/tile/networking/EnergyCellTileEntity.java +++ b/src/main/java/appeng/tile/networking/EnergyCellTileEntity.java @@ -18,6 +18,7 @@ package appeng.tile.networking; +import net.minecraft.block.BlockState; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -99,8 +100,8 @@ public class EnergyCellTileEntity extends AENetworkTileEntity implements IAEPowe } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.internalCurrentPower = data.getDouble("internalCurrentPower"); } diff --git a/src/main/java/appeng/tile/powersink/AEBasePoweredTileEntity.java b/src/main/java/appeng/tile/powersink/AEBasePoweredTileEntity.java index 6d89ee440..7c8318e9d 100644 --- a/src/main/java/appeng/tile/powersink/AEBasePoweredTileEntity.java +++ b/src/main/java/appeng/tile/powersink/AEBasePoweredTileEntity.java @@ -25,6 +25,7 @@ import javax.annotation.Nonnull; import com.google.common.collect.ImmutableSet; +import net.minecraft.block.BlockState; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; @@ -85,8 +86,8 @@ public abstract class AEBasePoweredTileEntity extends AEBaseInvTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.setInternalCurrentPower(data.getDouble("internalCurrentPower")); } diff --git a/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java b/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java index 90398de0a..a31edaca4 100644 --- a/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java +++ b/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java @@ -20,6 +20,7 @@ package appeng.tile.spatial; import javax.annotation.Nonnull; +import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -70,8 +71,8 @@ public class SpatialIOPortTileEntity extends AENetworkInvTileEntity implements I } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); if (data.contains("lastRedstoneState")) { this.lastRedstoneState = YesNo.values()[data.getInt("lastRedstoneState")]; } diff --git a/src/main/java/appeng/tile/storage/ChestTileEntity.java b/src/main/java/appeng/tile/storage/ChestTileEntity.java index 4ccae94cf..59ad672e2 100644 --- a/src/main/java/appeng/tile/storage/ChestTileEntity.java +++ b/src/main/java/appeng/tile/storage/ChestTileEntity.java @@ -25,6 +25,7 @@ import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.Item; @@ -45,22 +46,43 @@ import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.registries.ForgeRegistries; -import appeng.api.config.*; +import appeng.api.config.AccessRestriction; +import appeng.api.config.Actionable; +import appeng.api.config.PowerMultiplier; +import appeng.api.config.SecurityPermissions; +import appeng.api.config.Settings; +import appeng.api.config.SortDir; +import appeng.api.config.SortOrder; +import appeng.api.config.ViewItems; import appeng.api.implementations.tiles.IColorableTile; import appeng.api.implementations.tiles.IMEChest; import appeng.api.networking.GridFlags; import appeng.api.networking.IGrid; import appeng.api.networking.IGridNode; import appeng.api.networking.energy.IEnergyGrid; -import appeng.api.networking.events.*; +import appeng.api.networking.events.MENetworkCellArrayUpdate; +import appeng.api.networking.events.MENetworkChannelsChanged; +import appeng.api.networking.events.MENetworkEventSubscribe; +import appeng.api.networking.events.MENetworkPowerStatusChange; +import appeng.api.networking.events.MENetworkPowerStorage; import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType; import appeng.api.networking.security.IActionHost; import appeng.api.networking.security.IActionSource; import appeng.api.networking.security.ISecurityGrid; import appeng.api.networking.storage.IBaseMonitor; import appeng.api.networking.storage.IStorageGrid; -import appeng.api.storage.*; -import appeng.api.storage.cells.*; +import appeng.api.storage.IMEInventoryHandler; +import appeng.api.storage.IMEMonitor; +import appeng.api.storage.IMEMonitorHandlerReceiver; +import appeng.api.storage.IStorageChannel; +import appeng.api.storage.IStorageMonitorable; +import appeng.api.storage.IStorageMonitorableAccessor; +import appeng.api.storage.ITerminalHost; +import appeng.api.storage.cells.CellState; +import appeng.api.storage.cells.ICellGuiHandler; +import appeng.api.storage.cells.ICellHandler; +import appeng.api.storage.cells.ICellInventory; +import appeng.api.storage.cells.ICellInventoryHandler; import appeng.api.storage.channels.IFluidStorageChannel; import appeng.api.storage.channels.IItemStorageChannel; import appeng.api.storage.data.IAEFluidStack; @@ -378,8 +400,8 @@ public class ChestTileEntity extends AENetworkPowerTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.config.readFromNBT(data); this.priority = data.getInt("priority"); if (data.contains("paintedColor")) { diff --git a/src/main/java/appeng/tile/storage/DriveTileEntity.java b/src/main/java/appeng/tile/storage/DriveTileEntity.java index f604ee1d4..30bbcbc76 100644 --- a/src/main/java/appeng/tile/storage/DriveTileEntity.java +++ b/src/main/java/appeng/tile/storage/DriveTileEntity.java @@ -30,6 +30,7 @@ import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import net.minecraft.block.BlockState; import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -262,8 +263,8 @@ public class DriveTileEntity extends AENetworkInvTileEntity implements IChestOrD } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.isCached = false; this.priority = data.getInt("priority"); } diff --git a/src/main/java/appeng/tile/storage/IOPortTileEntity.java b/src/main/java/appeng/tile/storage/IOPortTileEntity.java index 70b30f1b4..57062bbb6 100644 --- a/src/main/java/appeng/tile/storage/IOPortTileEntity.java +++ b/src/main/java/appeng/tile/storage/IOPortTileEntity.java @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; import net.minecraft.block.Block; +import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; @@ -120,8 +121,8 @@ public class IOPortTileEntity extends AENetworkInvTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState blockState, final CompoundNBT data) { + super.read(blockState, data); this.manager.readFromNBT(data); this.upgrades.readFromNBT(data, "upgrades"); if (data.contains("lastRedstoneState")) { diff --git a/src/main/java/appeng/util/LookDirection.java b/src/main/java/appeng/util/LookDirection.java index 6818d0412..641692a7c 100644 --- a/src/main/java/appeng/util/LookDirection.java +++ b/src/main/java/appeng/util/LookDirection.java @@ -18,23 +18,23 @@ package appeng.util; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; public class LookDirection { - private final Vec3d a; - private final Vec3d b; + private final Vector3d a; + private final Vector3d b; - public LookDirection(final Vec3d a, final Vec3d b) { + public LookDirection(final Vector3d a, final Vector3d b) { this.a = a; this.b = b; } - public Vec3d getA() { + public Vector3d getA() { return this.a; } - public Vec3d getB() { + public Vector3d getB() { return this.b; } } diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index c309afff9..28c0a3fd5 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -53,7 +53,7 @@ import net.minecraft.util.math.EntityRayTraceResult; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RayTraceContext; import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; @@ -687,8 +687,8 @@ public class Platform { final float eyeRayX = yawRayX * pitchMultiplier; final float eyeRayZ = yawRayZ * pitchMultiplier; - final Vec3d from = new Vec3d(x, y, z); - final Vec3d to = from.add(eyeRayX * reachDistance, eyeRayY * reachDistance, eyeRayZ * reachDistance); + final Vector3d from = new Vector3d(x, y, z); + final Vector3d to = from.add(eyeRayX * reachDistance, eyeRayY * reachDistance, eyeRayZ * reachDistance); return new LookDirection(from, to); } @@ -702,7 +702,7 @@ public class Platform { final double d0 = p.prevPosX + (p.getPosX() - p.prevPosX) * f; final double d1 = p.prevPosY + (p.getPosY() - p.prevPosY) * f + 1.62D - p.getYOffset(); final double d2 = p.prevPosZ + (p.getPosZ() - p.prevPosZ) * f; - final Vec3d vec3 = new Vec3d(d0, d1, d2); + final Vector3d vec3 = new Vector3d(d0, d1, d2); final float f3 = MathHelper.cos(-f2 * 0.017453292F - (float) Math.PI); final float f4 = MathHelper.sin(-f2 * 0.017453292F - (float) Math.PI); final float f5 = -MathHelper.cos(-f1 * 0.017453292F); @@ -711,7 +711,7 @@ public class Platform { final float f8 = f3 * f5; final double d3 = 32.0D; - final Vec3d vec31 = vec3.add(f7 * d3, f6 * d3, f8 * d3); + final Vector3d vec31 = vec3.add(f7 * d3, f6 * d3, f8 * d3); final AxisAlignedBB bb = new AxisAlignedBB(Math.min(vec3.x, vec31.x), Math.min(vec3.y, vec31.y), Math.min(vec3.z, vec31.z), Math.max(vec3.x, vec31.x), Math.max(vec3.y, vec31.y), @@ -732,7 +732,7 @@ public class Platform { f1 = 0.3F; // FIXME: Three different bounding boxes available, should double-check final AxisAlignedBB boundingBox = entity1.getBoundingBox().grow(f1, f1, f1); - final Vec3d rtResult = boundingBox.rayTrace(vec3, vec31).orElse(null); + final Vector3d rtResult = boundingBox.rayTrace(vec3, vec31).orElse(null); if (rtResult != null) { final double nd = vec3.squareDistanceTo(rtResult); @@ -747,10 +747,10 @@ public class Platform { } RayTraceResult pos = null; - Vec3d vec = null; + Vector3d vec = null; if (hitBlocks) { - vec = new Vec3d(d0, d1, d2); + vec = new Vector3d(d0, d1, d2); // FIXME: passing p as entity here might be incorrect pos = w.rayTraceBlocks(new RayTraceContext(vec3, vec31, RayTraceContext.BlockMode.COLLIDER, RayTraceContext.FluidMode.ANY, p)); diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java index 21491010a..ad4021231 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java @@ -1,8 +1,8 @@ package appeng.worldgen; import com.google.common.collect.ImmutableMap; -import com.mojang.datafixers.Dynamic; -import com.mojang.datafixers.types.DynamicOps; +import com.mojang.serialization.Dynamic; +import com.mojang.serialization.DynamicOps; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java index bfc27b3a7..7735f355e 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java @@ -1,19 +1,18 @@ package appeng.worldgen; import java.util.Random; -import java.util.function.Function; -import com.mojang.datafixers.Dynamic; +import com.mojang.serialization.Codec; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.IWorld; +import net.minecraft.world.ISeedReader; import net.minecraft.world.chunk.IChunk; import net.minecraft.world.gen.ChunkGenerator; -import net.minecraft.world.gen.GenerationSettings; import net.minecraft.world.gen.Heightmap; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.ReplaceBlockFeature; +import net.minecraft.world.gen.feature.structure.StructureManager; import appeng.core.AppEng; @@ -30,12 +29,12 @@ public class ChargedQuartzOreFeature extends Feature { INSTANCE.setRegistryName(AppEng.MOD_ID, "charged_quartz_ore"); } - public ChargedQuartzOreFeature(Function, ? extends ChargedQuartzOreConfig> p_i51444_1_) { + public ChargedQuartzOreFeature(Codec p_i51444_1_) { super(p_i51444_1_); } @Override - public boolean place(IWorld worldIn, ChunkGenerator generator, Random rand, + public boolean func_230362_a_(ISeedReader worldIn, StructureManager sm, ChunkGenerator generator, Random rand, BlockPos pos, ChargedQuartzOreConfig config) { ChunkPos chunkPos = new ChunkPos(pos); diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java index e092b851f..d7aeadf2e 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java @@ -1,38 +1,34 @@ package appeng.worldgen.meteorite; import java.util.Random; -import java.util.function.Function; -import com.mojang.datafixers.Dynamic; +import com.mojang.serialization.Codec; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BiomeManager; import net.minecraft.world.gen.ChunkGenerator; -import net.minecraft.world.gen.EndChunkGenerator; -import net.minecraft.world.gen.NetherChunkGenerator; import net.minecraft.world.gen.feature.NoFeatureConfig; -import net.minecraft.world.gen.feature.structure.ScatteredStructure; import net.minecraft.world.gen.feature.structure.Structure; import appeng.core.AELog; import appeng.core.AppEng; -public class MeteoriteStructure extends ScatteredStructure { +public class MeteoriteStructure extends Structure { - public static final Structure INSTANCE = new MeteoriteStructure(NoFeatureConfig::deserialize); + public static final Structure INSTANCE = new MeteoriteStructure(NoFeatureConfig.field_236558_a_); static { INSTANCE.setRegistryName(AppEng.MOD_ID, "meteorite"); } - public MeteoriteStructure(Function, ? extends NoFeatureConfig> configFactoryIn) { - super(configFactoryIn); + public MeteoriteStructure(Codec p_i231997_1_) { + super(p_i231997_1_); } @Override - public boolean canBeGenerated(BiomeManager biomeManagerIn, ChunkGenerator generator, Random randIn, int chunkX, + public boolean func_230363_a_(BiomeManager biomeManagerIn, ChunkGenerator generator, Random randIn, int chunkX, int chunkZ, Biome biomeIn) { - if (super.canBeGenerated(biomeManagerIn, generator, randIn, chunkX, chunkZ, biomeIn)) { + if (super.func_230363_a_(biomeManagerIn, generator, randIn, chunkX, chunkZ, biomeIn)) { // In case the biome blacklist fails, we still double-check here that we're not // generating chunks for // the nether or end. diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java index 48d5cb0b5..180cd0ba4 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java @@ -8,7 +8,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.tags.BlockTags; -import net.minecraft.tags.Tag; +import net.minecraft.tags.ITag; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MutableBoundingBox; @@ -26,8 +26,8 @@ import appeng.worldgen.meteorite.fallout.FalloutMode; public class MeteoriteStructureStart extends StructureStart { - private final Tag sandTag = BlockTags.getCollection().getOrCreate(new ResourceLocation("minecraft:sand")); - private final Tag terracottaTag = BlockTags.getCollection() + private final ITag sandTag = BlockTags.getCollection().getOrCreate(new ResourceLocation("minecraft:sand")); + private final ITag terracottaTag = BlockTags.getCollection() .getOrCreate(new ResourceLocation("forge:terracotta")); public MeteoriteStructureStart(Structure p_i225815_1_, int p_i225815_2_, int p_i225815_3_, @@ -87,7 +87,7 @@ public class MeteoriteStructureStart extends StructureStart { * * @return true, if it found a single block of water */ - private boolean locateWaterAroundTheCrater(ChunkGenerator generator, BlockPos pos, float radius) { + private boolean locateWaterAroundTheCrater(ChunkGenerator generator, BlockPos pos, float radius) { final int seaLevel = generator.getSeaLevel(); final int maxY = seaLevel - 1; BlockPos.Mutable blockPos = new BlockPos.Mutable(); diff --git a/src/main/java/appeng/worldgen/meteorite/debug/MeteoriteSpawner.java b/src/main/java/appeng/worldgen/meteorite/debug/MeteoriteSpawner.java index 6ca79e220..e9b7f73bb 100644 --- a/src/main/java/appeng/worldgen/meteorite/debug/MeteoriteSpawner.java +++ b/src/main/java/appeng/worldgen/meteorite/debug/MeteoriteSpawner.java @@ -39,7 +39,7 @@ public class MeteoriteSpawner { float coreRadius, CraterType craterType, boolean pureCrater, boolean worldGen) { int stepSize = Math.min(5, (int) Math.ceil(coreRadius) + 1); int minY = 10 + stepSize; - BlockPos.Mutable mutablePos = new BlockPos.Mutable(startPos); + BlockPos.Mutable mutablePos = new BlockPos.Mutable(startPos.getX(), startPos.getY(), startPos.getZ()); mutablePos.move(Direction.DOWN, stepSize); @@ -80,7 +80,7 @@ public class MeteoriteSpawner { } private static boolean isAirBelowSpawnPoint(IWorldReader w, BlockPos pos) { - BlockPos.Mutable testPos = new BlockPos.Mutable(pos); + BlockPos.Mutable testPos = new BlockPos.Mutable(pos.getX(), pos.getY(), pos.getZ()); for (int j = pos.getY() - 15; j < pos.getY() - 1; j++) { testPos.setY(j); if (w.isAirBlock(testPos)) {