3DMGAME论坛

标题: 给所有建筑添加左右镜像,完美满足对称强迫症(已修正) [打印本页]

作者: fanvalen    时间: 2022-3-24 17:47
标题: 给所有建筑添加左右镜像,完美满足对称强迫症(已修正)
本帖最后由 fanvalen 于 2022-10-10 18:25 编辑

以前说给建筑添加旋转都是一个一个添加的
今天我来说一个简单的
首先我要说一个编程上的概念,默认值和重新赋值,
废话太多省略全部
首先定位到BuildingDef找到下面这句public PermittedRotations PermittedRotations
将其改成
public PermittedRotations PermittedRotations = PermittedRotations.FlipH;


这还没完不然你等着卡死吧

不知道砖块是啥问题不允许旋转否则就卡不动
所以需要给9种砖加上不可旋转属性
分别是下面9种
Tile
GasPermeableMembrane
MeshTile
InsulationTile
PlasticTile
MetalTile
GlassTile
BunkerTile
CarpetTile
另外
火箭墙和火箭窗也要加否则显示不出来
RocketWallTileConfig
RocketEnvelopeWindowTileConfig

找到他们的config
在CreateBuildingDef下每个都添加一句
buildingDef.PermittedRotations = PermittedRotations.Unrotatable;
9个都要添加不然就卡不动
就是下面样子


这句就是添加默认值 默认旋转方式为左右镜像(我认为左右镜像用的多所以添加这个为默认值,你如果觉得360度旋转多你也可以作为默认值)

改9个比改好几十个快吧








作者: zlm78946    时间: 2022-3-28 04:20
有没有输入输出口不对的问题?锁存器能镜像吗?
作者: fanvalen    时间: 2022-3-28 13:30
zlm78946 发表于 2022-3-28 04:20
有没有输入输出口不对的问题?锁存器能镜像吗?

可能我的描述不完整,原来没有左右镜像或已经是左右镜像的则实用于这个改动。
如果原来是360旋转的则无法改动

原因是默认值会被后面赋值替换掉
比如
int a=10
建筑里没有赋值或赋值相等的则a=10

但是某些建筑的配置里
又来了个a=20
此时建筑的a就等于20了不在是10









作者: fanvalen    时间: 2022-3-28 13:32
fanvalen 发表于 2022-3-28 13:30
可能我的描述不完整,原来没有左右镜像或已经是左右镜像的则实用于这个改动。
如果原来是360旋转的则无法 ...

还有一个没有说
如果需要将360旋转的改成左右镜像可以单独到某个建筑的配置里把旋转360度的那句删除就行

作者: zlm78946    时间: 2022-3-29 22:03
哈哈不错,的确能把旋转改成了镜像,R360 和 FlipH就是旋转和镜像选择.




欢迎光临 3DMGAME论坛 (https://bbs.3dmgame.com/) Powered by Discuz! X3.2