(Backport) Entity Model Layer Reg, and move to new package (#159)

Signed-off-by: Max <maxh2709@gmail.com>
This commit is contained in:
shedaniel
2021-12-31 22:36:08 +01:00
committed by Max
parent 7771981ae6
commit 55e997e80c
8 changed files with 187 additions and 11 deletions

View File

@@ -0,0 +1,52 @@
/*
* This file is part of architectury.
* Copyright (C) 2020, 2021 architectury
*
* This program 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.
*
* This program 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 this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package dev.architectury.registry.client.level.entity.forge;
import dev.architectury.forge.ArchitecturyForge;
import dev.architectury.platform.forge.EventBuses;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Supplier;
public class EntityModelLayerRegistryImpl {
private static final Map<ModelLayerLocation, Supplier<LayerDefinition>> DEFINITIONS = new ConcurrentHashMap<>();
static {
EventBuses.onRegistered(ArchitecturyForge.MOD_ID, bus -> {
bus.register(EntityModelLayerRegistryImpl.class);
});
}
public static void register(ModelLayerLocation location, Supplier<LayerDefinition> definition) {
DEFINITIONS.put(location, definition);
}
@SubscribeEvent
public static void event(EntityRenderersEvent.RegisterLayerDefinitions event) {
for (Map.Entry<ModelLayerLocation, Supplier<LayerDefinition>> entry : DEFINITIONS.entrySet()) {
event.registerLayerDefinition(entry.getKey(), entry.getValue());
}
}
}

View File

@@ -17,7 +17,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package dev.architectury.registry.level.entity.forge;
package dev.architectury.registry.client.level.entity.forge;
import dev.architectury.forge.ArchitecturyForge;
import dev.architectury.platform.forge.EventBuses;