use of logisticspipes.proxy.object3d.operation.LPTranslation in project LogisticsPipes by RS485.
the class LogisticsNewSolidBlockWorldRenderer method loadModels.
public static void loadModels() {
if (!SimpleServiceLocator.cclProxy.isActivated())
return;
try {
Map<String, IModel3D> blockPartModels = SimpleServiceLocator.cclProxy.parseObjModels(LogisticsPipes.class.getResourceAsStream("/logisticspipes/models/BlockModel_result.obj"), 7, new LPScale(1 / 100f));
LogisticsNewSolidBlockWorldRenderer.block = null;
for (Entry<String, IModel3D> entry : blockPartModels.entrySet()) {
if (entry.getKey().contains(" Block ")) {
if (LogisticsNewSolidBlockWorldRenderer.block != null) {
throw new UnsupportedOperationException();
}
LogisticsNewSolidBlockWorldRenderer.block = LogisticsNewSolidBlockWorldRenderer.computeRotated(entry.getValue().backfacedCopy().apply(new LPTranslation(0.0, 0.0, 1.0)));
}
}
LogisticsNewSolidBlockWorldRenderer.texturePlate_Outer.clear();
LogisticsNewSolidBlockWorldRenderer.texturePlate_Inner.clear();
for (CoverSides side : CoverSides.values()) {
String grp_Outer = "OutSide_" + side.getLetter();
String grp_Inside = "Inside_" + side.getLetter();
for (Entry<String, IModel3D> entry : blockPartModels.entrySet()) {
if (entry.getKey().contains(" " + grp_Outer + " ")) {
LogisticsNewSolidBlockWorldRenderer.texturePlate_Outer.put(side, LogisticsNewSolidBlockWorldRenderer.computeRotated(entry.getValue().backfacedCopy().apply(new LPTranslation(0.0, 0.0, 1.0))));
}
if (entry.getKey().contains(" " + grp_Inside + " ")) {
LogisticsNewSolidBlockWorldRenderer.texturePlate_Inner.put(side, LogisticsNewSolidBlockWorldRenderer.computeRotated(entry.getValue().backfacedCopy().apply(new LPTranslation(0.0, 0.0, 1.0))));
}
}
if (LogisticsNewSolidBlockWorldRenderer.texturePlate_Outer.get(side) == null) {
throw new RuntimeException("Couldn't load OutSide " + side.name() + " (" + grp_Outer + ").");
}
if (LogisticsNewSolidBlockWorldRenderer.texturePlate_Inner.get(side) == null) {
throw new RuntimeException("Couldn't load OutSide " + side.name() + " (" + grp_Outer + ").");
}
}
} catch (Throwable e) {
throw new RuntimeException(e);
}
}
use of logisticspipes.proxy.object3d.operation.LPTranslation in project LogisticsPipes by RS485.
the class SCurveTubeRenderer method loadModels.
public static void loadModels() {
try {
Map<String, IModel3D> pipePartModels = SimpleServiceLocator.cclProxy.parseObjModels(LogisticsPipes.class.getResourceAsStream("/logisticspipes/models/HSTube-Gain_result.obj"), 7, new LPScale(1 / 100f));
//tubeTurnMounts
for (TurnSDirection turn : TurnSDirection.values()) {
SCurveTubeRenderer.tubeSCurveBase.put(turn, new ArrayList<>());
}
pipePartModels.entrySet().stream().filter(entry -> entry.getKey().startsWith("Lane ") || entry.getKey().contains(" Lane ") || entry.getKey().endsWith(" Lane")).forEach(entry -> {
SCurveTubeRenderer.tubeSCurveBase.get(TurnSDirection.EAST).add(LogisticsNewRenderPipe.compute(entry.getValue().twoFacedCopy().apply(new LPRotation(Math.PI / 2, 0, 0, 1)).apply(new LPTranslation(1.0, 0.0, 0.0)).apply(new LPRotation(-Math.PI / 2, 0, 1, 0))));
SCurveTubeRenderer.tubeSCurveBase.get(TurnSDirection.NORTH).add(LogisticsNewRenderPipe.compute(entry.getValue().twoFacedCopy().apply(new LPRotation(Math.PI / 2, 0, 0, 1)).apply(new LPTranslation(1.0, 0.0, 1.0))));
SCurveTubeRenderer.tubeSCurveBase.get(TurnSDirection.EAST_INV).add(LogisticsNewRenderPipe.compute(entry.getValue().twoFacedCopy().apply(new LPRotation(-Math.PI / 2, 0, 0, 1)).apply(new LPTranslation(-2.0, 1.0, 4.0)).apply(new LPRotation(Math.PI / 2, 0, 1, 0))));
SCurveTubeRenderer.tubeSCurveBase.get(TurnSDirection.NORTH_INV).add(LogisticsNewRenderPipe.compute(entry.getValue().twoFacedCopy().apply(new LPRotation(-Math.PI / 2, 0, 0, 1)).apply(new LPTranslation(-2.0, 1.0, 3.0)).apply(new LPRotation(Math.PI, 0, 1, 0))));
});
if (SCurveTubeRenderer.tubeSCurveBase.get(TurnSDirection.NORTH).size() != 4) {
throw new RuntimeException("Couldn't load Tube Lanes. Only loaded " + SCurveTubeRenderer.tubeSCurveBase.get(TurnSDirection.NORTH).size());
}
for (TurnSDirection turn : TurnSDirection.values()) {
SCurveTubeRenderer.tubeSCurve.put(turn, SimpleServiceLocator.cclProxy.combine(SCurveTubeRenderer.tubeSCurveBase.get(turn)));
}
} catch (Throwable e) {
throw new RuntimeException(e);
}
}
Aggregations